Met Solid WMS is het mogelijk jouw webwinkel voorraad realtime bij te werken. Er zijn verschillende scenarios denkbaar waar dit wenselijk is. Bijvoorbeeld je hebt een webwinkel, maar besteed het fulfillment proces uit bij een van onze fulfillment klanten. Of je gebruikt Solid WMS zelf voor voorraadbeheer en je gebruikt WooCommerce als technologie achter jouw webshop.
Hoe werkt de realtime WooCommerce synchronisatie?
Iedere actie dat gedaan wordt in Solid WMS wat een wijziging in voorraad aantallen tot gevolg heeft start het ‘article-stock-updated’ event. Wijzingen die voorraad gevolgen hebben zijn onder andere:
- Inslaan van een inslagorder
- Handmatige correcties op voorraad
- Maken of wijzigen van een uitslagorder (voorraad geserveerd)
- Annuleren van een uitslagorder
Solid Service Bus ofwel Azure Service Bus
Azure Service Bus is een messaging-service die wordt aangeboden als onderdeel van Microsoft’s Azure-cloudplatform. Het biedt een betrouwbare en veilige manier voor applicaties en systemen om berichten en gegevens met elkaar uit te wisselen. Het ‘article-stock-updated’ bericht wordt geplaatst op het ‘article-stock-updated’ Topic.
Article-stock-updated Topic
Dit is waar het concept van ‘topics’ relevant wordt. Een topic is een soort publish-subscribe mechanisme. In tegenstelling tot queues, waar elk bericht slechts één ontvanger heeft, stelt een topic je in staat om een bericht te verzenden naar meerdere geabonneerde ontvangers (subscriptions). Dit is bijzonder nuttig in scenario’s waarbij een bericht of gebeurtenis geïnteresseerd is voor meerdere partijen of systemen. Elke subscription op een topic kan worden gezien als een virtuele queue die alleen berichten ontvangt die voor die specifieke subscriber relevant zijn. Dit maakt het mogelijk om complexe messaging-scenario’s te implementeren, waarbij berichten op basis van specifieke criteria of filters naar verschillende ontvangers worden gestuurd.
Topics worden vaak gebruikt in scenario’s zoals event broadcasting, waarbij een gebeurtenis (zoals een update in een database, een verkooptransactie, etc.) moet worden medegedeeld aan meerdere geïnteresseerde partijen of systemen. Ze zijn ook nuttig in situaties waar flexibiliteit en schaalbaarheid belangrijk zijn, omdat ze gemakkelijk kunnen worden aangepast om aan veranderende eisen te voldoen.
Het article-stock-updated topic is op deze manier niet alleen interessant voor de WooCommerce integratie van Solid WMS, maar ook andere processen van Solid WMS zoals:
- Mailen bij lage voorraad of juist juist maximale bezetting van een artikel bereikt
- Andere webwinkel integraties (Bol.com / Shopify / Amazon)
- Geautomatiseerde replenishment taken
Solid WMS WooCommerce Azure Function App
De Solid WMS WooCommerce function app bevat alle code met betrekking tot de integratie van Solid WMS en WooCommerce. Dit is dan ook haar enige verantwoordelijkheid. Azure Function App is een onderdeel van het Azure cloud-platform dat serverless computing mogelijk maakt. Het stelt ontwikkelaars in staat om kleine, event-gedreven functies te schrijven die automatisch worden getriggerd en uitgevoerd in reactie op verschillende soorten gebeurtenissen. In dit artikel kijken we naar de event ‘article-stock-updated’.
- De gebeurtenis (event) wordt gelezen van het Topic door de Solid WooCommerce Function App
- De function app leest de beschikbare voorraad van het artikel, te weten fysieke minus geserveerde voorraad.
- De function app zoekt het product in WooCommerce middels een RestFull API call met als zoekcriteria het SKU nummer van het artikel zoals het geregistreerd is in Solid WMS.
- De Solid WooCommerce Function App werkt de voorraad van het product bij in WooCommerce
- Dit bestaat uit een PATCH call met het Id van het product en het veld “stock_quantity” te sturen naar de WooCommerce API.
Consolidatie voorraad product catalogus
Wanneer gewenst kunnen we in Solid WMS ook een consolidatie moment inrichten. In de webshop worden de hele dag mutaties gedaan op de product catalogus. Om er voor te zorgen dat de laatste voorraad stand correct is in de webshop werkt de Solid WooCommerce Function app een enkele keer per dag de voorraad standen bij.
- Op gezette tijden start het consolidatie proces.
- De Solid WMS WooCommerce Function App leest alle producten uit de WooCommerce API in groepen van 100 producten. WooCommerce list products documentation
- Wanneer alle producten zijn opgehaald worden alle artikelen gelezen uit Solid WMS.
- Per artikel gaan we de beschikbare voorraad bepalen.
- Bij verschillen in beschikbare voorraad binnen Solid WMS en WooCommerce voegt de Function App per product een update toe aan een BATCH opdracht.
- De Function App stuurt indien nodig de BATCH opdracht in groepen van 100 naar de WooCommerce API. WooCommerce batch update documentation. Dit doen we zo efficient mogelijk door alleen een ‘Id’ en een ‘stock_quantity’ veld te vullen in het Json bericht.
Mocht er nou ergens in de bovenstaande processen iets mis gaan wat de gebruiker van Solid WMS mogelijk zelf kan oplossen loggen wij dit in de functionele log:
Daarnaast loggen we natuurlijk elke stap ook technisch om proactief problemen op te sporen. Zie Hoe Solid WMS proactief problemen aanpakt met App Insights en Azure Monitoring.