WordPress API-First utvikling: Koble WordPress til alt i 2026
NB

WordPress API-First utvikling: Koble WordPress til alt i 2026

Sist verifisert: 24. august 2026
16 min lesetid
Guide
Full-stack-utvikler

I 2026 er WordPress en API-motor. En API-first-tilnærming betyr at kjernen er datastruktur og tilgjengelighet, ikke det visuelle temaet. Origin vi bygger mot er WordPress 7.1PHP 8.4. WordPress 7.0 (Armstrong) kom 20. mai 2026. Frontend, når den finnes, er Astro 7, ikke et PHP-tema som maler HTML på hver forespørsel.

For norske virksomheter er WordPress ofte navet som mater nettsted, mobilapp og interne verktøy. Det som skiller et API-first-oppsett fra et headless-tema, er kontrakten: hvilke felt origin eier, hvilke felt ERP-et eier, og hvilke hendelser som er skrivestier. Køer, idempotens og avstemming mot Tripletex, PowerOffice Go eller Visma ligger i WooCommerce ERP-integrasjonsarkitektur 2026. Her er kuttet av API-er: kart over URL-er, cutover av webhooks, og vindu med dobbel skriving.

Gutenberg leverer blokktrær som JSON. Det er lesekontrakten for innhold. Det er ikke skrivestien for en ordre. En redaktør i Oslo som publiserer en kampanjeside, treffer /wp/v2/ eller WPGraphQL. En lagerhendelse fra PowerOffice treffer /wc-erp/v1/stock. En innbetaling fra Vipps treffer notify-ruten. Tre ulike nøkler, tre ulike TTL-er, tre ulike feilbaner. PHP 8.4 på origin tåler det hvis permission_callback faktisk sjekker nøkkelen, og hvis wp-cron ikke er den som dytter ordrer til Tripletex.

Frontend-topologi, cache-tags og Vipps Login mot origin er dekket i headless WordPress-arkitektur 2026. Kommersielt omfang for frikoblet flate står i tjenesten for headless WordPress.


#1. Hva er API-First WordPress?

Tradisjonell utvikling starter med et Figma-brett og bygger et tema rundt det. API-first starter med innholdstyper og endepunkter. Det endrer eierskap, skalerbarhet og hvem som kan jobbe parallelt.

#Datakontrakten

Du definerer nøyaktig hvordan innlegg, produkter og brukere struktureres og eksponeres. Kontrakten er det resten av stakken bygger på. I et norsk prosjekt erklærer den også felt WordPress ikke skal utstede: SAF-T-XML, EHF-dokument, bilagsnummer fra Tripletex, Peppol-melding-ID. De verdiene kommer tilbake fra ERP-et og lagres som uforanderlig ordremeta.

Eksempel på datakontrakt:

{
  "endpoint": "/wp-json/v1/products",
  "method": "GET",
  "response": {
    "id": "integer",
    "name": "string (max: 200)",
    "sku": "string",
    "price": "float (2 decimals)",
    "currency": "string (ISO 4217, NOK i kassen)",
    "categories": "array<string>",
    "availability": "enum: in_stock|out_of_stock|preorder",
    "metadata": {
      "seo_title": "string (max: 60)",
      "seo_description": "string (max: 160)"
    }
  }
}

Pris og valuta i denne GET-en er visningsfelt. MVA-kode, kontostreng og bilagsnummer hører hjemme i ERP-svaret, ikke i produkt-JSON som Astro cacher på kanten.

#Uavhengige team mot samme API

Når API-et er klart, kan frontend, app og SEO jobbe mot samme kilde. Paralleliseringen kutter kalendertid fordi temaet ikke lenger er flaskehalsen.

Team som leser samme kontrakt:

  • Nett-frontend: Astro 7 eller Next.js 16 mot offentlige GET-er
  • Mobilapp: Flutter eller React Native mot de samme leserutene
  • Marked: uttrekk til analyse og personalisering
  • SEO: schema og sitemaps generert fra API-et, ikke fra et PHP-tema
  • Integrasjoner: CRM, ERP og betalingsgatewayer på egne skrivestier

