PUTÆndr synlighed og køplacering
Ændrer synlighed og placering i køen. En ændring registrerer 2 øre ekskl. moms. Kræver Rip & Ship-adgang.
Endpoint
https://www.tcgm.dk/api/v1/webshop/orders/queue-stateAutorisation
Bearer-nøgle medwebshop:orders:queue
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.orderIdstring · påkrævet- Trimmes før validering. Mindst 1 tegn. Højst 200 tegn.
data.visibilitystring · påkrævet- Tilladte værdier: "show", "hide".
data.positionstring · påkrævet- Tilladte værdier: "current", "first", "last".
Underfelter kræves kun, når det overordnede objekt sendes.
Response · 200
Køtilstand opdateret eller allerede som ønsket.
Cache-Control: no-store
{
status: "succeeded";
orderId: string;
changed: boolean;
action?: "create" | "update" | "queue-state" | "complete";
announceTwitch?: boolean;
order?: {
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;
}>;
};
}Statuskoder
- 200
- Køtilstand opdateret eller allerede som ønsket.
- 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. Direkte handlinger kan også returnere status=failed og en forretningsfejl.
- 404
- Ressourcen findes ikke eller er ikke tilgængelig. Direkte handlinger kan også returnere status=failed og en forretningsfejl.
- 409
- Konflikt: fx idempotency_conflict, external_id_conflict eller order_closed. Samme nøgle med andet valideret indhold afvises. Direkte handlinger kan også returnere status=failed og en forretningsfejl.
- 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;
}Cache-Control: no-store
{
error: string;
} | {
status: "failed";
error: "access_revoked" | "order_not_found" | "order_closed" | "external_id_conflict" | "queue_unavailable" | "queue_position_limit";
}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.
current bevarer placering; first og last placerer før eller efter andre synlige åbne ordrer. Skjulte ordrer kan også få en placering til senere visning. receivedAt ændres ikke.
Et eksplicit valg annullerer automatisk forberedelse/visning, også hvis ordren allerede er skjult. Matchende tilstand er gratis; samlet ændring af synlighed og placering tæller som én handling til 2 øre ekskl. moms under prisloftet. Ingen annoncering udløses.