Skip to main content

Overview

An Order is a commercial transaction — a sale, a purchase, a transfer, an invoice, and more. Every order is created from an Order Template that sets its type and rules. As an order moves through its statuses, it updates inventory automatically; invoices take payments; and orders link to one another through parent-child flows. For the order types and their inventory effects, see the Commerce overview.

Where to find it

Orders live under Commerce → Orders.

Statuses

An order moves through five statuses: draft → new → processing → completed, plus void.
  • You can move between any of the first four in any direction; each transition applies the order type’s inventory effect.
  • void is terminal — a voided order has no further transitions, and deleting an order voids it.
  • Rolling back from completed is guarded: you can’t move a completed order backward while it has approved payments or completed child orders — resolve those first (refund/void the invoice, void the completed child).

Properties

PropertyTypeRequiredDescription
titlestringAutoGenerated from the template’s naming convention.
slugstringAutoUnique identifier, generated alongside the title.
typeenumAutoThe order type, inherited from the template.
statusenumNodraft, new, processing, completed, or void.
template_idreferenceYesThe order template this order is built from.
contact_idreferenceNoThe customer or contact for the order.
location_idreferenceNoThe primary location (warehouse or store).
destination_location_idreferenceNoThe destination location, for transfers.
parent_idreferenceConditionalThe parent order — required for invoices, shipping, and returns.
itemsarrayNoThe line items.
chargesarrayNoOrder-level charges.
summaryobjectAutoThe calculated totals.
is_paidbooleanAutoWhether the order has been fully paid.

Line items

An order’s contents are its line items — one per product or service. Each line carries the item, the quantity, the unit price, discount and tax, and rolls up into a subtotal and total. The columns and any formulas come from the product’s content template, so the same product can show different columns on a sale vs. a purchase. Line items are grouped on the order view by their product template. An item that needs per-unit tracking (serial numbers, assignment to a contact, or per-unit attributes) gets one record per unit of its quantity.

Charges

Charges are order-level adjustments on top of the line items:
ConceptEffect
discount, promotionSubtract
tax, shipping, surcharges, additional_costAdd
other, price_adjustmentAdd or subtract (you choose)
A charge is a fixed amount or a percentage (calculated on the subtotal or the running total). Charges can only be added or changed while the order is in draft or new.

Summary

Every order keeps a calculated summary — item totals, the sums of taxes and discounts, each charge total, the order total, and the amount paid. It updates automatically as line items and charges change.

Parent-child orders

Orders link into parent-child chains so a transaction can move through stages. A child order carries selected line items from its parent (each remembers the line it came from). The order template’s rules decide which child types are allowed and from which parent status. For example:
  • A pre-order (cart or quote) becomes a sale; the sale produces an invoice for payment and a transfer for fulfillment.
  • An opportunity evolves into a quote, then a sale, then an invoice.
  • A completed sale or purchase can spawn a return, whose invoice child issues the refund.
A given parent line item can appear in only one child of each type — e.g. one transfer and one invoice, but not two transfers.

Seeds

Orders travel between environments as structural Seeds. References use reference helpers; the order’s title, slug, totals, and summary are computed on import:
[
  {
    "object_type": "orders",
    "data": {
      "type": "sale",
      "status": "completed",
      "template_id": "{{getRecordAttribute('order_templates', 'slug', 'cumbre-retail-sale')}}",
      "contact_id": "{{getRecordAttribute('contacts', 'identifiers', 'cliente@demo.com')}}",
      "location_id": "{{getContentInstance('locations', 'slug', 'juarez-warehouse')}}",
      "items": [
        { "item_code": "CUMBRE-BEANS-ETH", "line_qty": 5, "unit_price_cents": 1800 }
      ]
    }
  }
]

Governance & permissions

A super admin or Master can manage any order; a Journey Manager can manage the orders they own (see Ownership).

API access

Orders have full CRUD plus dedicated operations to add, update, remove, and reorder line items, change status, create a child order, and add or remove charges. See the API reference.

Order Templates

The blueprint that defines an order’s type and rules.

Inventory

How an order’s status moves stock.

Payments

Taking payment on invoice orders.

Price Lists

Where line-item prices come from.