Et team som «bare trenger en produktliste» får en leserute. Et team som skal justere lager får en smal POST, ikke nøkkelen til hele /wc/v3/products.

API-first er også en redaksjonell avtale. Felt som seo_title og excerpt eies av innhold. Felt som regular_price eies av ERP eller av en priskilde du har pekt på. Hvis begge skriver, vinner den siste PUT, og du merker det først når kampanjeprisen i Tripletex ikke matcher kassen. Kontrakten sier hvem som har skrivetilgang på hvert felt. Uten den avtalen er «sanntidssynk» bare to systemer som overskriver hverandre.


#2. Tilpassede REST API-endepunkter

Standard REST i WordPress dekker lesing av innlegg og sider. Bedriftsprosjekter trenger egen logikk som kutter spørringer og holder sensitive felt unna. WooCommerce REST API/wp-json/wc/v3/ dekker produkter, ordrer og kuponger. Lager som kommer fra Tripletex eller PowerOffice skal ikke gå via en generell PUT mot produktet: ett felt for mye (pris, tittel, avgiftsklasse) overskrives i stillhet.

#Isolert forretningslogikk

I stedet for ti kall for å hente kjøpshistorikk, bygger vi ett endepunkt wp-json/v1/user-commerce som returnerer én JSON-pakke.

Eget endepunkt:

add_action('rest_api_init', function () {
    register_rest_route('v1', '/user-commerce/(?P<id>\\d+)', [
        'methods'             => 'GET',
        'callback'            => 'get_user_commerce_data',
        'permission_callback' => 'verify_api_token',
        'args'                => [
            'id' => [
                'validate_callback' => static function ($param) {
                    return is_numeric($param);
                },
            ],
        ],
    ]);
});

function get_user_commerce_data($request) {
    $user_id = (int) $request['id'];

    return [
        'orders'          => get_user_orders($user_id),
        'subscriptions'   => get_user_subscriptions($user_id),
        'loyalty_points'  => get_user_loyalty($user_id),
        'recommendations' => get_ai_recommendations($user_id),
    ];
}

Listen over ordrer i appen bærer ikke EHF-PDF eller SAF-T-utsnitt i hver rad. De dokumentene hentes fra ERP-et når brukeren åpner detaljen.

#Egne REST-ruter for lager

ERP-et er sannhetskilde for beholdning. WooCommerce tar imot deltaet. En smal rute (sku, qty, warehouse, event_id) med permission_callback bundet til en Woo-nøkkel med skrivetilgang, ikke til en menneskelig administrator, hindrer at et redaksjonelt token flytter lager.

add_action('rest_api_init', function () {
    register_rest_route('wc-erp/v1', '/stock', [
        'methods'             => 'POST',
        'callback'            => 'wpp_apply_stock_delta',
        'permission_callback' => 'wpp_verify_wc_write_key',
        'args'                => [
            'sku'      => ['required' => true, 'type' => 'string'],
            'qty'      => ['required' => true, 'type' => 'integer'],
            'event_id' => ['required' => true, 'type' => 'string'],
        ],
    ]);
});

event_id er idempotensnøkkelen. Sender PowerOffice samme justering to ganger, svarer ruten med bufret resultat og trekker ikke på nytt. Kø- og låsemønsteret står i arkitekturguiden for WooCommerce ERP. Poenget her er å ikke åpne /wc/v3/products/<id> for en lagerbot.

Navnerom versjoneres. wc-erp/v1 er en kontrakt. Bryter du felt eller semantikk, blir det v2, og v1 lever til siste klient er borte. Et custom plugin som registrerer /wp-json/myplugin/product-sync uten versjon, tvinger alle konsumenter til å deploye samme dag. _embed på Woo REST er heller ikke en snarvei for lager: den blåser opp svaret med relasjoner du ikke trenger, og den cacher dårlig. Be om SKU og antall. Ikke om hele produktgrafen.

