Negen webshops, één logistieke basis
Openhaardhout Gigant verkoopt via negen webshops in vier landen. Elke nieuwe logistieke partner was een nieuw project. Nu is het een uitbreiding, en die staat ongeveer vier keer zo snel live.
Leylines verkoopt haardhout en aanverwante producten via negen webshops, waaronder Openhaardhout Gigant, in Nederland, België, Duitsland en Engeland. Elk land heeft zijn eigen warehouse, vervoerder of palletdienst. En elke partij werkt anders.
Elke partner een eigen koppeling
De ene partner wil een CSV-bestand via SFTP. De andere werkt met XML of met een API. Een vervoerder levert labels en track-and-trace via zijn eigen systeem, een palletdienst wil de orders op een vast moment per dag. Lange tijd betekende elke nieuwe partner een nieuwe koppeling, met eigen code, eigen fouten en eigen onderhoud.
Dat werkt zolang je een of twee partners hebt. Met meerdere landen en meerdere partijen per land wordt elke wijziging een risico. Een aanpassing in de orderflow moet dan op meerdere plekken gebeuren, en het overzicht over wat waar loopt verdwijnt.
Een nieuwe partner hoort een uitbreiding te zijn, geen nieuw project.
Eén basis voor alle partners
Na de migratie van Magento 1 naar Magento 2 met Hyvä hebben we alle logistieke koppelingen ondergebracht in één basismodule binnen Magento. Die regelt wat elke partner nodig heeft:
- orders exporteren naar het juiste warehouse of de juiste vervoerder;
- status en track-and-trace terughalen naar de shop;
- de verwachte levertijd tonen aan de klant.
Wat per partner verschilt, zit in een kleine, aparte laag: het bestandsformaat, de manier van versturen en de velden die de partner verwacht. De rest is gedeeld, en hoeft maar één keer gebouwd en onderhouden te worden.
Wat het oplevert
Een nieuwe partner aansluiten gaat nu ongeveer vier keer zo snel als vroeger. Hoeveel precies, hangt af van het type koppeling. Een bestand via SFTP is sneller aangesloten dan een volledige API met labels en statusupdates. Maar het basiswerk hoeft niet meer opnieuw.
Daarnaast:
- Een verbetering in de basis werkt meteen voor alle partners.
- Een developer die één koppeling kent, kent de opbouw van alle andere.
- Een nieuw land of een nieuwe shop sluit aan op dezelfde basis.
Wanneer is dit de moeite waard?
Niet elke shop heeft een logistieke basis nodig. Met één warehouse en één vervoerder is een losse koppeling prima. Het verschil ontstaat als je groeit naar meerdere landen, meerdere partners of meerdere shops. Of als je merkt dat elke nieuwe partner weer een eigen project wordt.
Wat je hieruit meeneemt
- Kijk bij een nieuwe koppeling eerst wat je al hebt. Vaak is het grootste deel gedeeld werk.
- Houd wat per partner verschilt klein en apart. Bouw de rest één keer goed.
- Bouw logging en meldingen in de basis, zodat ze voor elke partner werken.