E-commerce & ERP

Hoe je voorraad synchroniseert tussen Amazon, Shopify en WooCommerce zonder overselling

DigSolutions Engineeringteam··3 min leestijd
Magazijngang met gevulde opslagrekken

Belangrijkste inzichten

  • Overselling is bijna altijd terug te voeren op vertraagde polling of het ontbreken van één bron van waarheid, niet op pech.
  • Webhooks plus een buffervoorraaddrempel vangen het gat op dat geplande voorraadsynchronisaties missen.
  • Eerst de bestelling, dan de vermelding: deze synchronisatievolgorde voorkomt de meest voorkomende race condition tussen kanalen.
  • Door voorraad te centraliseren in één systeem wordt "een nieuw kanaal toevoegen" een configuratiewijziging in plaats van een nieuwe integratiehoofdpijn.

Overselling is geen pech. Het is bijna altijd een van drie specifieke oorzaken: polling met een vertraging die lang genoeg is dat twee kanalen tegelijk de laatste eenheid verkopen, een vermelding die op het ene platform is bijgewerkt maar niet op de andere, of het simpelweg ontbreken van één systeem dat de "echte" voorraadstand bezit. Pak de oorzaak aan en overselling stopt een terugkerende brandoefening te zijn.

Pollingvertraging is de meest voorkomende oorzaak. Als je Shopify- en WooCommerce-voorraadaantallen elke 15 of 30 minuten via een cronjob worden bijgewerkt vanuit Amazon, is er elke cyclus een venster waarin alle drie de kanalen denken voorraad te hebben die al verkocht is. Bij een snel verkopende SKU is dat venster genoeg om twee klanten binnen enkele minuten van elkaar dezelfde laatste eenheid te laten kopen.

Webhooks dichten het grootste deel van dat gat, maar niet alles. Amazon, Shopify en WooCommerce sturen elk een order-geplaatst-event waarop je kunt abonneren, en door daarop te reageren om voorraad overal elders direct te verlagen, in plaats van te wachten op de volgende poll, verklein je het risicovenster van minuten naar seconden. Het elimineert het niet: een webhook kan vertraagd raken, opnieuw worden geprobeerd, of verloren gaan, en twee bestellingen kunnen nog steeds dicht genoeg op elkaar binnenkomen dat de tweede wordt verwerkt voordat de webhook van de eerste is afgehandeld.

Daar is een bufferdrempel voor bedoeld. Door een kleine hoeveelheid te reserveren, soms slechts 1-2 eenheden bij een traag verkopende SKU, die op geen enkel kanaal als beschikbaar wordt getoond, krijgt het synchronisatieproces de ruimte om bij te trekken voordat er echt wordt oververkocht. Op papier kost het een handvol gemiste verkopen; het bespaart de veel duurdere kosten van het annuleren van een bevestigde Amazon-bestelling, wat je accountgezondheidsstatistieken raakt op een manier waarop een WooCommerce-annulering dat nooit doet.

Synchronisatievolgorde is belangrijker dan de meeste integraties rekening mee houden. Wanneer een bestelling binnenkomt, moet het verlagen van de voorraad gebeuren vóórdat de vermeldings-/prijssynchronisatietaak draait, niet erna, anders kan een vermeldingsupdate stilzwijgend een voorraadverlaging overschrijven die nog niet is opgeslagen. We hebben gezien dat deze race condition fantoomherbevoorradingen veroorzaakt: een klant annuleert een bestelling, de voorraad gaat omhoog, en een vermeldingssynchronisatietaak die een seconde eerder is gestart overschrijft dit met een verouderd getal.

De eigenlijke oplossing is geen slimmer synchronisatiealgoritme tussen drie platforms geplakt, het is het volledig wegnemen van de noodzaak voor driewegsynchronisatie. In het multichannel-ERP-werk dat we hebben gedaan, is het ERP-systeem eigenaar van product- en voorraadgegevens als enige bron van waarheid, en is elke webshop een gesynchroniseerd kanaal dat leest van en schrijft naar dat ene systeem, in plaats van drie systemen die onderling paarsgewijs consistent proberen te blijven.

Die architectuur verandert ook wat "een nieuw verkoopkanaal toevoegen" betekent. In plaats van een nieuw synchronisatiepad te bouwen tussen het nieuwe kanaal en elk bestaand kanaal, bouw je één integratie tegen het ERP-systeem, hetzelfde patroon dat je al hebt voor Amazon, Shopify of WooCommerce. We hebben precies dit gebouwd voor een multichannel-retailer die dezelfde catalogus op alle drie de platforms verkoopt: één plek om voorraad en prijzen te beheren, automatische synchronisatie naar buiten, en de overselling-incidenten die vroeger handmatige afstemming vereisten, stopten een wekelijks terugkerend probleem te zijn.

Als je vandaag de voorraad nog steeds apart op elk platform beheert, is de snelste, risicoarme eerste stap niet een volledige ERP-migratie, het is het kiezen van je SKU's met de hoogste omloopsnelheid en die eerst op webhook-gestuurde synchronisatie zetten met een bufferdrempel. Dat bewijst het patroon op de voorraad die daadwerkelijk overselling veroorzaakt, voordat je investeert in het centraliseren van al het andere.

Klaar om over je project te praten?

Vertel ons wat je aan het bouwen bent. We reageren binnen één werkdag met de volgende stappen, zonder verkooppraatjes.