Hoppa till innehållet

Koppla returdata mellan webbutik, ERP och betalsystem

Ett konkret datakontrakt kopplar orderrad, varumottagning i ERP och återbetalning. Separata statusar förebygger felaktiga lager- och betalningsuppgifter.

Lena Fischer2 min läsning
Stängd kartong med röd returpil, röd tejp och en streckkodsetikett.

När du kopplar ihop webbutik, ERP och betaltjänst behöver en retur mer än ett gemensamt fält för «klart». Integrationen måste se vilken rad som kommer tillbaka, vad som händer med lagret och vilken status återbetalningen har. Bestäm relationerna innan gränssnitten byggs.

Koppla ihop ett helt fall

En fiktiv webbutik för heminredning har levererat två vaser med order O-86 och fått betalt. En vas kommer tillbaka med en kantstötning. I exemplet har en återbetalning på 24 EUR avtalats för den vasen. Teamet planerar följande koppling:

System

Referens och fakta

Förväntad status

Webbutik

OL-86-A: 2 levererade, 1 returnerad.

Den andra vasen stannar hos kunden; den ursprungliga levererade mängden ska kunna spåras.

ERP

DL-86-A: 1 mottagen, skada bekräftad vid kontroll.

Tillskott till säljbart lager: 0 exemplar.

Betaltjänst

PAY-86: avtalat återbetalningsbelopp.

Begärd och bekräftat genomförd är separata statusar.

Kopplingen använder rad- och transaktionsreferenser. Samma produktnamn eller artikelnummer räcker inte när samma artikel finns i flera order.

Bestäm en intern integrationsmodell

Följande post är ett eget modellförslag för detta fiktiva fall, inte ett API-anrop till en leverantör. Mängderna avser returen; beloppet anges i EUR-cent.

{
  "returnId": "R-86",
  "orderReference": "O-86",
  "shopOrderLine": "OL-86-A",
  "shopFulfillmentLine": "FL-86-A",
  "erpDeliveryLine": "DL-86-A",
  "receivedQuantity": 1,
  "saleableStockDelta": 0,
  "refund": {
    "paymentReference": "PAY-86",
    "amountMinor": 2400,
    "currency": "EUR",
    "state": "requested"
  }
}

Referenserna kopplar webbutikens orderrad, dess leveransrad och den ursprungliga leveransraden i ERP till betalningen. Spara även betaltjänstens återbetalningsreferens på ärendet. Om raden inte kan identifieras entydigt ska posten invänta utredning i stället för att bokföras automatiskt genom namnmatchning.

Använd rätt källa för varje ändring

I exemplet ger webbutiken kopplingen till den köpta raden. ERP bekräftar mottagning, kontrollresultat och frisläppning av lager. Betaltjänsten ger återbetalningens status. Ansvarsfördelningen finns i datakontraktet; en annan systemfördelning kan kräva andra ansvar.

Shopifys ReturnLineItem pekar på en Shopify-leveransrad; integrationen måste skapa kopplingen till ERP-raden. Dokumentationen för Refund påpekar uttryckligen att en post ensam inte bekräftar en genomförd penningöverföring. Stripe beskriver också separata händelser för skapande, ändring och fel. Integrationen behöver koppla den valda tjänstens faktiska statusar till sin interna modell.

En genomförd återbetalning ska därför bara ändra betalningsstatus i exemplet. Den gör inte den skadade vasen säljbar. Varumottagning gör inte heller automatiskt återbetalningen genomförd.

Kontrollera det förväntade resultatet

Kontrollera fallet i en lämplig testmiljö: delreturen hör till rätt rad, lagerändringen förblir 0 och 2400 cent hör till rätt betalning. När återbetalningen har bekräftats genomförd ändras dess status medan varan förblir spärrad. Ett oklart betalningssvar ska vara synligt som outrett. Ett upprepat statusmeddelande ska uppdatera samma ärende. Teknisk hantering av nya försök kräver också en lämplig idempotensstrategi.

Källor

Skriven av

  • Lena FischerRedaktör för e-handelLena Fischer ansvarar för ASES artiklar om e-handel. Hon skriver om butikssystem och hur de kopplas till andra applikationer och förklarar de tekniska processerna bakom näthandeln.

Följ ASES

Läs vidare

Alla artiklar

E-handel med ASES

Webbutiker, marknadsplatser och B2B-portaler