Zippendo

Bestellingenuitmeerdereverkoopkanalenbeheren

Verkopen via Shopify, WooCommerce en een eigen systeem betekent drie lijsten met bestellingen en drie manieren waarop het mis kan gaan. Zo brengen verkoopkanalen ze samen.

tutorials
Open kartonnen dozen dicht op elkaar in een raster, van bovenaf gezien

Foto door Luke Heibert op Unsplash

De meeste webshops waarmee we praten, waren niet van plan om op drie plekken te verkopen. Het is gewoon zo gegaan. Eerst kwam Shopify, daarna een WooCommerce-site voor een tweede merk, en toen een marktplaats of een B2B-portaal dat op dinsdag een spreadsheet mailt.

Elk kanaal heeft zijn eigen lijst met bestellingen. Elk kanaal heeft zijn eigen idee van wat een bestelling is. En degene die inpakt, moet ze alle drie in zijn hoofd houden.

Wat een verkoopkanaal is

In Zippendo komt elke bestelling binnen via een verkoopkanaal, en een kanaal is de koppeling met één bronsysteem. Er zijn vier soorten:

  • Shopify. Je installeert de app en bestellingen komen binnen zodra ze worden geplaatst. Fulfillments en trackingnummers gaan de andere kant op terug.
  • WooCommerce. Hetzelfde via onze plugin, plus live tarieven en afhaalpunten in de checkout.
  • Eigen kanaal. Je eigen webshop, ERP of marktplaatskoppeling pusht bestellingen naar ons via een ondertekende webhook.
  • Handmatig. Helemaal geen bronsysteem. Bestellingen die je zelf invoert, of die een importtool heeft aangemaakt toen je overstapte van iets anders.

Welk kanaal het ook is, de bestelling ziet er hetzelfde uit tegen de tijd dat ze bij de verzendkant aankomt. Dat is precies het doel van deze abstractie.

Het eigen kanaal, omdat iedereen ernaar vraagt

Als we geen integratie voor je systeem hebben, krijg je een kanaal met een eigen ondertekeningsgeheim en een ingest-URL. Je systeem post de bestelling, ondertekent de body met HMAC-SHA256 en zet een topic-header voor aangemaakt, bijgewerkt of geannuleerd.

De verificatie is fail-closed. Geen geheim, geen handtekening of een handtekening die niet klopt, en je krijgt een 401 in plaats van dat wij gaan raden wat je bedoelde.

Het belangrijkste veld is externalId, je eigen ID voor de bestelling. Die gebruiken we als sleutel. Stuur je dezelfde bestelling twee keer, dan werkt de tweede de eerste bij in plaats van een tweeling aan te maken. Dus wanneer je retry-loop om twee uur 's nachts drie keer afgaat omdat ons antwoord traag was, hou je toch één bestelling over.

Er is ook een REST-endpoint, als het pushen van webhooks aan jouw kant lastig is. Dezelfde regels, behalve dat een dubbele externalId een 409 krijgt in plaats van een update, omdat je daar vraagt om iets aan te maken en niet om het te synchroniseren.

Waar de kanalen er niet meer toe doen

Zodra bestellingen binnen zijn, is het kanaal vooral een kenmerk. Verzendregels kijken niet naar waar een bestelling vandaan kwam, tenzij je ze dat vertelt. Schrijf de regel één keer, dit gewicht naar die vervoerder, dit land naar een afhaalpunt, en hij geldt voor alle kanalen.

Op twee plekken doet het kanaal er nog wel toe. De orderverwerking gaat terug naar het systeem waar de bestelling vandaan kwam, dus Shopify krijgt zijn fulfillment en Woo krijgt zijn trackingnummer. En als je Merken gebruikt, hoort een kanaal bij precies één merk. Zo krijgt een tweede webshop zijn eigen naam op de pakbon zonder dat je een tweede account nodig hebt.

Het deel dat echt vervelend is

Bestelstatussen betekenen niet op elk platform hetzelfde, en geen enkele mapping lost dat helemaal op. Wat we wel doen, is weigeren een status terug te zetten: als een zending al een latere status heeft bereikt, kan een late update hem niet terugtrekken. Dat voorkomt het ergste. Het zorgt er niet voor dat drie platforms het eens worden over wat 'in behandeling' betekent, en we doen niet langer alsof dat wel kan.

Beheer je meer dan één webshop in meer dan één browsertabblad, dan is dit het deel van Zippendo dat voor jou is gebouwd. Koppel het tweede kanaal en kijk of de inpaktafel enig verschil merkt.

Tags

verkoopkanalenshopifywoocommerceintegrations