Dansk hosting fra Aalborg
Servere i Europa
24/7/365 dansk support
support@hostious.io
Automatisering 10 min. læsning Opdateret 10. november 2026

WooCommerce API: sådan åbner du butikken for lager, regnskab og automatisering – nøgler, endpoints og fejlkoder

WooCommerce API forklaret: opret en API-nøgle på fem minutter, se de vigtigste endpoints, læs fejlkoderne – og regn på, hvor mange kald din integration koster.

WooCommerce API: sådan åbner du butikken for lager, regnskab og automatisering – nøgler, endpoints og fejlkoder

Kort svar: WooCommerce API er den indbyggede REST-grænseflade, som lader andre systemer læse og ændre produkter, ordrer, kunder og rabatkoder i din webshop uden at logge ind i WordPress. Du opretter en API-nøgle under WooCommerce → Indstillinger → Avanceret → REST API, vælger læse- eller skriveadgang, og integrationen kalder adresser som /wp-json/wc/v3/orders over HTTPS. API’et er gratis og følger med WooCommerce – det, der koster, er den integration, der bruger det, og den server, der skal svare på kaldene.

Kontrolgrundlag: Beskrivelsen bygger på WooCommerce’ REST API version 3 (wc/v3) som den fungerer i en standardinstallation: nøgletyper, rettighedsniveauer, autentificering, endpoints, sidestørrelse og batch-grænsen på 100 objekter pr. kald. Regneeksemplet er udregnet ud fra de grænser. Priser og egenskaber på Hostious’ sider er aflæst 10. november 2026.

WooCommerce API er det, lagersystemet, regnskabsprogrammet og automatiseringsplatformen taler med, når de skal have fat i butikkens data. Ordet dukker op, når en leverandør beder om “en API-nøgle med skriveadgang”, når et plugin til bogføring skal sættes op, eller når du selv vil have ordrerne over i et regneark hver nat.

Dette opslag forklarer, hvad grænsefladen er, hvornår den er det rigtige værktøj, hvordan du opretter en nøgle sikkert, hvilke adresser der findes, og hvorfor kaldene fejler. Det handler om WooCommerce’ egen del af API’et. Den generelle del af WordPress – sider, indlæg og brugere – er dækket i guiden WordPress REST API guide.

Hvad WooCommerce API er – og hvad det ikke er

WordPress har et REST API: en samling adresser under /wp-json/, der svarer med data i JSON-format. WooCommerce lægger sit eget navnerum oven på med adressen /wp-json/wc/v3/. Alt, du kan gøre i butikkens kontrolpanel, kan en integration i princippet gøre her: oprette et produkt, ændre en pris, sætte en ordre til Gennemført eller oprette en rabatkode.

Tre begreber bliver tit blandet sammen. De løser forskellige opgaver:

BegrebRetningBruges tilKræver nøgle?
WooCommerce REST API (wc/v3)Systemet udenfor spørger butikkenLager, regnskab, prisopdatering, rapporterJa – API-nøgle
WebhooksButikken sender besked ud, når noget sker“Ny ordre” til fragt- eller mailsystemNej – URL og signatur
Store API (wc/store/v1)Kundens browser taler med butikkenKurv og kasse i blokbaseret checkoutNej – kundens session

Webhooks er altså ikke et alternativ til API’et, men et supplement: API’et henter og skriver, webhooken siger til, når der er noget at hente. Hvordan de bygges og signeres, står i artiklen webhooks forklaret. Store API’et er det, kurv og kasse selv bruger, og du skal normalt ikke røre det.

Hvornår giver API’et mening?

De fleste butikker møder API’et gennem et plugin eller en tjeneste, der bruger det i baggrunden. Du skal selv forholde dig til det, når du vælger integrationer, giver adgang og leder efter fejl. Typiske opgaver:

