OrderLine

interface OrderLine { id: number; image: string; is_upsell: boolean; price_excl_tax: string; price_excl_tax_excl_discounts: string; price_incl_tax: string; price_incl_tax_excl_discounts: string; product_sku: string; product_title: string; product_description?: string; variant_title?: string; quantity: number; product_id?: number | null; variant_id?: number | null; metadata?: Record<string, unknown> | null; properties?: OrderLineProperty[] | null; }

Source: api.ts:274

One line on a placed Order — a package the customer bought, at the price they were charged for it.

Money fields are decimal strings in the order's currency. The *_excl_discounts pair is the price before discounts, so price_incl_tax_excl_discounts - price_incl_tax is what this line saved.


Properties

id: number

The line's id on the order. Use it to tell two lines of the same package apart.

image: string

Product image URL for the line, for showing on a receipt.

is_upsell: boolean

true when this line was added after checkout by a post-purchase upsell, false for the original purchase.

price_excl_tax: string

What this line was charged, before tax and after discounts.

price_excl_tax_excl_discounts: string

What this line would have cost before tax with no discounts applied.

price_incl_tax: string

What this line was charged, tax included and after discounts.

price_incl_tax_excl_discounts: string

What this line would have cost with tax and no discounts applied.

product_sku: string

SKU of the purchased variant.

product_title: string

Product name to display on the line.

product_description: string

Longer product description, when the catalog has one.

variant_title: string

The variant the customer chose (e.g. "Large / Blue"), when the product has variants.

quantity: number

Units bought on this line.

product_id: number | null

Catalog id of the product this line belongs to. null when the API has no catalog product for the line. The SDK does not read this field today — declared because the orders API sends it on every line.

variant_id: number | null

Catalog id of the specific variant purchased (size, color, and similar choices). null when the product has no variants, or the line predates variant tracking. The SDK does not read this field today — declared because the orders API sends it on every line.

metadata: Record<string, unknown> | null

Arbitrary key-value data attached to the line at checkout — internal keys the platform uses for its own bookkeeping, filtered out before this response is sent. null or absent when nothing was attached. The SDK does not read this field today — declared because the orders API sends it on every line.

properties: OrderLineProperty[] | null

Customer-facing custom values collected for this line at checkout — a gift note or an engraving, for example — as an ordered list rather than the metadata dictionary. null or empty when none were collected. The SDK does not read this field today — declared because the orders API sends it on every line.