Ugrás a tartalomhoz
← API-referencia

Az order.v1 dokumentum

A Configurator minden rögzített rendelése egy aláírt order.v1 dokumentum: a munkafolyamat, amelyben készült, a szabásjegyzék, a gyártási terv, az árazott ajánlat a tokenjével, és az, hogy honnan érkezett. Nem tartalmaz személyes adatot, csak a te átlátszatlan customerRef értékedet.

Az elérési utak, mezőnevek, hibakódok, fejlécnevek és kódpéldák angolul maradnak: ezek jelentik a szerződést.

Minden rendelésre érvényes szabályok

  • Minden hossz milliméterben van; a unit csak a megjelenítési egység.
  • Minden összeg Money típusú, egész legkisebb pénzegységben, és minden pénznem megegyezik a rendelés currency értékével.
  • Egy rendelés egy munkafolyamat: a workflow.mode választja ki a szabásjegyzék és a terv alakját (ma panel2d).
  • A plan.planHash a kanonikus terv SHA-256 értéke; az ajánlattoken ehhez kötődik, így a megváltozott terv észlelhető.
  • A dokumentum zárt, és a v1-en belül csak bővülhet: az új mezők opcionálisak, semmi nem törlődik és nem nevezik át.

Mezők

Az alábbi táblázatokat magából a JSON Schemából generáljuk; ugyanez a séma változatlanul be van ágyazva az OpenAPI dokumentumba.

A táblázat leírásai az angol szerződésből származnak (a JSON Schemából vagy az OpenAPI dokumentumból).

Order

MezőTípusKötelezőLeírás
schemaVersion1igen—
idempotencyKeystringigenThe caller's replay key for POST /cfg/v1/order (P2-09): the same key returns the same order.
tenantIdstringigen—
configVersionintegerigenThe tenant-config snapshot this order was priced against. Capped at 2^53−1 (one JSON text per integer, so one hash / token claim per version).
workflowWorkflowigen—
customerRefstringnemOpaque reference into the merchant's own customer records. Never a name or an address.
customerGroupstringnemThe tenant-config customer group the price list was chosen for.
locale"en" | "de" | "it" | "fr" | "pl" | "cs" | "ro" | "hu" | "es" | "hr"igen—
unit"mm" | "cm" | "in"igenDisplay unit at ordering time; every length in this document is millimetres.
currencystringigen—
pricingMode"platform" | "external"igen—
createdAtstringigen—
expiresAtstringigenQuote validity; equals the token's exp.
sourceSourceigen—
cutListCutPart[]igenMODE-DISCRIMINATED by workflow.mode (Order.allOf). One branch today: panel2d CutPart.
fullSheetsFullSheetItem[]igenFull stock units bought uncut. MODE-DISCRIMINATED; panel2d: whole sheets.
hardwareHardwareLine[]igenMode-independent (catalogue hardware).
bondedPanelsBondedPanel[]nemGlued multi-layer panels (P5-05). MODE-DISCRIMINATED; panel2d only today. Shape may gain optional fields there; this is the v1 minimum.
planPlanigenMODE-DISCRIMINATED; the plan carries its own `mode` tag (= workflow.mode), covered by planHash.
quoteQuoteigen—
shippingOrderShippingnem—
filesFileRef[]nem—
signatureSignaturenem—

Workflow

The tenant workflow this order was made in (tenant-config.v1 workflows[].id, or `default` for the implicit workflow). `mode` and `profile` are repeated so a consumer can dispatch without fetching the config; the quote token binds `id` and `mode`.

MezőTípusKötelezőLeírás
idstringigen—
mode"panel2d"igenA BUILT mode (x-cfg-modes.built). Reserved ⇒ `mode_unavailable`; unknown ⇒ `enum`.
profile"furniture"igen—

Source

Provenance: which embed build collected the list, which engine version produced the plan, which config snapshot priced it.

