Draft order price lock default

Topic summary

Issue: In draft orders, the “lock product prices” option is defaulting to ON when sending an invoice, but the requester wants it OFF by default.

Documentation mismatch: The manual states, “By default, a draft order’s prices are unlocked until you manually choose to lock the prices,” implying the default should be OFF. A 9/30/25 note explains locking prevents product price changes in Draft Order checkouts, suggesting it’s an optional, manual action.

Request: A way to set the default state of the price-lock checkbox to OFF (ideally a store-level setting), acknowledging different stores may prefer different defaults.

Status: No solution or setting identified within the thread. Behavior appears inconsistent with documentation; unclear whether this is a UI change, a bug, or a configurable option elsewhere. Unresolved and awaiting guidance or confirmation on how to control the default.

Summarized with AI on December 18. AI used: gpt-5.

Hello,
When we create draft orders, and then send invoice, the lock product prices is defaulted to on.

This is the opposite of what we want. I imagine some ratio of stores will want it one way or the other, so there must be a way to set the default as we like, so the full 100% of stores can be enthused with this setting?

The following info seems to say it defaults to off, if I’m reading correctly, although it’s not very clear yes/no. The manual: “By default, a draft order’s prices are unlocked until you manually choose to lock the prices on the draft order.”

and a 9/30/25 note “To prevent product pricing from changing in Draft Order checkouts you can lock product pricing prior to sending the invoice or checkout link to the customer. “

Either way, how can we please set this checkbox to off by default? Thanks!

I guess this is where you can use Flow.
When you create a draft order, the Flow will unlock prices.

However, since the trigger is only “draft order created”, it will only run once and will allow you to lock prices afterwards.

The code for “Send API request” action is below.
I only did limited tests, it may need changes for your store.
Say I did not test against custom merchandize.

{
  "id": "{{draftOrder.id}}",
  "input": {
    "lineItems": [
      {% for lineItems_item in draftOrder.lineItems %}
      {
        "variantId": {{ lineItems_item.variant.id | json }},
        "quantity":  {{ lineItems_item.quantity }},
        "uuid":      {{ lineItems_item.uuid | json }},
        "generatePriceOverride": false,
        "priceOverride": null
      } {% unless forloop.last %},{% endunless %}
      {% endfor %}
    ]
  }
}

if my post is helpful, please like it ♡ and mark as a solution -- this will help others find it
1 Like

Hi there! :waving_hand:

You’re correct — by default, Shopify’s documentation states that draft order prices should be unlocked until you manually lock them. If your store is seeing the opposite (prices locked by default), that’s unusual and could be related to:

  1. Theme or app customizations
    Some apps that handle pricing, wholesale, or draft orders can automatically lock prices when an invoice is sent.

  2. Shopify admin behavior / recent updates
    Occasionally Shopify updates how draft orders behave, but currently there’s no native setting in Shopify to change the default “lock prices” state. It always defaults based on the standard admin behavior (normally unlocked).


Workarounds

  • Manual adjustment per draft order: Before sending an invoice, uncheck the “Lock product prices” box if it’s automatically checked.

  • Draft order automation apps: Some apps or custom scripts can create draft orders via the API with applied_discount or custom_price fields, which can leave prices unlocked by default.

  • Submit a feature request: Shopify considers feature requests, and being able to set the default state of “Lock product prices” would be valuable for stores like yours.

1 Like