POSTOpret en ordre
Opretter en ordre og starter forberedelse til køen. Registrerer 4 øre ekskl. moms.
Endpoint
https://www.tcgm.dk/api/v1/webshop/ordersAutorisation
Bearer-nøgle medwebshop:orders:create
Headers
Authorizationstring · påkrævet- Bearer <api-nøgle>. Nøglen oprettes af en owner/admin på organisationens API-side.
Gemmes kun i denne sides hukommelse.
Idempotency-Keystring · påkrævet- 1–200 synlige ASCII-tegn uden mellemrum. Genbrug ved genforsøg; ny nøgle til en ny handling. Mindst 1 tegn. Højst 200 tegn. Mønster: ^[\x21-\x7e]+$
Genbrug nøglen ved genforsøg. “Ny handling” opretter en ny nøgle.
Content-Typestring · påkrævet- JSON-body, højst 256 KiB. Fast værdi: "application/json".
Request-body
application/json · påkrævet
Ukendte felter afvises.
organizationstring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
webshopstring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
dataobject · påkrævet- Ukendte felter afvises.
data.displayNamestring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 500 tegn.
data.customerNamestring · valgfri- Trimmes før validering. Mindst 1 tegn. Højst 500 tegn.
data.orderNumberstring | null · valgfri- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
data.linesarray · påkrævet- externalId skal være unik blandt linjerne. Tom liste accepteres. Højst 250 elementer.
data.lines[].externalIdstring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
data.lines[].productIdstring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
data.lines[].variantIdstring | null · valgfri- Trimmes før validering. Standard: null. Mindst 1 tegn. Højst 200 tegn.
data.lines[].itemNamestring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 500 tegn.
data.lines[].quantitynumber · påkrævet- Endeligt tal med højst to decimaler. Minimum: 0. Maksimum: 90071992547409.9. Trin: 0.01.
data.externalIdstring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
data.draftboolean · valgfri- Standard: false.
data.announceTwitchboolean · valgfri- Standard: false.
data.customerEmailstring · valgfri- Trimmes. Bruges til Twitch-match; rå e-mail gemmes ikke i ordre eller workflow. Højst 320 tegn. Format: email.
data.shopifyOrderIdstring · valgfri- Præcist Shopify-ordre-ID, hvis ordren skal forbindes med senere Shopify-leverancer. Mønster: ^\d+$
Underfelter kræves kun, når det overordnede objekt sendes.
Response · 201
Ordreobjektet direkte, med eventId; ikke pakket ind i order.
Cache-Control: no-store
{
id: string;
externalId: string;
providerOrderId: string;
orderNumber: string | null;
displayName: string;
creatorTag: string | null;
syncedBy: string | null;
createdAt: string;
receivedAt: string;
updatedAt: string;
completedAt: string | null;
queue: {
hidden: boolean;
position: number | null;
preparing: boolean;
};
lines: Array<{
id: string;
externalId: string;
productId: string;
variantId: string | null;
itemName: string;
quantity: number;
}>;
eventId: string;
}Statuskoder
- 201
- Ordreobjektet direkte, med eventId; ikke pakket ind i order.
- 400
- Ugyldigt input: invalid_request.
- 401
- Manglende eller ugyldig Bearer-nøgle: invalid_credential.
- 403
- Adgang nægtet: nøgle, scope, ejerskab eller godkendelse er ikke længere gyldig.
- 404
- Ressourcen findes ikke eller er ikke tilgængelig.
- 409
- Konflikt: fx idempotency_conflict, external_id_conflict eller order_closed. Samme nøgle med andet valideret indhold afvises.
- 413
- JSON-body overstiger 256 KiB.
- 415
- Content-Type skal være application/json.
- 503
- Lager eller behandling er utilgængelig. Ingen interne fejl eller skemadetaljer udleveres i produktion.
- 405
- HTTP-metoden understøttes ikke.
Headers og fejlfelter
Cache-Control: no-store
{
error: string;
}Cache-Control: no-store
WWW-Authenticate: Bearer
{
error: string;
}Adfærd og genforsøg
JSON-body må højst fylde 256 KiB. Ukendte bodyfelter afvises. Identiske genforsøg med samme Idempotency-Key returnerer det oprindelige resultat; ændret indhold giver 409. Genbrug nøglen ved usikkert udfald.
Adgang og ejerskab kontrolleres også ved genforsøg og før beskyttet baggrundsarbejde. En senere fejl fortryder ikke automatisk allerede gennemførte ændringer.
queue.preparing er først true. Forberedelse kan vise en ikke-draft ordre; draft forbliver skjult. Et eksplicit køvalg annullerer automatisk visning. Hent ordren for dens nyeste tilstand og brug eventId til behandlingsstatus.
announceTwitch er false som standard. true anmoder om annoncering under de gældende samtykke- og adgangskrav; det garanterer ikke levering.
Eksisterende externalId giver konflikt. Oprettelse registrerer 4 øre; indledende forberedelse og visning er inkluderet. Eventuel annoncering registrerer 4 øre. Alle beløb er ekskl. moms og følger ordrens låste pris og loft.