Dropshipping in Magento 2

Marco Boom
Marco Boom
Lead Developer
9 maart 2020

In een eerder artikel heeft collega Gijs Hoondert de mogelijkheden beschreven van de Magento Multi Source Inventory functionaliteit. Binnen XSARUS zijn we hiermee aan de slag gegaan waaruit een mooie Dropshipping oplossing is gekomen. In dit artikel wordt dieper ingegaan op de uitdagingen die we tegenkwamen en hoe dit is opgelost met zo min mogelijk maatwerk binnen het Magento 2 Open Source platform.

Wat is Dropshipping/Dropshipment?

Dropshipping is voor een (online) retailer een methode om zonder voorraad, grote investeringen en personeel, een actueel assortiment aan te bieden aan de eindklant. Bij deze methode plaatst de retailer een bestelling van een eindklant direct door naar een leverancier/groothandel. De leverancier levert de artikelen vervolgens direct uit aan de eindklant zonder tussenkomst van de (online) retailer.

Een voordeel van deze manier van werken voor de (online) retailer is dat er geen eigen voorraad nodig is. Dit voorkomt voorraadrisico. Zeker voor producten met een lagere afzet, is dit een groot kostenvoordeel.

De uitdagingen van dropshipping

De uitdaging ontstaat wanneer een organisatie naast haar eigen voorraad voor de verkoop in hun fysieke winkel en webshop, online ook een zeer uitgebreid aanbod van meerdere dropshipment leveranciers heeft. Binnen het Magento platform geeft dit grofweg drie uitdagingen, namelijk:

  1. Het actueel houden van de voorraad van de verschillende dropshipment leveranciers;
  2. Het selecteren van de juiste voorraad in geval van voorraad op verschillende locaties;
  3. Het creëren van een uniform handling proces van de orders.

Het actueel houden van de voorraad

Iedere leverancier heeft zijn eigen werkwijzen en (ERP) software. Het is daarom lastig om als derde partij met al deze leveranciers een uniforme methode (protocol) af te spreken voor de aanlevering van de actuele voorraad. Daarom heeft XSARUS een middleware platform ontwikkeld waar elk type aanlevering omgezet wordt naar een standaardformaat in de vorm van een SKU en voorraad. De verschillende vormen van aanlevering bestaan uit een web API, CSV bestand via HTTP of een Excel bestand via FTP.

Het selecteren van de juiste voorraad: Magento Multi Source Inventory

Als alle data vanuit de leveranciers uniform is, is de vraag hoe de verschillende voorraden in Magento verwerkt moeten worden. Hiervoor maakt XSARUS gebruik van de Magento Multi Source Inventory (MSI). Alle leveranciers én de organisatie zelf worden aangemaakt als 'Source'. Dit betekent dat alle voorraadhouders nu een voorraad bron zijn in Magento. De voorraad data van alle leveranciers importeren we vervolgens vanaf het middleware platform via de Async Bulk API van Magento.

Het kan voorkomen dat een product bij meerdere leveranciers of bij de webshop zelf op voorraad is. Om een order vanaf de juiste voorraad af te boeken, is het mogelijk om regels in te stellen waarmee bepaald wordt welke voorraadbron voorrang heeft. In dit geval krijgt de bron, de organisatie zelf, altijd prioriteit boven de dropshipment leveranciers. In theorie kunnen er een onbeperkt aantal regels worden toegevoegd in het systeem, met algoritmes op basis van locatie, minimum voorraden, etc.

Externe order handling

Wanneer een order betaald is, zorgt XSARUS er met een event ('De order is betaald') voor dat op dat moment een dropshipment aanvraag ingediend wordt bij één van de leveranciers. Per orderregel bepaalt de MSI-module uit welke voorraadbron(nen) het product gehaald moet worden. Zodra iedere regel gekoppeld is aan een voorraadbron worden deze per bron gegroepeerd tot een 'Dropshipment aanvraag'.

Elke aanvraag zal naar de betreffende leverancier gestuurd moeten worden. Door gebruik te maken van een ‘servicemanager concept’ kan voor elke leverancier een specifieke koppeling gemaakt worden. Handig als er bijvoorbeeld via een OCI-koppeling (een koppeling tussen de webshop en het ERP-systeem) gewerkt wordt om te communiceren met het ERP-software van de leverancier.

In bepaalde gevallen wordt met alle leveranciers op dezelfde manier gecommuniceerd. De leverancier ontvangt een e-mail met een dropshipment aanvraag. Via een link naar een speciale pagina is de bestelling te zien, waar deze geaccepteerd of geweigerd kan worden door de leverancier. Bij een weigering wordt er een bericht teruggestuurd naar de webshopeigenaar zodat deze een andere oplossing voor de klant kan zoeken.

Na het accepteren van de bestelling kan de leverancier de pakbon downloaden en daarmee de verzending afhandelen. Als laatste kan een track & trace code worden ingevoerd, waardoor de klanten via de webshop op de hoogte worden gehouden van de levering van hun bestelling.

Interne order handling

In feite is de webshop in Magento zelf ook een dropshipment leverancier. Voor de webshop eigenaar is een andere werkwijze opgezet, waardoor zij de orderafhandeling via de Magento backend kan uitvoeren. Dit start bij het plaatsen van een order door de klant in de webshop. Zodra de order betaald is, verandert de status naar ‘Processing’. Het is mogelijk om meerdere orderstatussen toe te voegen in Magento.

Zo heeft XSARUS de volgende statussen toegevoegd:

  • Dropshipment processing
  • Dropshipment declined

Na het genereren van alle dropshipment aanvragen wordt gecontroleerd of er minimaal één dropshipment aanvraag aanwezig is. Zo ja, dan blijft de orderstatus staan op ‘Processing’. Hierdoor weet de webshop eigenaar dat zij iets moeten doen met de order. Zo niet, dan wordt de status ‘Dropshipment processing’ en is het afwachten tot de leverancier actie onderneemt.

Na iedere afhandeling van een dropshipment aanvraag wordt de status van de order opnieuw bepaald aan de hand van de openstaande dropshipment aanvragen. Zodra alle aanvragen zijn afgehandeld zal de orderstatus automatisch veranderen naar ‘Complete’. Orders met de status ‘Processing’ is de werklijst van de webshop eigenaar. Voor een correcte orderafhandeling heeft XSARUS maatwerk toegevoegd aan de Magento Admin. Dit is gedaan om de workflow zo eenvoudig en efficiënt mogelijk te laten verlopen.

Order handling en shipping is standaard niet het sterkste onderdeel van Magento. Er zijn veel handmatige stappen nodig om een order richting de complete status te krijgen. XSARUS heeft daarom een functionaliteit gemaakt die in één keer geselecteerde orders afhandelt. Hierin worden de volgende stappen achtereenvolgens uitgevoerd:

  • Picklijst opmaken
  • Verzending aanmaken
  • Verzendlabel genereren (PostNL of UPS)
  • Retourlabel genereren (Antwoordnummer of UPS)
  • PDF Pakbon met retourformulier en verzendlabels genereren

De status van de orders wordt hierna automatisch aangepast naar Complete, als de order helemaal is afgerond. Als er nog dropshipment aanvragen uitstaan krijgt de order de status ‘Dropshipment processing’.

Conclusie

Met relatief weinig maatwerk is het goed mogelijk om binnen Magento 2 een webshop te voorzien van dropshipment functionaliteiten en een goede workflow voor orderafhandeling. Is een webshop te groot voor handmatige acties, maar te klein voor een specifieke OMS / WMS software? Dan biedt deze functionaliteit binnen Magento 2 de oplossing.