MezőTípusKötelezőLeírás
embedVersionstringigen—
engineVersionstringigen= plan.engineVersion (the Engine API's engineVersion).
configVersionintegerigen= $.configVersion.

CutPart

panel2d cut-list row = Engine API ApiPart2D (name, w, h, qty, rotatable, grain, grainGroup, priority, edgeBanding, material, meta) + the order's own id, group and machining. name/qty/material are REQUIRED here (optional on the API).

MezőTípusKötelezőLeírás
idstringigen—
namestringigenNo C0/C1 control characters (audit P7-01 F1: a newline in a name wrote DXF entities).
wnumberigenThe size the engine was given (after the tenant's dimension convention / edging deduction were applied).
hnumberigen—
qtyintegerigen—
materialstringigenCatalogue MaterialItem.id (the API's material partition key).
rotatablebooleannem—
grain"w" | "h"nem—
grainGroupstringnem—
prioritybooleannem—
edgeBandingEdgeBandingnem—
metaobjectnemOpaque passthrough (= ApiPart2D.meta), ≤ 2048 bytes canonical.
groupstringnemRoom / cabinet / project the customer assigned; printed on labels and exports.
machiningMachiningOp[]nem—

EdgeBanding

Per-edge banding TYPE references (catalogue EdgingItem.id); an absent side is not banded (= ApiPart2D.edgeBanding).

MezőTípusKötelezőLeírás
topstringnem—
rightstringnem—
bottomstringnem—
leftstringnem—

MachiningOp

A machining operation on the part (catalogue MachiningType.id). `params` stays open in v1; P5-04 types its known keys additively (see params).

MezőTípusKötelezőLeírás
typeIdstringigen—
qtyintegerigen—
paramsobjectnemOpen object; the KNOWN keys are typed (P5-04, additive): corner, measure, xMm, yMm, diameterMm, radiusMm, lengthMm, widthMm, depthMm. Per catalogue kind: hole/hinge = corner+measure+xMm+yMm+diameterMm[+depthMm]; groove = corner(top-left|top-right)+xMm+lengthMm[+widthMm+depthMm]; radius = corner+radiusMm. Any other key stays valid.

FullSheetItem

MezőTípusKötelezőLeírás
materialIdstringigen—
wnumberigen—
hnumberigen—
qtyintegerigen—

HardwareLine

MezőTípusKötelezőLeírás
hardwareIdstringigen—
qtyintegerigen—

BondedPanel

MezőTípusKötelezőLeírás
idstringigen—
wnumberigen—
hnumberigen—
qtyintegerigen—
layersBondedLayer[]igen—
namestringnem—

BondedLayer

MezőTípusKötelezőLeírás
materialIdstringigen—
thicknessMmnumberigen—

Plan

The panel2d production plan as the Engine API returned it (ApiOptimize2DResponse fields), plus the `mode` tag and planHash. Numbers are the engine's own, in millimetres; sheets[].price / metrics.totalPrice are the engine's unit-less price fields, NOT money (prices live in `quote`).

MezőTípusKötelezőLeírás
mode"panel2d"igenThe mode tag — INSIDE the plan so planHash covers it; must equal $.workflow.mode (D15).
engine"heuristic" | "balanced" | "max"igen—
engineVersionstringigen—
deterministicbooleanigen—
sheetsSheet[]igen—
metricsMetrics2Digen—
cutPlanarray | nulligennull when the layout is not guillotine.
unplacedUnplaced2D[]igen—
warningsstring[]igen—
guillotineValidbooleanigen—
planHashstringigensha256 hex of canonicalize(plan without planHash) — RFC 8785; covers `mode`.

Sheet

= ApiSheet (types.ts).

MezőTípusKötelezőLeírás
wnumberigen—
hnumberigen—
pricenumber | nulligenThe engine's unit-less per-sheet price; the issuer passes null.
partsPlacedPart2D[]igen—
offcutsRect[]nem—
materialstringnem—
grain"w" | "h"nem—
metaobjectnem—

PlacedPart2D

= ApiPlacedPart2D (types.ts).

MezőTípusKötelezőLeírás
namestringigen—
xnumberigen—
ynumberigen—
wnumberigen—
hnumberigen—
rotatedbooleanigen—
metaobjectnem—

Rect

= ApiRect (types.ts).

MezőTípusKötelezőLeírás
xnumberigen—
ynumberigen—
wnumberigen—
hnumberigen—

Metrics2D

= ApiMetrics2D (types.ts), unchanged: cutLines (collinear cuts merged), sawPasses (every strip crossed), cutLength (mm, convention-independent).

MezőTípusKötelezőLeírás
sheetCountintegerigen—
yieldPctnumberigen—
placedintegerigen—
totalintegerigen—
cutLinesintegerigen—
sawPassesintegerigen—
cutLengthnumberigen—
totalPricenumberigen—

CutStep

= ApiCutStep (types.ts): sheet is the 0-based index into plan.sheets, step restarts at 1 per sheet, stage is the 1-based machine pass.

MezőTípusKötelezőLeírás
sheetintegerigen—
stepintegerigen—
axis"h" | "v"igen—
posnumberigen—
lengthnumberigen—
stageintegerigen—

Unplaced2D

= ApiUnplaced2D (types.ts).

MezőTípusKötelezőLeírás
namestringigen—
wnumberigen—
hnumberigen—
qtyintegerigen—

Quote

MezőTípusKötelezőLeírás
pricedbooleanigenfalse under pricingMode = external: lines carry quantities, every amount is 0.
linesQuoteLine[]igen—
totalsTotalsigen—
quoteTokenstringigenSee x-cfg-quote-token. The merchant's server verifies it with the tenant's key (P4-02 /quote/verify).

QuoteLine

MezőTípusKötelezőLeírás
idstringigen—
type"cutPart" | "fullSheet" | "hardware" | "machining" | "bondedPanel" | "edging" | "surcharge" | "shipping" | "tax"igen—
labelstringigen—
qtynumberigenPieces, sheets, metres (edging) — the line's own unit.
unitAmountMoneyigen—
amountMoneyigenLine total after the tenant's rounding. Σ non-tax amounts = totals.net.
refLineRefnem—
metaobjectnem—

LineRef

What the line prices. At least one id when present.

MezőTípusKötelezőLeírás
partIdstringnem—
materialIdstringnem—
edgingIdstringnem—
hardwareIdstringnem—
machiningIdstringnem—
zoneIdstringnem—
ruleIdstringnem—
bondedPanelIdstringnem—

Totals

MezőTípusKötelezőLeírás
netMoneyigen—
taxMoneyigen—
grossMoneyigen—

Money

MezőTípusKötelezőLeírás
amountMinorintegerigen—
currencystringigen—

OrderShipping

Ids only — the delivery address is the merchant shop's data, not the contract's.

MezőTípusKötelezőLeírás
method"delivery" | "pickup"igen—
zoneIdstringnem—
pickupLocationIdstringnem—

FileRef

MezőTípusKötelezőLeírás
kind"pdf" | "labels" | "csv" | "dxf" | "svg" | "xlsx" | "json"igen—
urlstringigen—
sha256stringnem—
bytesintegernem—

Signature

HMAC-SHA256 over canonicalize(order without signature). keyId names the tenant key (P2-07: derived from a master, the DB holds only the id).

MezőTípusKötelezőLeírás
alg"HMAC-SHA256"igen—
keyIdstringigen—
valuestringigen—

Szándékosan nincs itt "kipróbálom" gomb: a titkos kulcs a szerveredre való, soha nem a böngészőbe. A demó webshop elejétől végéig megmutatja a beágyazást és a rendelés átadását.

Jogi tudnivalókKonfigurátor feltételek (EN) ·Adatfeldolgozási szerződés (EN) ·Vásárlói adatvédelmi tájékoztató ·Harmadik féltől származó licencek (EN)