Spring videre til hovedindholdet

FAQ om prduct API og integration til prduct.com

Generelle spørgsmål og information om API'en

Andreas Stensig avatar
Skrevet af Andreas Stensig
Opdateret i denne uge

Generelt

Prduct API er en REST API, og dataformatet er JSON.

Hvor starter jeg?

API-dokumentationen findes i Swagger. Den viser:

  • Alle tilgængelige endpoints

  • Required parameters

  • Request og response formats

  • Validation rules

  • Authentication requirements

Dokumentationen skal bruges som den tekniske reference, mens denne FAQ forklarer den overordnede struktur og logik.

Base URL og versionering

API’en bruger versionerede endpoints.

I sandbox testes typisk med:

/api/v1/...

Alle endpoints i dokumentationen er relative til denne base.

Authentication

De fleste endpoints kræver authentication med en Bearer token.

Du skal medtage header:

Authorization: Bearer <token>

Hvis token mangler eller er ugyldig, får du en 401 error.

Implementér sikker token-håndtering og eventuelt refresh-logik. Læs mere

Hvordan er API struktureret?

API’en er organiseret omkring flere hovedkoncepter:

  • Attributes – genanvendelige metadatafelter

  • Industries og Categories – klassificering og taksonomi

  • Data Models – templates som bestemmer hvordan documents er struktureret

  • Documents – de centrale forretningsobjekter

  • EUDR endpoints – specialiserede API’er til EUDR-compliance

I praksis arbejder integrationer typisk med at create, update og sync documents, som refererer til attributter og andre entities.

Pagination

List endpoints bruger cursor-based pagination.

Responsen indeholder typisk:

  • data – selve records

  • links – pagination links

  • meta – metadata

For at hente flere resultater:

  • Læs links.next

  • Brug det som cursor i næste request

Antallet af items per page styrer du med per_page (typisk 1–1000).

Implementér altid cursor pagination — API’en bruger ikke page numbers.

Identifiers: external_id

De fleste objekter understøtter external_id.

Dette er din egen system identifier (f.eks. fra ERP, PIM, CRM osv.).

Best practice:

  • Brug external_id som primær reference key

  • Hold den konsistent på tværs af synkroniseringer

  • Brug den frem for interne Prduct IDs

Når du linker leverandører, kunder, produkter osv., bør du bruge external_id.

Dette gør integrationer mere robuste og vedligeholdelsesvenlige.

Bulk operations

API’en understøtter bulk create af documents.

Bulk endpoints er nyttige når du:

  • Importerer store datamængder

  • Kører scheduled sync jobs

  • Onboarder nye kunder

Ved brug af bulk:

  • Håndtér partielle failures

  • Log validation errors

  • Forvent ikke at alle items lykkes

Hver item valideres separat.

EUDR endpoints

EUDR endpoints hjælper med compliance-relaterede workflows og data.

De bruges til:

  • Purchase documents

  • Sale documents

  • Batches og sub-batches

  • Locations

  • Due diligence statements

Kendetegn:

  • Supporter partial updates

  • Tillader linking med external_id

  • Supporter nested batch structures

  • Bevarer eksisterende data hvis ikke overskrevet

Brug EUDR endpoints når du bygger eller vedligeholder EUDR-dokumentation.

Anbefalet integration flow

Et typisk integrationsflow ser sådan ud:

  1. Sæt authentication op og test access

  2. Hent reference data (industries, categories, attributes)

  3. Verify eller create required attributes

  4. Configure data models hvis nødvendigt

  5. Implementér document create og update med external_id

  6. Implementér EUDR workflows hvis relevante

  7. Implementér pagination for alle list-kald

  8. Tilføj logging, retries og error handling

Denne rækkefølge reducerer validation errors og rework.

Retningslinjer for en stabil integration

For langsigtet stabilitet bør du:

  • Altid bruge external_id som primær update key

  • Implementér cursor pagination

  • Håndtér translatable felter korrekt

  • Validate payloads før sending

  • Log alle failed requests

  • Behandl 422 errors som data-quality issues

  • Brug bulk for store datasæt

  • Test i sandbox før production

Typiske spørgsmål og svar

Hvordan paginerer jeg results?
Brug værdien fra links.next som cursor og styr side size med per_page.

Hvorfor får jeg “is translatable” fejl?
Feltet skal sendes inde i translations[].attributes, ikke i top-level attributes.

Hvordan linker jeg suppliers, customers eller products?
Brug deres external_id når du refererer til dem.

Hvilken identifier skal jeg bruge?
Brug external_id som din primære identifier og hold den stabil.

Hvornår skal jeg bruge bulk endpoints?
Ved store imports, onboarding og schedulere sync jobs.

Typiske errors og deres årsager

Error

Forklaring

Løsning

403 Forbidden

Manglende permissions/token

Tjek API keys og bruger-permissions

422 Name is required to create locations

locations bruges uden eksisterende location document

Fjern locations med mindre du importerer med GPS

405 Method Not Allowed (PUT /documents)

PUT uden document ID

Brug URL med document_id

PUT error on translations

PUT understøtter ikke translation object

Brug translation endpoint

Fejlen The type field is required…

Denne fejl kan komme af:

  • Type-feltet er ikke korrekt udfyldt

  • Forkert endpoint bruges

  • Du forsøger at sende HTML/text uden JSON Bearer token
    → Tilføj -ContentType 'application/json' til body

Fejlen “hs_code is translatable”

Nogle felter i prduct er defineret som translatable fields og kan ikke sendes direkte i attributes.

Hvis du fx prøver:

},
"attributes": {
"hs_code": "XXXXXX"
},

Så får du:

"message": "hs_code is translatable"

Det skyldes systemstrukturen. HS-koden er en liste af objekter under translations.

Din request skal derfor se sådan ud:

"translations": [
{
"attributes": {
"hs_code": [
{"value": "XXXXXX"}
]
}
}
]

Support og spørgsmål

Hvis du støder på problemer eller har spørgsmål, kan du:

Besvarede dette dit spørgsmål?