#Application Passwords og WooCommerce-nøkler

WordPress og WooCommerce autentiserer to ulike verdener. Ikke bland dem. Application Passwords lever på WordPress-brukeren, hashes i usermeta og arver kapabiliteter: en redaktør, en mobilapp eller et skript mot /wp-json/wp/v2/. WooCommerce REST-nøkler (ck_ / cs_) lever i woocommerce_api_keys, med read, write eller read_write, og autentiserer /wp-json/wc/v3/. Et ERP for lager bruker en write-nøkkel på katalog. En headless-front bruker read. Aldri en administrators Application Password i app-binæren. Å rotere en Woo-nøkkel logger ikke ut redaksjonen. Å rotere et Application Password kutter ikke lagersynken.

#Validering, rensing og tempo

register_rest_route tvinger streng inndata, slik at ruten tåler injeksjon.

Lag i valideringen:

  1. Datatype: hvert parameter sjekkes mot forventet type
  2. Intervall: tall mot min og maks
  3. Format: strenger mot mønster (SKU, organisasjonsnummer)
  4. Rensing: all inndata renses før lagring
  5. Autorisasjon: hver forespørsel sjekker tokenets omfang

Tempo begrenses på serveren, for eksempel 60 kall i minuttet per nøkkel som utgangspunkt, ikke som markedsdata. Transients holder ikke i et cluster. I produksjon bor telleren i Redis. IP-ene til Vipps ePayment-varsling unntas: et 429 mot Vipps etterlater ordren betalt hos DNB og ventende i WooCommerce.

Øvrig hardening på åpne ruter:

  • CORS: bare kjente frontend-domener
  • TLS: HTTPS på all API-trafikk
  • Aksesslogg: hvert kall, med hashede IP-er hvis loggen forlater EØS
  • Rotasjon: Application Passwords og Woo-nøkler roteres ved avgang, ikke «når noen husker det»

#3. WordPress som et innholdsnettverk (content mesh)

I 2026 er WordPress en node i et nett av tjenester, ikke en silo som mater ett tema.

#Synkronisering mot eksterne systemer

WordPress lagrer innhold og synkroniserer to veier. En oppdatering av en artikkel i Tripletex kan utløse en API-oppdatering i WordPress, som så treffer nettbutikk og app.

Flyt:

[Tripletex / Visma / PowerOffice]
    → webhook → [WordPress REST]
                    → webhook → [Astro 7-frontend]
                    → webhook → [Flutter-app]
                    → webhook → [HubSpot]

Når kuttet er en butikkflytting (Magento, PrestaShop eller gammel Woo mot ny), reduseres API-arbeidet til tre biter. Dette er ikke en Shopify-guide. Det er kartet over kontrakter:

  1. URL-kart: hver REST-rute og hver Vipps-callback fra kilden har et mål. Uten kart varsler ePayment fortsatt den gamle origin, og ordrer blir liggende i «venter på betaling».
  2. Cutover av webhooks: pause utsendere, tøm køen, registrer nye URL-er. En foreldreløs webhook under kuttet dobler ordrer eller mister lager.
  3. Vindu med dobbel skriving: kilde og mål tar imot hendelser i et avgrenset intervall, med samme idempotensnøkkel. Deretter fryses kilden. ERP-et ser ett event_id per operasjon.

#Webhooks og hendelser

Hendelsesbaserte kroker varsler andre systemer når et innlegg publiseres eller en bruker registreres.

