Eén getal voor vijf vragen
Een voorraadspreadsheet heeft één kolom per product. Shopify kent voor datzelfde product vijf voorraadstatussen:
- Beschikbaar: wat je kunt verkopen.
- Toegezegd: gereserveerde stuks die niet meer verkocht kunnen worden, zoals die van een order die je nog niet hebt klaargezet of die in een conceptorder zijn gereserveerd.
- Niet beschikbaar: stuks die in het magazijn liggen maar niet te koop zijn, omdat ze beschadigd zijn, in de kwaliteitscontrole zitten of als veiligheidsvoorraad zijn opzijgelegd.
- Inkomend: wat onderweg is en pas verkocht kan worden als het is ontvangen.
- Aanwezig: alles wat er op een locatie ligt, de som van toegezegd, niet beschikbaar en beschikbaar.

Als iemand een getal in de spreadsheet zet, welke van deze is het dan? Is het wat er op de plank ligt, dan zit daar ook in wat verkocht maar nog niet verzonden is. Is het wat beschikbaar is, dan heeft iemand elke openstaande order en elk kapot stuk moeten aftrekken en elke binnenkomende levering weer moeten optellen.
Binnen Shopify verschuift de winkel zelf de toegezegde stuks wanneer orders worden aangemaakt of afgerond, of wanneer er in een conceptorder wordt gereserveerd. De spreadsheet merkt daar niets van: iemand moet de aftreksom zelf maken, en voor elk kanaal.

Wanneer het nog volstaat
Met één kanaal, één magazijn en dezelfde persoon die elke verkoop en elke ontvangst meteen noteert, komt de spreadsheet dicht bij de echte beschikbare voorraad. Elke voorwaarde die wegvalt, slaat een gat: een andere winkel die verkoopt terwijl niemand naar de spreadsheet kijkt, een leverancier die levert als degene die de spreadsheet bijhoudt er niet is, een retour die kapot terugkomt.
Signalen dat je spreadsheet het niet meer trekt
- Voordat je een order bevestigt, vraag je iemand of het stuk er echt is.
- Je trekt per kanaal met de hand af wat er verkocht is, aan het eind van de dag of als je even tijd hebt.
- Wat van de leverancier binnenkomt, wordt opgeteld als iemand eraan denkt, niet als het binnenkomt.
- Beschadigde of apart gelegde stuks staan in dezelfde kolom als de stuks die je verkoopt.
- Je verkoopt op meer dan één kanaal en elk kanaal heeft zijn eigen getal.
- Je hebt een order moeten annuleren of uitstellen omdat het stuk er niet was.
- Er is meer dan één kopie van de spreadsheet en niemand weet welke de goede is.
- De eindejaarsinventaris komt uit het tellen van de planken, omdat de spreadsheet niet klopt.
Herken je jezelf in meerdere punten, dan kost het bewaken van de spreadsheet je al meer tijd dan hij je bespaart.
Wat het Spaanse Wetboek van Koophandel bij de jaarafsluiting eist
Het Spaanse Wetboek van Koophandel verplicht elke ondernemer om naast het journaal (Diario) een boek van Inventarissen en Jaarrekeningen bij te houden (artikel 25). In dat boek worden de openingsbalans, minstens elk kwartaal de proefbalansen en, bij de afsluiting, de eindinventaris van het boekjaar samen met de jaarrekening opgenomen (artikel 28).
Het laatste vakje van de lijst is hier het duidelijkst te merken: klopt de spreadsheet niet met de plank, dan komt die eindinventaris uit een handmatige telling, en moet iemand het verschil verklaren.
Wat het vervangt
Volgens Eurostat kunnen de afdelingen van een bedrijf op twee manieren gegevens delen zonder handwerk: met een gemeenschappelijke database waaraan meerdere applicaties gekoppeld zijn, of met één modulair ERP. Odoo is een ERP van dat tweede type. Met de Shopify-connector gaat de voorraad heen en weer tussen Odoo en de winkel:
- Odoo publiceert zijn voorraad elke 20 minuten in Shopify. Elke 6 uur gaat de taak "Shopify Pull Stock (Shopify → Odoo)" de andere kant op: die zet de beschikbare hoeveelheid in Shopify als aanwezige voorraad in Odoo, zonder voorraadbeweging, over de hoeveelheid die er stond heen.
- Het gepubliceerde getal trekt af wat gereserveerd is. Een order bevestigen in Odoo legt het stuk apart, en Shopify verkoopt het niet meer voordat het pakket vertrekt.
- Het dashboard van de connector waarschuwt voor producten die moeten worden aangevuld, voor voorraad die niet verkoopt en voor synchronisaties die het afgelopen etmaal zijn mislukt.

In de dagelijkse praktijk maakt het systeem de aftreksom: elke bevestigde verkoop reserveert zijn stuk en elk kanaal krijgt de nieuwe hoeveelheid bij de volgende ronde.
Hoe wij het opzetten
Bij FlexigoTech implementeren we Odoo 17, 18, 19 of 20 en koppelen we je Shopify-winkel en je andere kanalen met onze connectoren. Odoo Online ondersteunt geen modules van derden, dus we werken op Odoo.sh of op een eigen server. Elke connector kun je 14 dagen vanuit Odoo uitproberen, gratis en zonder creditcard, en het Connector-abonnement begint bij € 49 per maand, exclusief btw. Heeft je bedrijfsvoering iets nodig dat nog niet bestaat, dan bouwen we het op maat: we analyseren je situatie gratis en geven je een vaste prijs voordat we gaan programmeren.
Schrijf ons op comercial@flexigobe.com, laat je gegevens achter op de contactpagina of plan een gesprek, dan bekijken we het samen met je spreadsheet erbij.
Lees verder
Gecontroleerd in de broncode van de connector (versie 17.0, 18.0, 19.0 en 20.0) en in de gelinkte bronnen
Bronnen
- shopify.dev/docs/apps/build/inventory-management-apps/manage-quantities-states.md
- www.boe.es/buscar/act.php?id=BOE-A-1885-6627
- Broncode van de module: flexigobe_shopify_seller_connector · 17.0 2c06264 · 18.0 0272d17 · 19.0 19422d4 · 20.0 2950bdc: models/shopify_kpi_dashboard.py (reorder_now_count, dead_stock_count, open_issues_failed_sync), models/shopify_product_analytics.py (_mover_class, _restock_state)
- Broncode van de module: flexigobe_shopify_seller_connector · 17.0 2c06264 · 18.0 0272d17 · 19.0 19422d4 · 20.0 2950bdc: data/ir_cron_data.xml, models/shopify_instance.py (action_push_stock, action_pull_stock, cron_push_stock, cron_pull_stock)
- ec.europa.eu/eurostat/statistics-explained/index.php?title=E-business_integration
- flexigotech.com/precios.html
- flexigotech.com/services/desarrollo-a-medida.html
- flexigotech.com/en/services.html