OpgaveSådan bruges API’etLæs mere
BogføringOrdrer og refusioner hentes og bogføres som fakturaer eller kassesalgWooCommerce e-conomic integration og WooCommerce Dinero integration
Lager og ERPLagertal skrives ind på produkter og varianter, ordrer hentes til plukRegnskabs- og lagersystemer med egen integration, fx IEX til WooCommerce
Priser i mængdeHundredvis af priser ændres i ét batch-kaldopdater priser bulk WooCommerce
Leverandørens sortimentProdukter oprettes og synkroniseres fra et feedleverandør feed WooCommerce
Automatisering uden koden8n, Make eller Zapier læser ordrer og skriver til andre systemern8n eller Zapier
RapporterSalg pr. dag, bedst sælgende varer og lagerstatus hentes til et dashboardEndpointet /reports

Er opgaven en enkelt hændelse – “send en sms, når en ordre betales” – er en webhook ofte nok. Skal systemet også hente eller rette data, skal det have API-adgang.

Sådan opretter du en API-nøgle

En nøgle hører til en WordPress-bruger og får højst de rettigheder, brugeren har. Opret derfor en separat bruger til integrationer frem for at bruge din egen administratorkonto – så kan du slå adgangen fra uden at låse dig selv ude.

Fem trin til en API-nøgle i WooCommerce: gå til WooCommerce og Indstillinger, vælg fanen Avanceret og REST API, tilføj en nøgle med beskrivelse, bruger og rettighed, kopiér consumer key og consumer secret, og test adgangen med et GET-kald
Nøglen vises kun én gang. Gem den et sikkert sted, før du forlader siden.
  1. Gå til WooCommerce → Indstillinger → Avanceret → REST API, og klik på Tilføj nøgle.
  2. Skriv en beskrivelse, der siger, hvad nøglen bruges til, fx “Regnskab – læse og skrive”. Beskrivelsen er det, du kigger efter, når du skal lukke en adgang igen.
  3. Vælg brugeren og rettigheden: Læs (hente data), Skriv (oprette og ændre) eller Læs/skriv. Vælg det mindste, opgaven kan klare sig med.
  4. Klik på Opret API-nøgle. WooCommerce viser nu en consumer key, der starter med ck_, og en consumer secret, der starter med cs_. Secret vises aldrig igen.
  5. Test nøglen med et kald, før du sender den videre til integrationen.

Et testkald kan sendes fra en terminal med curl. Her hentes de første fem ordrer:

curl -u ck_dinnoegle:cs_dinhemmelighed \
  "https://dinbutik.dk/wp-json/wc/v3/orders?per_page=5&status=processing"

Svarer serveren med en liste i JSON, virker nøglen. Svarer den med en fejlkode, står betydningen i afsnittet om fejl længere nede.

Vigtigt: consumer secret er en adgangskode til din butik. Send den aldrig i en almindelig mail eller chat, og læg den ikke i temaets eller pluginets kode. Hvor nøgler må opbevares, og hvor tit de skal skiftes, står i artiklen API nøgler sikkerhed.

De vigtigste adresser i wc/v3

Alle adresser ligger under /wp-json/wc/v3/. De følger samme mønster: en liste på samlingen, et enkelt objekt på /samling/id, og handlingerne læse (GET), oprette (POST), ændre (PUT) og slette (DELETE).

AdresseIndholdTypisk brug
/productsProdukter med pris, lager, kategorier og billederSynkronisering af sortiment og lager
/products/{id}/variationsVarianter af et variabelt produktLager pr. størrelse og farve
/products/categories, /products/attributesKategorier og egenskaberOpsætning af struktur fra ERP
/ordersOrdrer med linjer, adresser, fragt og statusBogføring, pluk og forsendelse
/orders/{id}/notes og /orders/{id}/refundsOrdrenoter og refusionerSporing og kreditnotaer
/customersKundekonti og adresserCRM og nyhedsbrev
/couponsRabatkoderKampagner oprettet automatisk
/reports/sales, /reports/top_sellersSalgstal pr. periodeDashboard og ledelsesrapport
/system_statusVersioner, PHP, database og aktive pluginsFejlsøgning og overvågning
/webhooksButikkens webhooksOprettelse og kontrol af abonnementer på hændelser