add_action('transition_post_status', function ($new, $old, $post) {
    if ($new === 'publish' && $old !== 'publish') {
        $payload = [
            'event'     => 'content_published',
            'post_id'   => $post->ID,
            'title'     => $post->post_title,
            'url'       => get_permalink($post->ID),
            'timestamp' => current_time('c'),
        ];

        $subscribers = get_webhook_subscribers('content_published');
        foreach ($subscribers as $subscriber) {
            wp_remote_post($subscriber['url'], [
                'body'    => wp_json_encode($payload),
                'headers' => ['Content-Type' => 'application/json'],
                'timeout' => 5,
            ]);
        }
    }
}, 10, 3);

wp_remote_post synkront i publish_post er greit for et nyhetsbrev. Det er feil for en ordre. Ordre- og betalingsvarsler går på kø (Redis Streams eller RabbitMQ), med retry og dead letter. Et fem sekunders timeout mot Tripletex i HTTP-tråden til kassen gir tapt konvertering, ikke «sanntid».

#Hendelsesdrevet arkitektur

Punkt-til-punkt-plugin er erstattet av en megler:

  • : Redis Streams eller RabbitMQ
  • Asynkron behandling: origin svarer 202, arbeideren bokfører
  • Retry: eksponentiell backoff med jitter
  • Dead letter: hendelser som feiler gjentatt, synlig kø med eier

wp-cron er ikke den megleren. Den kjører når noen treffer origin. En natt uten trafikk er en natt uten bokføring. WP-CLI-daemon eller en ekte worker er det som tømmer strømmen. Det mønsteret, med HMAC på inngående webhooks, er det arkitekturguiden går i dybden på. Denne artikkelen stopper ved kontrakten: hvilken rute, hvilken nøkkel, hvilken eier av filen.

Vipps ePayment-callback er ikke et markedsføringswebhook. Det er en andre skrivesti på samme ordre. Deler ikke megleren og Vipps idempotensnøkkel, bokfører ERP-et to ganger eller null. Mautic eller HubSpot som lytter på «kunde har betalt», får hendelsen etter den sjekken. Et lead merket som betalende fra retur-URL-en i nettleseren er en klassisk falsk positiv.


#SAF-T Regnskap, EHF over Peppol, Altinn og Vipps på API-grensen

SAF-T er en eksport ERP-et eier. Tripletex, PowerOffice Go og Visma produserer filen. WooCommerce REST skal ikke finne opp SAF-T-XML.

Det punktet snur den vanlige API-first-retningen. I en produktkatalog skriver ERP-et, butikken viser. I norsk bokføring skriver regnskapssystemet bilaget, kjedene det mot forrige, og kan eksportere SAF-T Regnskap når Skatteetaten ber om det. Butikken er kilde til ordren. Den er ikke kilde til bilagsnummeret.

Bokføringsloven krever at bokførte opplysninger kan gjengis i standardisert form. Den formen er SAF-T Regnskap, XML etter Skatteetatens spesifikasjon. Kravet treffer integrasjonen på eierskap, ikke på om du har en «eksport-knapp» i wp-admin. SAF-T bygger på kontospesifikasjon og bilagsserier. En Woo-ordre-ID er ikke et bilag. Hvis koblingen ikke tar med kontostreng og bilagsnummer tilbake til ordren, må sammenstillingen gjøres for hånd den dagen tilsynet kommer.

Et POST mot /wp-json/wc/v3/orders som skriver WC-2026-00412 som fakturanummer, og deretter dumper en hjemmesnekret XML-fil, gjør WordPress til bokføringssystem. Et DELETE av ordren i Woo sletter ikke et bokført bilag i Tripletex. Kreditnota er et nytt dokument i ERP-et, med egen idempotensnøkkel.

Vi så dette hos en B2B-leverandør på Vestlandet som solgte utstyr til kommuner. WooCommerce-pluginen nummererte fakturaer lokalt og sendte PDF på e-post. Tripletex fikk en CSV om natten. Da kommunen krevde EHF, fantes det to serier og ingen Peppol-transaksjon. Løsningen var å la kassen opprette salgsordre i Tripletex, la Tripletex tildele nummer, og la EHF gå ut via Peppol. Woo lagret Tripletex-ID som meta. Ingen XML ble skrevet fra PHP.

