Shopify er det nemmeste sted at starte. Det er også det sted, hvor integrationen har flest gotchas du ikke stoeder på, foer du er i produktion. Custom shipping-metoder, leveringsmetode-mapping, HMAC-validering, fulfillment-flow, det er detaljer, der sender dit system i groeften, hvis du ikke kender dem.
Her er det du rent faktisk skal vide, inklusive de fejl der koster mest når de opdages i produktion.
Hvad er Shopify-integration med WMS?
Shopify-WMS-integration er en tovejsforbindelse:
- Shopify til WMS: Ordrer, kundeoplysninger, valgt fragtmetode, betalingsstatus
- WMS til Shopify: Fulfillment-bekraeftelse med tracking-nummer, lagertals-opdatering, evt. ordreannullering
Integrationen bruger to mekanismer: Webhooks (push, Shopify sender ordre-events til WMS i realtid) og REST API (pull, WMS henter periodisk ordrer og opdaterer lager).
Opsætning trin for trin
👉 SmartPack har praekonfigureret Shopify-integration klar til opsætning på minutter. Book demo
Trin 1: Opret Custom App i Shopify
I Shopify Admin, Apps, App and sales channel settings, Develop apps: Opret ny custom app og tildel scopes: read_orders, write_fulfillments, read_inventory, write_inventory. Generer API-nogler: Admin API access token bruges som AccessToken.
Trin 2: Konfigurer webhooks
Registrer webhooks for relevante events: orders/create, orders/cancelled, orders/updated, app/uninstalled. Endpoint skal være HTTPS. Test webhook-levering via Shopify Admin: Send test notification.
Trin 3: HMAC-validering i WMS
Shopify webhook-secret genereres i app-konfigurationen. WMS skal validere hvert indkommende webhook: computed = Base64(HMAC-SHA256(raw_body, webhook_secret)). Hvis computed ikke matcher request-headeren X-Shopify-Hmac-Sha256, returner 401. Aldrig skip denne validering i produktion.
Trin 4: Leveringsmetode-mapping
Dette er den mest oversete gotcha i Shopify-integration. Shopify bruger interne nogler til at identificere leveringsmetoder. Custom shipping rates refereres med praefikset shopify_custom_dk som leveringsmetode-identifikator.
Fejl i denne mapping resulterer i: forkert fragtprodukt bestilles, fulfillment kan ikke oprettes (fragtprofil matcher ikke), og ordren strander i WMS. Verificer præcist, hvilken nogle Shopify sender i shipping_lines[0].code i webhook-payloaden.
Trin 5: Fulfillment-endpoint
WMS sender fulfillment til Shopify ved afsendelse via POST /admin/api/2024-01/orders/{id}/fulfillments.json med location_id, tracking_number, tracking_company og notify_customer: true. location_id skal matche Shopify-lagerlokationen.
Trin 6: Lageropdatering
Lagertal sendes til Shopify via inventory levels API: POST /admin/api/2024-01/inventory_levels/set.json med location_id, inventory_item_id og available. inventory_item_id er Shopifys interne ID for varen, ikke dit varenummer.
Hvad koster forkert Shopify-mapping?
| Fejltype | Total årlig |
|---|---|
| Leveringsmetode-mapping fejl | 2.281.250 kr./aar |
| location_id mangler (total stop) | 10.000 kr. per episode |
| HMAC-validering skippet | 96.000 kr./aar |
| Webhook-tab uden retry | 12.605.625 kr./aar |
Det opdager de fleste for sent
- At
shopify_custom_dkIKKE er en fejl: Det er Shopifys interne reference for custom shipping rates. Mange tror det er en bug. Resultatet: mapping fejler, ordrer strander. - At location_id ændrer sig når du flytter fra staging til produktion: Du hardkoder location_id fra test-shop. Går live. Alle fulfillments fejler med "location not found".
- At Shopify API-versioner udfases efter 12 maaneder: Integrationen bryder når Shopify udfaser versionen. Det opdages når ordrer ikke længere importeres.
Typiske fejl
- Custom shipping-metode matcher ikke i WMS: Shopify custom shipping-metoder bruger interne identifikatorer der skal konfigureres eksplicit og testes.
- location_id mangler eller er forkert ved fulfillment: Hent altid location_id dynamisk eller konfigurer det eksplicit pr. installation.
- API-version ikke specificeret: Shopify APIer versioneres. Bruger du ikke versioneret endpoint, kan breaking changes ramme din integration uden varsel.
Sådan gør du det rigtigt
- Brug Shopifys sandbox: Test altid ny opsætning i en development store inden produktion.
- Abonner på Shopify changelog: Shopify udfaser API-versioner hvert år. Hold styr på deprecation-datoer.
- Implementer order reconciliation: Koer daglig sammenligning: har alle Shopify-ordrer fra i går en tilsvarende WMS-ordre?
SmartPack
SmartPack har praekonfigureret Shopify-integration med webhook-modtagelse, HMAC-validering, automatisk fulfillment og lageropdatering. Leveringsmetode-mapping konfigureres i SmartPack admin panel, inklusive håndtering af custom shipping-metoder (shopify_custom_dk til Pickup er praekonfigureret). Alle Shopify API-kald bruger versionerede endpoints og opdateres automatisk ved Shopify API-udfasninger.