To detaljer sparer mange kald. Parametret per_page giver op til 100 objekter pr. side, og page bladrer videre; svaret indeholder headerne X-WP-Total og X-WP-TotalPages, så integrationen ved, hvor meget der er. Og hver samling har et /batch-endpoint, hvor ét kald kan oprette, ændre og slette op til 100 objekter på én gang.

Regneeksempel: 2.000 produkter – så mange kald tager det

Forskellen mellem en integration, der er skrevet med omtanke, og en, der ikke er, kan måles i antal kald. Tag en butik med 2.000 produkter, der skal have nye priser:

Regneeksempel på antal API-kald for 2.000 produkter: ét PUT-kald pr. produkt giver 2.000 kald, at hente listen med per_page=100 giver 20 kald, at opdatere med batch på 100 pr. kald giver 20 kald, hente og opdatere i batch giver 40 kald i alt, og polling hvert minut i et døgn uden ændringer giver 1.440 kald, hvor webhooks giver 0 – batch og webhooks sparer 98 procent af kaldene
Samme resultat, 2.000 eller 40 kald. Det er integrationens design, der afgør belastningen – ikke butikkens størrelse.
FremgangsmådeAntal kaldKommentar
Ét PUT-kald pr. produkt2.000Hvert kald indlæser WordPress og WooCommerce fra bunden
Hent listen med per_page=10020Læsning er let for serveren
Opdatér med /products/batch, 100 pr. kald20Skrivning i større bidder
Hent og opdatér i batch, i alt4098 % færre kald end ét ad gangen
Spørg efter nye ordrer hvert minut i et døgn1.440Også når der ikke er sket noget
Webhook ved ny ordre0Butikken siger selv til

Hvert kald til API’et er en fuld indlæsning af WordPress med database og plugins – det kan ikke leveres fra sidecache som en produktside. En integration, der spørger hvert minut, belaster derfor butikken mere end de kunder, der handler i den. Vælg batch til mængder, og webhooks til hændelser.

Når kaldet fejler: svarkoder og årsager

API’et svarer altid med en HTTP-statuskode og i de fleste tilfælde en fejlkode i JSON, fx woocommerce_rest_cannot_view. Sådan læser du dem:

SvarFejlkodeÅrsagLøsning
401woocommerce_rest_cannot_view / authentication_errorNøglen mangler, er forkert eller sendes over httpBrug HTTPS, og tjek key og secret uden mellemrum
401woocommerce_rest_cannot_create / cannot_editNøglen har kun læseadgang, eller brugeren mangler rettighederOpret en ny nøgle med Læs/skriv til en bruger med adgang til WooCommerce
403rest_forbiddenEn sikkerhedsplugin eller firewall blokerer kaldetTillad integrationens IP-adresse eller stien /wp-json/wc/ i pluginet
404rest_no_routeAdressen findes ikke – ofte fordi permalinks står på “Simpel”Vælg en anden permalinkstruktur, eller kald via ?rest_route=/wc/v3/…
400rest_invalid_paramEt felt har forkert format, fx pris som tal i stedet for tekstLæs fejlens data.params, som peger på feltet
429 eller 503–Serveren eller en firewall begrænser antallet af kaldSæt pauser ind, brug batch, og flyt hændelser til webhooks
500 eller 504–Et plugin fejler, eller kaldet tager for lang tidSe fejlloggen, sænk per_page, og test på en kopi af butikken

Statuskoderne betyder det samme her som på en almindelig side. Hvad der ligger bag en 404 not found, en 400 bad request og en 503 service unavailable i WordPress generelt, står i de respektive artikler – i API’et er det næsten altid nøglen, permalinks eller en firewall, der er årsagen.

Serveren afgør, hvor mange integrationer butikken kan bære

En webshop med regnskab, lager, fragt og en automatiseringsplatform koblet på får nemt flere API-kald i døgnet end besøg fra kunder. Hvert kald rammer PHP og databasen direkte. Det stiller tre krav til hostingen:

  • Egen database: ordrer og produkter skal ikke dele database med andre kunder, når lagersystemet skriver 500 lagertal på et minut.
  • Object cache: Redis holder de opslag, WooCommerce gentager i hvert kald, i hukommelsen, så databasen slipper.
  • Et testmiljø: en ny integration skal køre mod en kopi af butikken, før den får skriveadgang til den rigtige. Fejl i et PUT-kald mod /products kan ændre 100 priser på én gang.

