Feature request: Persisted inventoryBehaviour: BYPASS for draft orders and invoice checkout

Feature request: Persisted inventoryBehaviour: BYPASS for draft orders and invoice checkout

We have a workflow in which inventory for certain merchandise has already been handled in a previous transaction or external process. A subsequent draft order is created to collect an additional customer payment through Shopify’s hosted invoice checkout.

The draft order must use real variantId values because Shopify’s shipping calculations can depend on product identity, including:

  • Shipping profiles

  • Markets and market-specific shipping rules

  • Product collections

  • Carrier services

  • Variant attributes

  • Other delivery customizations

Custom draft-order line items are not sufficient because they do not retain this product and variant context. As a result, Shopify may calculate different or incomplete shipping options.

Using real variants solves the shipping-calculation problem, but completing the draft order can cause Shopify to process inventory for those variants again, even though inventory was already accounted for elsewhere.

The orderCreate mutation supports inventoryBehaviour, including BYPASS. Draft orders currently have no equivalent persisted option.

Requested API

Please add an inventoryBehaviour field to draft orders, ideally using the same enum and behavior as orderCreate.

For example:

mutation DraftOrderCreate($input: DraftOrderInput!) {
  draftOrderCreate(
    input: {
      lineItems: [
        {
          variantId: "gid://shopify/ProductVariant/123"
          quantity: 1
          priceOverride: {
            amount: "0.00"
            currencyCode: USD
          }
        }
      ]
      inventoryBehaviour: BYPASS
    }
  ) {
    draftOrder {
      id
      inventoryBehaviour
      invoiceUrl
    }
    userErrors {
      field
      message
    }
  }
}

The selected behavior should be stored on the draft order and respected regardless of how it becomes an order:

  • Customer completion through the hosted invoice checkout

  • Completion through draftOrderComplete

  • Completion by a merchant in Shopify Admin

With BYPASS, the resulting order should not reserve, commit, decrement, restock, or otherwise adjust inventory for its variant-backed line items.

Adding this option only to draftOrderComplete would not cover hosted payment flows, because customers can complete and pay for draft orders directly through Shopify’s invoice checkout without the app calling draftOrderComplete.

Why existing options do not solve this

reserveInventoryUntil addresses the opposite requirement by reserving inventory for a future purchase. In this scenario, inventory has already been processed.

Creating an order directly with orderCreate and inventoryBehaviour: BYPASS is also insufficient because the customer still needs to complete payment through Shopify’s hosted checkout.

Custom line items avoid inventory changes, but remove the product identity required for Shopify’s normal shipping calculations.

Potential use cases

This capability could support:

  • Additional payment flows related to existing purchases

  • Replacement and reshipment charges

  • Preorder and multi-stage order workflows

  • Orders whose inventory was handled by another transaction

  • Migration and reconciliation workflows requiring Shopify-hosted payment

  • Shipping-only or service-charge checkouts that still require variant-aware delivery rates

Fulfillment-order consideration

Some workflows may also require variant-backed lines for checkout and reporting context without creating new operational fulfillment work.

An additional option such as fulfillmentBehaviour: SKIP, or another supported mechanism for making these lines non-actionable after checkout, would help prevent duplicate fulfillment work for merchants and connected fulfillment systems.

Inventory bypass is the immediate missing capability, while fulfillment-order behavior is a related concern.

Expected outcome

The customer should be able to:

  1. Open a Shopify-hosted invoice checkout.

  2. Receive shipping rates calculated using real product variants.

  3. Complete the required payment.

  4. Create an order that retains variant references for reporting and shipping context.

  5. Avoid any additional inventory reservation, commitment, decrement, or restock.

  6. Optionally avoid creating fulfillment work for merchandise already handled elsewhere.

Would Shopify consider adding a persisted inventoryBehaviour option to draft orders that is honored when the customer completes payment through the hosted invoice checkout?