EHF (Elektronisk Handelsformat) er fakturaformatet mot norsk offentlig sektor, teknisk Peppol BIS Billing 3.0, sendt over Peppol-nettverket. Mottaker identifiseres på organisasjonsnummer i ELMA, ikke på en e-post i Woo. Oppslaget mot mottakerregisteret hører hjemme i ERP-et eller i en egen dokumenttjeneste. Woo REST skal ikke late som billing.email er en Peppol-adresse. En kommune som står i ELMA og får PDF i innboksen, har ikke mottatt EHF.

Altinn er innrapporteringskanalen. Mva-melding, A-melding og andre skjemaer går fra ERP-et (eller et godkjent regnskapsprogram) til Altinn. WordPress har ingen rolle i den flyten utover å ha levert ordrelinjer med riktig grunnlag: SKU som matcher artikkelen i Tripletex, MVA-kode som matcher norske satser, organisasjonsnummer på B2B-kunden. En hjemmesnekret mva-kalkyle i et eget endepunkt som «retter» 25 prosent på alt som ser norsk ut, lyver i grunnlaget Altinn senere får.

Vipps ePayment (og Vipps Checkout der den fortsatt er kassen) er den andre skrivestien. Gatewayen varsler innbetaling. ERP-et varsler bokføring. Bærer hver sin id, gir et retry fra Vipps pluss et retry fra Tripletex to bilag eller en betalt ordre uten bilag. Idempotensnøkkelen er delt: order_id + vipps_reference (referansen Vipps returnerer på betalingen). Callback fra Vipps og ack fra ERP gjenbruker den. Den som kommer nummer to, er en no-op.

Signaturen på Vipps-webhooken verifiseres på origin, i konstant tid. Nettleserens retur-URL etter betaling maler en kvittering. Den endrer ikke ordrestatus. En headless-front som stoler på query-string fra returen, markerer ordrer som betalt uten trekk. Hemmeligheten blir på origin. Det er samme skillet som i headless-arkitekturguiden: kassen er skrivesti, artikkelen er lesesti.

Under cutover av butikk holdes nøkkelen. URL-kartet flytter Vipps-webhooken til ny origin. Cutover av webhooks tømmer køen. Vinduet med dobbel skriving lar Vipps og ERP snakke mens DNS og sertifikater legger seg. Woo «reserverer» ikke fakturanumre på gammel origin for å fullføre dem på ny. Den reservasjonen bryter serien i Tripletex.

VOEC (Vat On E-Commerce) treffer bare hvis varer sendes inn i Norge fra utlandet. Skatteetatens ordning for utenlandske tilbydere under beløpsgrensen for forenklet registrering. En norsk AS med lager på Østlandet og Tripletex som bokføring er ikke VOEC fordi fronten er headless. En utenlandsk selger med Woo i EU og Bring-levering til norske forbrukere er det. Arkitekturen må vite om ordren er VOEC-pliktig før kassen viser totalsum, ikke etter at Vipps har trukket. Hold regelen på origin eller i et prisingstjenestelag. Frontend viser det laget returnerer.

Fiken dukker opp i mindre butikker. API-et er tynnere enn Tripletex, men eierskapet er det samme: Fiken bokfører, Woo sender ordren. Ikke lag en «SAF-T-eksport» som cron-jobb i WordPress fordi Fiken-planen mangler knappen du ønsket. Bytt regnskapsprogram, eller ta eksporten der den hører hjemme. Visma.net og Visma eAccounting følger samme mønster: dokument og mva-melding lever i Visma, ikke i wp_posts.

Personopplysninger i ordrer (navn, adresse, e-post, telefon) er behandling under personopplysningsloven og GDPR. En Woo-nøkkel med read_write mot /wc/v3/orders er nøkkel til det settet. Den ligger ikke i et offentlig repo, ikke i wp_options i klartekst, og ikke i en Astro-øy som kjører i nettleseren. Rotasjon ved avgang er en hendelse, ikke en årlig opprydding.