Hos Hostious får hver webshop egen database og Redis object cache på alle planer med WooCommerce hosting – fra 59 kr./md. ekskl. moms med Woo Mini. Fra Woo StartUp til 239 kr./md. følger staging til test og WooCommerce serviceaftale med, hvor vi opdaterer udvidelser og tester checkout bagefter. Har butikken brug for egen software ved siden af, fx en lagerserver eller en selvhostet n8n, dimensionerer vi en VPS hosting efter opgaven.

Tjekliste, før integrationen får adgang

  • Én nøgle pr. integration, med en beskrivelse, der siger, hvem der bruger den.
  • Mindste rettighed: læseadgang til rapporter og dashboards, skriveadgang kun hvor der skal skrives.
  • En særskilt WordPress-bruger til integrationer, så adgangen kan lukkes uden at røre dine egne logins.
  • HTTPS på hele butikken – API’et afviser Basic-autentificering over http.
  • Testet på staging med de samme kald, som skal køre i drift.
  • Aftalt rytme: batch om natten til mængder, webhooks til hændelser, ingen polling hvert minut.
  • Kolonnen Sidste adgang i nøglelisten tjekkes hvert kvartal – nøgler, der ikke er brugt, slettes.

Har du selv bygget butikken, kan listen gennemgås på en halv time. Lader du Hostious bygge den, sætter vi integrationerne til betaling og fragt op fra start – se WooCommerce webshop.

Læs også

Ofte stillede spørgsmål om WooCommerce API

Er WooCommerce API gratis?

Ja. REST API’et er en del af WooCommerce-pluginet og koster ikke ekstra. Udgiften ligger i den integration eller tjeneste, der bruger det, og i den server, der skal svare på kaldene.

Hvad er forskellen på WooCommerce API og WordPress REST API?

WordPress REST API dækker sider, indlæg, medier og brugere under /wp-json/wp/v2/. WooCommerce udvider det med /wp-json/wc/v3/ til produkter, ordrer, kunder og rabatkoder og bruger sine egne API-nøgler i stedet for applikationskodeord.

Kan jeg bruge API’et uden at kunne programmere?

Ja, hvis du bruger et plugin eller en automatiseringsplatform, der taler med API’et for dig. Du skal stadig kunne oprette en nøgle, vælge rettighed og læse en fejlkode, når noget går galt.

Hvorfor får jeg 401, selvom nøglen er rigtig?

De tre almindelige årsager er, at kaldet går over http i stedet for https, at nøglen kun har læseadgang til et kald, der skriver, eller at den bruger, nøglen hører til, ikke har rettigheder til WooCommerce. Opret en ny nøgle med Læs/skriv til en bruger med butiksadgang, og test igen over HTTPS.

Hvordan lukker jeg en integrations adgang?

Under WooCommerce → Indstillinger → Avanceret → REST API kan du slette nøglen eller fjerne den rettighed, den ikke længere skal have. Integrationen får 401 fra næste kald. Derfor skal hver integration have sin egen nøgle.

Hvilken hosting passer til en webshop med mange API-integrationer?

Vælg hosting med egen database til butikken, Redis object cache og et staging-miljø, så integrationer kan testes før drift. Hostious leverer det på alle WooCommerce-planer fra 59 kr./md. ekskl. moms og tager fra Woo StartUp også opdateringer og test af checkout gennem serviceaftalen.

Skrevet af Marc, stifter af Hostious

Jeg hedder Marc og har stiftet Hostious. Vi hoster WordPress-hjemmesider og WooCommerce-webshops for danske virksomheder – drevet fra Aalborg-området med servere i Europa – og jeg skriver guiderne her ud fra det, vi ser i driften hver dag.

Udgivet 10. november 2026Opdateret 10. november 2026