Skip to main content

What it is

Per-position line items of Orders (Shopify-sourced). One row per order position: product, SKU, quantity, and the price actually paid. Read-only in the app; linked to orders via order_external_id. Line items are what the demand engine actually counts — units sold per variant come from summing quantity here, joined to Products via product_variant_external_idproducts.external_id. Quantity is always summed, never row-counted, so multi-unit lines are handled correctly.

How it gets data

Ingest-enabled — external systems push rows through the Ingest API:
  • One JSON record per request; unknown fields are dropped.
  • Idempotent upsert on (tenant_id, external_id)external_id is the source line-item id.
  • tenant_id / workspace_id come from the API key context, never from the body.
  • A ready-made Make.com flow template is downloadable in Settings → Data Sources.
Minimal example payload:
Always send product_variant_external_id when the source provides it. product_external_id is the parent-product gid and is too coarse for demand math — one product gid covers several SKUs/sizes.

Fields

Line identity

Quantity & pricing

Product linkage

“ingest” = populated through the ingest endpoint; read-only in the app and over MCP row writes. metadata is accepted on ingest but not surfaced as a default table column.
Like every workspace table, line items also carry the system columns id, tenant_id, workspace_id, created_at, and updated_at — set automatically, never sent by integrations.

Query it