Draft orders

A draft order is an Admin-created purchase that remains editable until it is placed or discarded. Use it for assisted sales, phone orders, quotes, or operational orders that should not begin in the Storefront cart flow.

Create the commercial context first

DraftOrderCreateInput requires a store and currency. It can also include a price channel, customer or customer email, billing and shipping addresses, metadata, and creation configuration.

Choose these values before adding catalog lines. They determine which catalog prices, shipping methods, tax rules, and discounts are available.

Catalog and custom lines

Catalog line items reference Thor products and variants. Custom line items represent charges or products supplied directly by the administrator. Use catalog lines when Thor should retain the product relationship; use custom lines only when the item is genuinely outside the catalog.

Draft orders support line price overrides and pricing resets. Record why an override was applied in your operational system, and do not assume a later catalog price change should rewrite an intentional manual price.

Discounts and shipping

You can add discount codes or set a manual discount. Shipping options remain empty until the draft has enough address context for zone, predicate, currency, and rate evaluation. You can select a configured shipping method or set custom shipping lines.

After every change, use the latest returned draft totals. A line, address, price, discount, or shipping change can affect tax and the final amount.

Place or discard

Placing a draft creates its associated order. Treat draftOrderPlace as a terminal business operation: request the returned draft, order, and typed errors, then persist the resulting order ID before starting fulfillment or payment work.

Discard drafts that should no longer be actionable. Keep placed and discarded drafts out of editable queues based on DraftOrderStatus rather than a local flag alone.

API reference