Køtabellen, PHP 8.4-konsumenten og avstemmingsløkken ligger i arkitekturguiden. Kommersielt omfang står i WooCommerce ERP-integrasjon. API-first-kontrakten i Norge får plass i én setning: ERP-et skriver SAF-T og EHF, Woo REST lagrer identifikatoren, Vipps og ERP signerer samme event_id.


#4. Hastighet på API-laget

Den gamle klagen mot WordPress REST var farten. I 2026 løses det med flerlags cache, og med å la være å cache skrivestier.

#Redis og objektcache

API-svar lagres i minnet for å unngå dyre SQL-runder. Hvert endepunkt har egen strategi ut fra hvor fort data endres. Betalingsvarsling og lagerjustering caches ikke: et gammelt 200 med allerede verifisert Vipps-signatur skal ikke spilles av på nytt.

Cache per type rute:

EndepunktTTL i RedisUgyldiggjøring
/posts5 minutterved publisering eller oppdatering
/products2 minutterved pris- eller lagerendring
/meny1 timeved menypublisering
/settings24 timerved options-endring
/user-data0 (ingen cache)sanntidsdata
/wc-erp/v1/stock, Vipps-notify0bare idempotens på event_id

Et cache-treff på offentlig GET fra Redis på origin ligger i millisekundklassen. Tallet 20 ms hører hjemme på kanten: JSON levert fra et Cloudflare-PoP nær leseren, ikke som et løfte om PHP-tid.

#Kant-cache

Cloudflare (eller tilsvarende) cacher JSON på kanten. En produktliste serveres fra PoP, ikke fra PHP. Autentiserte ruter, levende lager og Vipps-callback går forbi kanten til origin.

function add_api_cache_headers($response) {
    if (is_wp_error($response)) {
        return $response;
    }

    $response->header('Cache-Control', 'public, max-age=300, stale-while-revalidate=60');
    $response->header('CDN-Cache-Control', 'max-age=600');
    $response->header('Surrogate-Control', 'max-age=3600');

    return $response;
}
add_filter('rest_post_dispatch', 'add_api_cache_headers');

Filteret skal ikke treffe wc-erp/v1 eller Vipps-notify. Cache-Control: public på en betalingscallback er en hendelse, ikke en optimalisering. Cache-tags og HTML på kanten for den frikoblede flaten er beskrevet i headless WordPress-arkitektur 2026.

#GraphQL som lesesti

For sammensatte visninger kutter WPGraphQL overhenting: én spørring i stedet for tre REST-kall.

query ProductPage {
  product(id: "123") {
    title
    price
    description
    categories {
      name
      slug
    }
    relatedProducts(first: 3) {
      title
      thumbnail
    }
  }
}

GraphQL erstatter ikke lager-POST eller Vipps-webhook. De mutasjonene blir på smal REST. Persisted queries og skjema som kontrakt hører hjemme i headless-guiden. Her er skillet nok: lesing kan være GraphQL, bokføring og trekk er REST med idempotens.

Lister pagineres med kursor, ikke med dype page=47-offset, når katalogen er stor. Offset hopper over rader under last og gir duplikater når lagerbotten skriver samtidig. Komprimering (gzip eller brotli) kuttes på kanten. Bilder i API-svar er URL-er med størrelse og format, ikke base64.

Mobilappen følger samme skillet. Den bærer et Application Password eller et OAuth-token med lesekapabilitet. Checkout går mot origin. Offentlig HTML forblir cachebar. Sesjon bor i HttpOnly-cookie på frontend-domenet, ikke i wp-login.php mot internett. Push-varsler for «ordre betalt» utløses etter at Vipps-signaturen er sjekket, ikke etter at retur-URL-en lastet.


#5. Hvorfor wppoland er din partner for API-First

