Webhaken in Shoporama
Komplet guide til webhooks i Shoporama. Få automatisk besked på en URL, når der sker noget i din webshop. Liste over alle events, opsætning, payload og signatur.
Webhooks giver dig mulighed for at få Shoporama til automatisk at sende en besked til en ekstern service, når der sker noget i din shop. For eksempel når en ny ordre oprettes, når et produkt opdateres, eller når en kunde logger ind for første gang. Her gennemgår vi, hvad webhooks er, hvilke events du kan lytte på, og hvordan du opretter dem.
Hvad er webhooks?
Et webhook er en automatisk notifikation, som Shoporama sender til en URL, du angiver, når en bestemt hændelse sker. Tænk på det som en "omvendt API". I stedet for at du spørger Shoporama "er der nye ordrer?", fortæller Shoporama dig det automatisk.
Uden webhooks: Din service spørger Shoporama hvert 5. minut: "Er der nye ordrer?". Det er ineffektivt og giver unødig belastning.
Med webhooks: Shoporama sender dig besked med det samme, når der er en ny ordre. Det er hurtigt og kører i realtid.
Tilgængelige webhook-events
Du kan opsætte webhooks for følgende hændelser. Bemærk at event-navnene bruger underscore (order_created), ikke punktum.
Ordre-events
| Event | Beskrivelse |
|---|---|
| order_created | En ny ordre er oprettet i webshoppen |
| paid | En ordre er markeret som betalt |
| new_status | En ordre har skiftet status (fx fra "ny" til "sendt") |
| new_return | En kunde har oprettet en returnering |
Produkt- og kategori-events
| Event | Beskrivelse |
|---|---|
| product | Et produkt er oprettet eller opdateret |
| stock | Lagerbeholdningen på et produkt er ændret |
| category | En kategori er oprettet eller opdateret |
Kunde- og nyhedsbrev-events
| Event | Beskrivelse |
|---|---|
| customer_created | En ny kunde er oprettet i webshoppen |
| newsletter_subscribe | Nogen har tilmeldt sig nyhedsbrevet |
Checkout-events (kundens vej igennem kassen)
| Event | Beskrivelse |
|---|---|
| add_to_basket | En vare er lagt i kurven |
| update_basket | Kurven er opdateret (antal eller variant) |
| view_basket | Kunden har set kurven |
| view_address | Kunden er på adresse-trinet i checkout |
| view_shipping | Kunden er på fragt-trinet |
| view_approve | Kunden er på godkend-trinet |
| view_thanks | Kunden er på "tak for din ordre"-siden |
| approved | Kunden har godkendt ordren |
Bemærk: Shoporama har ikke et selvstændigt "order_sent"-event. Når du markerer en ordre som sendt, fyrer eventet new_status med den nye status i payloaden. Lyt på new_status, hvis du vil reagere på status-skift.
Opret et webhook
- Gå til Indstillinger (tandhjulet)
- Klik på de tre prikker og vælg Webhooks
- Klik "Opret nyt webhook"
- Angiv den URL, der skal modtage webhook-data
- Vælg de events, du vil lytte på (du kan vælge flere)
- Klik Gem
Du kan også sende et test-event med eventet test.ping direkte fra log-siden, så du kan tjekke at din modtager virker.
Format på webhook-payload
Når et event udløses, sender Shoporama en HTTP POST-request til din URL med data i JSON-format. Alle webhooks har samme struktur:
{
"event": "order_created",
"action": "create",
"timestamp": "2026-05-01T10:30:00+02:00",
"webshop_id": 1234,
"data": {
"order_id": 56789,
"order_no": 1042,
"email": "kunde@eksempel.dk",
"total": 549.50
}
}
Indholdet i data-feltet varierer afhængigt af eventet. For ordre-events får du oplysninger om ordren, for produkt-events oplysninger om produktet og så videre. Dataobjektet svarer til det, REST API'et returnerer for det pågældende objekt.
HTTP-headers
Hver webhook-request indeholder disse headers, du kan bruge til verifikation og routing:
- Content-Type: application/json
- X-Webhook-Event, navnet på eventet, fx order_created
- X-Webhook-Signature, en HMAC SHA-256 signatur i formatet sha256=... beregnet ud fra request-bodyen og webhookens hemmelige nøgle
Verificér signatur
Vil du være sikker på, at requestet faktisk kommer fra Shoporama, så verificér X-Webhook-Signature-headeren med den hemmelige nøgle, du kan se på din webhook i Shoporama-admin. Eksempel i PHP:
$payload = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $payload, $secret);
if (!hash_equals($expected, $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'])) {
http_response_code(401);
exit;
}
Svar fra din modtager
Din modtagende service skal svare med HTTP-status 2xx (typisk 200) for at bekræfte modtagelsen. Andre statuskoder logges som fejl, og du kan gen-sende mislykkede leverancer fra log-siden.
Brug af webhooks
Typiske anvendelser af webhooks:
- Lagerhotel-integration: send nye ordrer automatisk til lagerhotellet, fx ved paid
- Slack/Teams-notifikation: få besked om nye ordrer i din kanal ved order_created
- Lagersync: opdatér eksternt system når stock fyrer
- CRM-sync: opret kunden i Klaviyo, ActiveCampaign eller eget CRM ved customer_created
- Automation: trigger workflows i Zapier, Make eller lignende
Tip: Brug webhook.site til at teste dine webhooks, før du implementerer din endelige modtager. Du får en unik URL, hvor alle indkomne requests vises live.
Logs og gen-send
For hver webhook kan du se en log over alle leveringer (svar-koder, varighed, payload og fejl). Du kan filtrere på event-type, status og dato. Mislykkede leveringer kan gen-sendes manuelt med ét klik. Logs ryddes løbende automatisk.
Ofte stillede spørgsmål
Hvor finder jeg webhook-listen?
Klik på tandhjulet i din Shoporama-admin, og gå til Webhooks via de tre prikker. Du kan også læse vores guide til at se oprettede webhooks i din shop.
Hvor hurtigt kommer webhook'en frem?
Webhooks lægges i en kø og udsendes typisk inden for få sekunder. Ved spidsbelastning kan der være lidt forsinkelse, men aldrig mere end et minut eller to.
Er der et "order_sent"-event?
Nej. Der findes ikke et selvstændigt event for "sendt". Når du markerer en ordre som sendt, udløses new_status med den nye status i payloaden. Lyt på det event og tjek data.status, hvis du vil reagere på status-ændringer.
Skal events skrives med punktum eller underscore?
Underscore. Korrekt: order_created. Forkert: order.created. Det eneste event med punktum er test.ping, som bruges til testleverancer.
Kan jeg lytte på flere events i samme webhook?
Ja. Vælg blot flere events, når du opretter eller redigerer webhooken. Brug X-Webhook-Event-headeren eller event-feltet i payloaden i din modtager til at skelne dem.
Hvad sker der, hvis min server er nede?
Leveringen logges som fejlet. Du kan gen-sende den manuelt fra log-siden, når din server er oppe igen. Vi forsøger ikke automatisk igen, så design din modtager til at kunne tåle, at en webhook indimellem ankommer senere end forventet, eller hent manglende ordrer via REST API'et som backup.
Hvordan ved jeg, at det faktisk er Shoporama, der ringer?
Verificér X-Webhook-Signature-headeren med din webhooks hemmelige nøgle. Den vises på din webhook i Shoporama-admin. Sammenlign med en HMAC SHA-256 over den modtagne body. Match du ikke, så afvis requestet.
Kan jeg bruge webhooks sammen med REST API'et?
Ja, og det er ofte en god idé. Brug webhooks til at få besked, og brug REST API'et til at hente fulde data eller udføre handlinger på baggrund af eventet.
Hvor mange webhooks kan jeg oprette?
Der er ingen hård grænse i Shoporama. Opret så mange du har brug for, men ryd op i webhooks der ikke længere bruges, så du undgår unødigt trafik mod nedlagte URLs.
Har du brug for hjælp? Kontakt os på support@shoporama.dk.
Ähnliche Artikel
Ansicht der erstellten Webhooks in Ihrem Shop
Anleitung, um zu sehen, welche Webhooks in Ihrem Shoporama-Webshop erstellt wurden.
REST-API
Vollständige Anleitung zur REST-API von Shoporama: Authentifizierung, alle Endpunkte, Beispiele und Swagger-Dokumentation.
Einen API-Schlüssel finden oder erstellen
Anleitung zum Finden Ihres API-Schlüssels in Shoporama, der für Integrationen mit z.B. Shipmondo verwendet wird.
Facebook-Umsätze API
Anleitung zur Einrichtung der Facebook Conversions API in Ihrem Shoporama-Onlineshop über die integrierte Tracking-Engine.