Skip to main content

Draft Orders

Overview​

Draft Orders in Saleor allow to create and manage orders on behalf of customers: either through the Saleor Dashboard or programmatically via API. They are ideal for cases where the customer is not initiating the order themselves, such as phone sales, in-person purchases, or email requests. Once a draft order is completed, Saleor handles the rest: triggering notifications, updating inventory, and transitioning the order into the standard fulfillment pipeline.

Common use cases include:

  • Phone Orders: Customer service teams can create orders directly for customers calling in, capturing details like variants, addresses, and shipping methods.
  • Custom Quotes and Negotiations: Generate draft orders with special pricing or configurations for B2B sales or negotiated deals, and confirm them once approved.
  • Item Replacements and Exchanges: Automatically pre-fill draft orders with customer and order context for faster handling of returns, damaged items, or goodwill shipments—without altering the original order.

Draft Orders Lifecycle​

API​

Core Draft Order Management​

  • draftOrderCreate: This mutation is the starting point for creating a new draft order.

  • draftOrderUpdate: Modify various aspects of an existing draft order. This includes:

    • Setting or updating the customer and their associated shipping and billing addresses.
    • Applying vouchers to the draft order to include discounts.
    • Adding customer notes (visible to the customer).
  • orderUpdateShipping: Assign or change the shipping method for the draft order. This requires a valid shipping method ID.

  • draftOrderComplete: Transition into a regular order. This action triggers several important processes:

    • Inventory allocations are created for variants with inventory tracking enabled, reducing the available stock.
    • Order-related webhooks (beyond draft order specific ones) are triggered.
    • The order becomes eligible for the standard order fulfillment and payment processes.
  • draftOrderDelete / draftOrderBulkDelete: Remove one or multiple draft orders.

Managing Order Lines​

  • orderLinesCreate: Add new product variants as lines to the draft order. You specify the variant, the quantity and override current price.
  • orderLineUpdate: Modify the quantity or the selected variant of an existing order line in the draft order.
  • orderLineDelete: Remove a specific product line from the draft order.

Manage Discounts​

Order-Level Discounts:

Order Line-Level Discounts:

For more information about adding manual discounts, see the Manual Discounts documentation.

Webhooks​

  • DRAFT_ORDER_CREATED
  • DRAFT_ORDER_UPDATED
  • DRAFT_ORDER_DELETED
  • ORDER_CALCULATE_TAXES (sync): Allows external services to calculate taxes for the draft order based on its details.
  • ORDER_FILTER_SHIPPING_METHODS (sync): Enables filtering (excluding) available shipping methods for the draft order.