Zippendo

Håndteringavordrerfrafleresalgskanaler

Å selge på Shopify, WooCommerce og et egendefinert sted betyr tre ordrelister og tre måter å ta feil på. Slik samler ordrekanaler dem i én.

tutorials

De fleste butikkene vi snakker med, planla ikke å selge på tre steder. Det bare skjedde. Shopify kom først, så en WooCommerce-side for en annen merkevare, og så en markedsplass eller en B2B-portal som sender over et regneark på tirsdager.

Hver av dem har sin egen ordreliste. Hver av dem har sin egen oppfatning av hva en ordre er. Og den som pakker, er den som må holde styr på alle tre i hodet.

Hva en ordrekanal er

I Zippendo kommer hver ordre inn gjennom en ordrekanal, og en kanal er tilkoblingen til ett kildesystem. Det finnes fire typer:

  • Shopify. Du installerer appen, og ordrene kommer inn etter hvert som de legges inn. Ekspederinger og sporingsnumre går den andre veien.
  • WooCommerce. Det samme gjennom programtillegget vårt, pluss fraktpriser og hentesteder i sanntid i kassen.
  • Egendefinert. Din egen nettbutikk, ditt ERP-system eller din markedsplassbro sender ordrer til oss over en signert webhook.
  • Manuell. Ikke noe kildesystem i det hele tatt. Ordrer du legger inn selv, eller ordrer en importør opprettet da du flyttet over fra noe annet.

Uansett hvilken det er, ser ordren lik ut når den når fraktsiden. Det er hele poenget med abstraksjonen.

Den egendefinerte kanalen, fordi alle spør

Hvis vi ikke har en integrasjon for systemet ditt, får du en kanal med sin egen signeringshemmelighet og en URL for innlevering. Systemet ditt poster ordren, signerer innholdet med HMAC-SHA256 og setter en topic-header for opprettet, oppdatert eller kansellert.

Verifiseringen avviser alltid ved tvil. Ingen hemmelighet, ingen signatur eller en signatur som ikke stemmer, så får du en 401 i stedet for at vi gjetter hva du mente.

Feltet som betyr mest, er externalId, din egen ID for ordren. Vi bruker det som nøkkel. Send den samme ordren to ganger, så oppdaterer den andre den første i stedet for å lage en tvilling. Så når retry-løkken din fyrer av tre ganger klokken to om natten fordi svaret vårt var tregt, ender du likevel opp med én ordre.

Det finnes også et REST-endepunkt, hvis det er tungvint å pushe webhooks fra din side. Samme regler, bortsett fra at en duplisert externalId gir en 409 i stedet for en oppdatering, fordi du der ba om å opprette noe, ikke om å synkronisere det.

Der kanalene slutter å bety noe

Når ordrene er inne, er kanalen stort sett bare en merkelapp. Fraktregler bryr seg ikke om hvor en ordre kom fra, med mindre du ber dem om det. Skriv regelen én gang, denne vekten til den transportøren, dette landet til et hentested, så dekker den alle sammen.

To steder betyr kanalen fortsatt noe. Ekspederingen går tilbake til systemet ordren kom fra, så Shopify får sin ekspedering og Woo får sitt sporingsnummer. Og hvis du bruker Merkevarer, tilhører en kanal nøyaktig én merkevare, og det er slik butikk nummer to får sitt eget navn på pakkseddelen uten at du trenger en konto til.

Den delen som er skikkelig irriterende

Ordrestatuser betyr ikke det samme på alle plattformer, og ingen mengde mapping løser det helt. Det vi gjør, er å nekte å sette en status tilbake: hvis en sending allerede har nådd en senere status, kan ikke en forsinket oppdatering dra den bakover. Det hindrer det verste. Det får ikke tre plattformer til å bli enige om hva «processing» betyr, og vi har sluttet å late som om det kunne det.

Hvis du driver mer enn én butikk i mer enn én nettleserfane, er dette den delen av Zippendo som er laget for deg. Koble til den andre kanalen og se om pakkebenken merker noen forskjell.

Tags

ordrekanalershopifywoocommerceintegrations