Zippendo

Håndteringafordrerfrafleresalgskanaler

At sælge på Shopify, WooCommerce og et sted med en egen løsning betyder tre ordrelister og tre måder at tage fejl på. Sådan samler ordrekanaler dem i én.

tutorials

De fleste butikker, vi taler med, havde ikke planlagt at sælge tre steder. Det skete bare. Først kom Shopify, så en WooCommerce-side til et andet brand, og så en markedsplads eller en B2B-portal, der sender et regneark over hver tirsdag.

Hver af dem har sin egen ordreliste. Hver af dem har sin egen idé om, hvad en ordre er. Og det er den, der pakker, som skal holde styr på alle tre i hovedet.

Hvad en ordrekanal er

I Zippendo kommer hver ordre ind via en ordrekanal, og en kanal er forbindelsen til ét kildesystem. Der findes fire slags:

  • Shopify. Du installerer appen, og ordrerne kommer ind, i takt med at de afgives. Ekspederinger og trackingnumre går den anden vej.
  • WooCommerce. Det samme via vores plugin plus live fragtpriser og pakkeshops i checkout.
  • Egen kanal. Din egen webshop, dit ERP-system eller din markedspladsbro sender ordrer til os via en signeret webhook.
  • Manuel. Intet kildesystem overhovedet. Ordrer, du selv taster ind, eller ordrer, som et importværktøj har oprettet, da du flyttede fra et andet system.

Uanset hvilken slags det er, ser ordren ens ud, når den når forsendelsessiden. Det er hele pointen med abstraktionen.

Den egne kanal, fordi alle spørger

Hvis vi ikke har en integration til dit system, får du en kanal med sin egen signeringshemmelighed og en ingest-URL. Dit system sender ordren, signerer body'en med HMAC-SHA256 og sætter en topic-header for oprettet, opdateret eller annulleret.

Verificeringen fejler lukket. Ingen hemmelighed, ingen signatur eller en signatur, der ikke matcher, og du får en 401 i stedet for, at vi gætter på, hvad du mente.

Det vigtigste felt er externalId, dit eget ID for ordren. Vi bruger det som nøgle. Send den samme ordre to gange, og den anden opdaterer den første i stedet for at oprette en tvilling. Så når din retry-løkke fyrer tre gange klokken to om natten, fordi vores svar var langsomt, ender du stadig med én ordre.

Der er også et REST-endpoint, hvis det er besværligt at sende webhooks fra din side. Samme regler, bortset fra at et duplikeret externalId får en 409 i stedet for en opdatering, fordi du dér bad om at oprette noget i stedet for at synkronisere det.

Hvor kanalerne holder op med at betyde noget

Når ordrerne først er inde, er kanalen for det meste bare en etiket. Forsendelsesregler er ligeglade med, hvor en ordre kom fra, medmindre du beder dem om at tage hensyn til det. Skriv reglen én gang, denne vægt til den transportør, dette land til en pakkeshop, og den dækker dem alle.

To steder betyder kanalen stadig noget. Ekspederingen går tilbage til det system, ordren kom fra, så Shopify får sin ekspedering, og Woo får sit trackingnummer. Og hvis du bruger brands, hører en kanal til præcis ét brand, og det er sådan, en butik nummer to får sit eget navn på pakkesedlen uden at skulle have en konto nummer to.

Den del, der er virkelig irriterende

Ordrestatusser betyder ikke det samme på alle platforme, og ingen mængde mapping løser det helt. Det, vi gør, er at nægte at rulle en status tilbage: Hvis en forsendelse allerede har nået en senere tilstand, kan en forsinket opdatering ikke trække den baglæns. Det forhindrer det værste. Det får ikke tre platforme til at blive enige om, hvad "processing" betyder, og vi er holdt op med at lade, som om det kunne.

Hvis du driver mere end én butik på tværs af mere end én browserfane, er det den del af Zippendo, der er bygget til dig. Forbind den anden kanal, og se, om pakkebordet overhovedet mærker nogen forskel.

Tags

ordrekanalershopifywoocommerceintegrations