Factory MBOM
ERP & MES Integration
Map the Factory MBOM document into SAP, Oracle, 1C, or a cutting table: field mapping, JSON vs CSV, idempotent pulls, and audit.
This page is for the integration engineer wiring Scalarcut into an ERP, MES, or cutting-table controller.
The Factory MBOM document reaches your systems two ways:
- Planner export — an Enterprise user plans in the planner and clicks the Factory MBOM button to download the JSON and CSV.
- HTTP API — your middleware pulls the same document over the keyed endpoint.
Both produce the same scalarcut.factory_bom.v1.1 schema; the mapping below applies to either.
Choose JSON or CSV
- JSON is the full document: header, pieces, recipes, consumables, totals, and optional
geometry. Use it when your middleware can consume structured JSON. - CSV is the piece list only — the flat columns you can drop straight into a cutting table or a spreadsheet import. Packing, ids, rates, and totals are not in CSV.
Both describe the same cut list; the CSV is a lossy projection of the JSON pieces.
Mapping the fields
| Factory MBOM field | Typical ERP / MES target |
|---|---|
schema |
Contract version gate (pin to scalarcut.factory_bom.v1.1) |
scene_id / project_id |
Production order / work-order key |
surface_id |
Zone or line (wall-a…wall-d, floor) |
group_id |
Stable routing key for a cut group |
letter |
Human cut-list legend for the shop floor |
sku |
Material master / article number |
w_mm / h_mm |
Cut dimensions for the cutting table |
cut_type |
Cutting strategy / work centre |
qty |
Order quantity for the group |
fragile |
Quality hold / manual handling flag |
cre_recycled / cre_parent |
Recycling traceability to the parent blank |
is_l_cut |
L-cut routing |
rates |
Consumable formula constants |
totals.cut_qty |
Audit against the blueprint cut-list header |
totals.boxes_to_order |
Cartons to purchase |
Idempotent pulls
The endpoint is a GET with an ETag. Poll with If-None-Match so a re-request that has not changed returns 304 instead of re-processing the document. Treat the combination of scene_id/project_id + ETag as your idempotency key when ingesting into a queue.
Pull, not push
There are two delivery paths. A user can export the document from the planner header button (downloads JSON + CSV). For automation, your middleware can pull the document over the HTTP API on demand — there is no webhook push in this release. Schedule your poll on your own cadence and gate on the ETag.
Fragile cuts
A cut below the 50 mm fragility floor is flagged fragile: true. Route these for manual handling rather than sending them to a machine that will break them. Sliver Guard already tries to re-anchor layouts to avoid them; the flag is the final safety net.
Consumables
Adhesive, grout, and primer are always present in the Factory MBOM rates and totals — this is the opposite of the Online Store Widget cart, where consumables are an opt-in cart line. Map rates to your formula constants once; the document carries the computed kg/L so you do not need to recalculate them.
Audit
totals.cut_qty must equal the sum of piece qty. When you ingest a document, reconcile totals.cut_qty against the blueprint's cut-list header for the same scene. Any drift means the layout changed between export and ingest — pull again before releasing to production.
Live scene pull
Only the garage fixture (scene_id/project_id = 121) is served in this release. Live scene/project pull is on the roadmap; the endpoint contract (auth, headers, schema) will not change when it lands.