Hos WPPoland bygger vi rørleggerarbeidet bak den digitale flaten. Prising er individuell og kommer etter omfang.

  1. Utvikling av endepunkter: API-er tilpasset mobilapp eller webløsning, med dokumentasjon og tester. Smale lagerruter, ikke åpne PUT mot hele produktet.

  2. Systemintegrasjon: WordPress koblet til ERP (Tripletex, PowerOffice Go, Visma, SAP der det faktisk er backend), CRM (HubSpot, Salesforce) og egne databaser. Hver integrasjon bygges med HMAC, idempotens og den skrivetningen SAF-T og EHF krever. Kommersielt omfang står i WooCommerce ERP-integrasjon.

  3. Headless-rådgivning: valg av arkitektur og overgang. Frontend, når den skal frikobles, er Astro 7 i headless-tjenesten. Topologi og cache er i arkitekturguiden.

  4. Overvåking: oppetid og latenstid på kritiske ruter, inkludert Vipps-callback og ERP-ack.

Skriver REST-kontrakten din fortsatt fakturanumre, ta kontakt via kontaktskjemaet.


#6. Konklusjon: Navet i det moderne nettet

API-first løfter installasjonen ut av et enkelt tema og gjør den til en innholdsplattform. React-portal, iOS-app eller kiosk: WordPress REST er nøkkelen. I Norge utsteder den API-en ikke SAF-T, sender ikke EHF over e-post, og stoler ikke på query-string fra Vipps-returen. WordPress 7.1 på PHP 8.4 tåler kontrakten når rutene er smale og Vipps deler idempotens med Tripletex, PowerOffice eller Visma.

Sitter innholdet fast i et klassisk tema, åpne arkitekturen mot API-first via WPPoland.

Neste steg

Gjør artikkelen om til faktisk implementering

Denne blokken styrker intern lenking og sender leseren videre til de mest relevante tjenestene og innholdet.

Vil du få dette implementert på nettstedet ditt?

Hvis du planlegger headless WordPress, frikoblet frontend eller migrering til Astro, kan jeg bygge arkitektur, API og frontend.

Relevant klynge

Utforsk andre WordPress-tjenester og kunnskapsbase

Styrk virksomheten din med profesjonell teknisk støtte innen kjerneområdene i WordPress-økosystemet.

Artikkel-FAQ

Ofte stilte spørsmål

Praktiske svar for å bruke temaet i faktisk arbeid.

SEO-readyGEO-readyAEO-ready4 Q&A
Er WordPress bedre enn Contentful for API-first?#
I 2026, ja for de fleste redaksjonelle nav. WordPress gir et kjent grensesnitt og headless-fleksibilitet, med et plugin-økosystem Contentful ikke matcher. Kontrakten må tegnes: Gutenberg som JSON, smale skrivestier, og ERP-et som eier av SAF-T og EHF.
Hvordan sikrer jeg mine API-endepunkter?#
Application Passwords, OAuth 2.0 eller JWT med avgrenset omfang. WooCommerce-nøkler (`ck_`/`cs_`) brukes bare mot `/wp-json/wc/v3/` og deles ikke med en redaktørs Application Password. Vipps-hemmeligheten blir på origin.
Kan jeg bruke WordPress som backend for en mobilapp?#
Ja. Mange Flutter- og React Native-apper bruker WordPress som innholds- og brukerhub. Appen bærer ikke en Woo-nøkkel med skrivetilgang. Kassen og lagerjustering går mot origin.
Skal WooCommerce REST lage SAF-T-filen?#
Nei. SAF-T Regnskap er en eksport Tripletex, PowerOffice eller Visma eier. Et POST mot `/wp-json/wc/v3/orders` som skriver XML til disk gjør butikken til bokføringssystem. EHF går over Peppol, ikke som vedlegg fra Woo.

Trenger du FAQ tilpasset bransje og marked? Vi lager en versjon som støtter dine forretningsmål.

Ta kontakt

Relaterte artikler