How to Do Preorders on Shopify Without Overselling a SKU
To do preorders on Shopify, install a pre-order app that can enforce a hard quantity limit on each variant and reject checkout past that limit. Cap each variant at the units a confirmed incoming shipment can cover, publish a ship date you can defend, and reconcile unfulfilled preorder units against that cap before you accept more orders. Do not open the purchase option if the app cannot enforce that limit, or if a test order past the limit still checks out.
Continue selling when out of stock is a different control. Shopify lets you turn it on only when inventory is tracked, and it allows checkout after available inventory reaches zero. It does not create a pre-order purchase option, a payment schedule, or a unit cap.
When a Shopify preorder is safe to offer
A Shopify preorder is safe to offer when every unit you accept is covered by confirmed incoming supply, a ship date you can defend, and an app that stops the next order once the variant hits its cap. A supplier email that says stock is "likely" next month is not that confirmation. An app that only changes the button label is not that stop.
Open the purchase option only after the variant cap, the app's hard limit, and the fulfillment promise are written down, and a test checkout past the cap is refused. Close it the same day any of those stops being true.
Have these in place before the button goes live:
- Inventory tracking turned on for the variant you will sell.
- A confirmed incoming quantity, with the date that quantity can ship.
- A pre-order app installed from the Shopify App Store, with setup finished in the app.
- A confirmed app feature that sets a hard quantity limit on that specific variant and rejects orders once the limit is reached. A storewide message, a theme label, or Continue selling when out of stock does not meet this prerequisite.
- A passed over-limit checkout test on that variant. If the app cannot enforce the limit, or the test order still checks out, do not open preorders.
- The product published to the Online Store or a custom storefront, the only sales channels Shopify supports for pre-order products.
- A payment method the customer can actually use. Shop Pay, Apple Pay, Google Pay, and local methods such as Klarna and mollie iDEAL | Wero cannot be used to buy a pre-order.
- A written ship date, payment schedule, and cancellation path on the product page.
A demand forecast estimates how many units you might sell. The reorder point tells you when to place the supplier order. That order belongs in the replenishment plan. This workflow starts after the supplier confirms quantity and date. If the preorder is also a new product, finish the launch preflight before you promote it.
Recent sales velocity and days of cover tell you whether a short preorder window is worth opening. A fast seller with thin cover can justify a small, dated cap. A slow seller with a long, uncertain lead time usually should not take customer money yet. Skymetrics stock intelligence can surface velocity and cover. Shopify orders and the pre-order app remain the record of units you have already committed.
Selling past confirmed supply turns a future receipt into a stock-out you have already promised to fill. Pick the method that matches the evidence you have.
| Method | What limits quantity | What the customer sees | Use it when |
|---|---|---|---|
| Continue selling when out of stock | Nothing. Available inventory can fall below zero. | A normal buy path, unless you add your own copy. | You need a true unit cap. Do not use this setting as the cap. |
| Pre-order app purchase option | Only an app limit that is set per variant and rejects checkout past it. Shopify inventory stops the next sale only if the app reserves stock at sale. | Pre-order details, the amount due now and later, and a required checkout confirmation. | Incoming units are confirmed, the ship date is defensible, and the app has passed the over-limit checkout test. Do not open it otherwise. |
| Back-in-stock notification | No units are sold until stock exists. | A waitlist, not an order. | Supply is unconfirmed, the app cannot enforce a hard per-variant cap, or you do not want payment before the goods exist. |
Cap each variant against confirmed incoming inventory
Set the cap on the variant, not the product. A hoodie in size M can be covered by a purchase order while size S is not. The app must be able to store and enforce that limit on the same variant. A product-level limit, or a limit you can only type into a spreadsheet, does not stop checkout. Multi-location stores should put the sellable quantity on a location that fulfills online orders. Shopify still shows an item as out of stock online when the online-fulfilling location is at zero, even if another location that does not fulfill online orders has units.
The variant cap is a total order ceiling, not the units still left to sell. It equals confirmed incoming units that can ship by the stated date, minus units you will not sell online. Do not subtract open orders when you set the cap. Subtract them only when you calculate remaining capacity.
Remaining capacity = variant cap minus unfulfilled preorder units already taken for that variant. If the app's limit field counts units still available to sell, set it to remaining capacity. If the app instead asks for a total order ceiling, enter the variant cap and confirm the app subtracts orders already taken. Either way, the limit has to be variant-specific, and checkout has to reject the next unit once it is reached. Using the wrong number, or an app that cannot reject that unit, either blocks valid orders or lets you oversell.
Example, not a store result. A supplier confirms 200 units of Navy Hoodie, size M, available to ship by 10 April. You hold back 20 units for wholesale and defects. The variant cap is 180. No preorders are open yet, so remaining capacity is 180. Set the app limit to 180 if it counts units still available to sell, and only if that limit is attached to size M rather than the whole hoodie. Two weeks later, unfulfilled preorders total 110. Remaining capacity is 180 minus 110, which is 70. Lower the app's remaining-units limit to 70.
The supplier then confirms only 150 units, and the date moves to 24 April. The new variant cap is 150 minus 20, which is 130. Open commitments are still 110, so remaining capacity is 130 minus 110, which is 20. Keep the purchase option open only for those 20 units, set the app's remaining-units limit to 20, and change the published date before 10 April. If commitments had already reached 150, remaining capacity would be 130 minus 150, which is -20. That shortfall means the variant is 20 units overcommitted. Pause the same day and contact those customers.
- Remaining capacity above zero, and the app can enforce that number on this variant: keep the purchase option open and set the app's remaining-units limit to that number. If the app field is a total order ceiling, enter the current variant cap instead.
- Remaining capacity at zero: pause the purchase option. Do not wait for the next marketing send.
- Remaining capacity below zero: pause, stop ads to that variant, and contact the excess customers before the original ship date.
- The app has no per-variant hard limit, or the over-limit test still accepts an order: do not open preorders on that variant.
Shopify's managing pre-orders guide says inventory for a pre-order is reserved either at the time of sale or at fulfillment, and that some apps let you choose. If the app reserves at fulfillment, available quantity does not fall when the customer orders. A Shopify inventory number alone will not stop the next sale. The app's own quantity limit has to do that, and only if it is set on the variant and checkout refuses orders past it. Reconcile orders after that test passes. If the app cannot do this, keep the purchase option closed.
Set up the pre-order purchase option
Shopify requires a pre-order app. Finish setup in the app before you change the product in admin. Before you publish, confirm in that app that you can set a hard quantity limit on the specific variant and that orders past the limit are rejected. Installing an app from the category does not prove it has that control. If you cannot find a per-variant limit that blocks checkout, do not open preorders. Pre-order details then appear on the product page and in the orders list only after the app is set up. The supported app category is Pre-orders on the Shopify App Store.
- Write the variant cap, ship date, and payment choice (full payment, deposit, or no payment until later) before you touch the product.
- Install a pre-order app from the category and complete its setup. In the app's own settings, confirm it can enforce a hard quantity limit on this variant and reject orders beyond it. If it cannot, stop here and do not open the purchase option.
- If the limit field counts units still available to sell, enter remaining capacity for that variant. If it is a total order ceiling, enter the variant cap. Note whether the app reserves inventory at sale or at fulfillment. Reservation at fulfillment does not replace the app limit, because Shopify available quantity will not fall at checkout.
- In Shopify admin, go to Products and open the product.
- To sell it only as a pre-order, select the purchase-option-only setting. Shopify's help labels this "Only display this product with these purchase options."
- To keep ordinary one-time purchase available as well, deselect that setting. The same help article also shows the label "Only show this product with these purchase options." Match the label in your admin.
- Publish the product to the Online Store. Pre-order products are supported on the Online Store and Custom Storefront sales channels.
- Run the checkout tests below, including the over-limit test, before you email the list or turn on ads. If that test fails, unpublish or pause the purchase option the same day.
Shopify's setup guide lists restrictions that a theme edit cannot remove:
- Pre-orders are not supported on stores with customized checkouts.
- Customers cannot buy a pre-order with Shop Pay, Apple Pay, or Google Pay.
- Customers cannot use local payment methods such as Klarna and mollie iDEAL | Wero.
- A customer cannot combine different purchase options on the same product in one checkout. Shopify's example is that a customer cannot pre-order a subscription product, and a pre-order t-shirt cannot also be bought as try-before-you-buy.
- Buy X get Y discounts are not supported.
- Pre-orders are not supported by Shop Promise.
- Changing the button label in a theme does not create the purchase option, the deferred payment, the checkout confirmation, or a quantity cap.
During checkout, the app shows the amount due now and any balance due later. At the Payment step, the customer must confirm they understand they are buying a product with a purchase option. They cannot complete the purchase without that agreement.
If you uninstall the app, Shopify deletes pre-order data, excluding customer payment information, after 48 hours, unless the app has a backup you can restore. Export the open-commitment list before you remove an app.
State delivery, payment, and cancellation terms
Put the ship window, what the customer pays now, what they pay later, and how they cancel on the product page before the first order. Repeat the same dates in the order confirmation. A date that appears only in an Instagram caption is not the promise the buyer checked out against.
- The variant and the ship date, or a clear window such as "ships 10-24 April."
- Whether checkout charges the full price, a deposit, or nothing until a later date.
- The date or event that triggers the remaining charge, if any.
- How to cancel before shipment, and that a cancellation can require a manual refund.
- What you will do if the date slips: a revised date and a cancel-or-refund option, sent before the original deadline.
Shopify's setup guide requires a reasonable basis for any stated ship time. If no date is clearly specified, you must have a reasonable belief the product will ship within 30 days of purchase. If you cannot ship in the promised time, you must provide a revised shipment date and explain the customer's right to cancel or obtain a refund. That Shopify requirement still applies if you collect no payment at checkout. A missing charge is not a reason to omit the date.
For orders covered by US federal rules, the FTC's business guide to the Mail, Internet, or Telephone Order Merchandise Rule is more specific. If you cannot ship on time, you must offer a delay or a cancellation with a prompt refund, and you must do it no later than the original promised time. The first delay notice needs a definite revised date, or a statement that you cannot give one, plus a free way for the customer to cancel. Compare the revised date with the original applicable shipment deadline, not with the date you send the notice. If the revised date is 30 days or less later than that original deadline, you must tell the customer that silence will be treated as consent. If the revised date is more than 30 days later than that original deadline, or you cannot give a definite date, silence does not keep the order open. You can still ship within 30 days of that original deadline if the customer has not cancelled. If you have not shipped by then, the order is automatically cancelled unless the customer expressly consents to the delay within that 30-day period. You must cancel and refund unless the customer expressly consents to the delay. A later delay notice cannot treat silence as consent.
When a required refund is due, the same FTC guide says to refund within seven working days if the customer paid by cash, check, money order, or credit where a third party is the creditor. If you are the creditor, the guide allows one billing cycle. Store credit does not replace that refund. The guide, edited in January 2025 to reflect inflation-adjusted amounts, says civil penalties can reach $53,088 per violation. This is general information, not legal advice. State and non-US rules can be stricter. Confirm the rules for your markets with a qualified attorney.
Carts with more than one pre-order follow Shopify's payment rules. Specific due dates collapse to the earliest date for every item in the cart. If any item is due on fulfillment, that term overrides specific dates. Deposits are added together and charged at checkout. A $50 deposit and a $30 deposit become an $80 charge now, with each balance still due later under the combined rule.
Test checkout and reconcile preorder commitments
A live product page is not proof the cap works. Place test orders, then match Shopify orders to the app limit before you announce the preorder. The over-limit test is a gate, not a nice-to-have. If checkout accepts one unit past the variant limit, pause the purchase option and do not open preorders until the app rejects that order.
- Order one unit of the variant. Confirm the product page shows pre-order details and the ship date you wrote down.
- At checkout, confirm the amount due now, any later balance, and the purchase-option confirmation. Pay with a normal card method, not Shop Pay, Apple Pay, or Google Pay.
- Open Orders. The test order should be unfulfilled. Use the Unpaid tab as well if you took a deposit or deferred the charge.
- If the app reserves at sale, available inventory should drop by one. If it reserves at fulfillment, available inventory will not drop. In that case, Shopify inventory will not enforce the cap. Check the app's remaining quantity for that variant instead.
- Try to buy one unit past the remaining-units limit on that same variant. Checkout must refuse it. If it accepts the order, the app is not enforcing the cap. Pause the purchase option, do not announce the preorder, and do not reopen it until a later test on that variant is refused.
- Cancel or refund the test order in Shopify, and cancel it in the pre-order app, so the test unit returns to remaining capacity.
Reconcile on a set day, and again the day a supplier message changes quantity or date. Open commitments equal unfulfilled preorder units for that variant, after cancellations you have also cancelled in the app. Recalculate the variant cap from the latest confirmed sellable incoming quantity. Remaining capacity equals that cap minus open commitments.
Do the check in two places. Filter Orders to Unfulfilled, and to Unpaid when payment is deferred. Then compare that unit count with the app's remaining limit for the same variant. A mismatch means one system accepted a sale the other did not count. Lower the live remaining-units limit to the smaller number until you find the gap, but only if that field counts units still left to sell. If the app field is a total ceiling, do not enter that smaller remaining number into it. If you cannot lower a variant-specific limit that checkout will honor, pause the purchase option.
You can edit an existing pre-order line, including quantity, but Shopify does not let you add a new pre-order product while editing an order. A customer who wants a second pre-order variant needs a new checkout. Count that new order against remaining capacity before you tell them to retry.
Pause preorders when supply or the date changes
Pause the purchase option the same day the confirmed quantity falls, the arrival date moves past the promise, remaining capacity hits zero, or the app stops enforcing the variant limit. Leaving the button up "until the email goes out" is how the cap gets breached.
- Supplier cuts the purchase order, or will not confirm a date you can defend.
- Remaining capacity is zero or below.
- The app cannot set a hard limit on that variant, or an over-limit checkout test is accepted.
- The app and the Orders list disagree, and you have not found the missing units.
- You cannot ship by the published date, even if a later date looks likely.
- A payment method you planned to use is one of the blocked accelerated or local methods, and checkout is failing.
If goods are not ready and the order is still unfulfilled, Shopify lets you hold fulfillment. Tell the customer when you do it. From Orders, open the unfulfilled order, open the menu in the Unfulfilled section, and click Hold fulfillment.
If the product is ready earlier than the deferred date, you can collect the remaining payment early. Shopify's guide says you can send an invoice or charge the stored card. The documented card path is Orders, open the order, and in Partially paid click Collect payment, then charge the stored card. A failed card can be updated from the customer profile with Send link to update card, or Replace card where that payment method allows it.
You can cancel a partially paid pre-order that has not been fulfilled. If it is already fulfilled, refund it instead of cancelling the order. A customer cancellation can still need a manual refund, and you may also need to cancel the order inside the pre-order app after the Shopify refund. Do both, or the cap will keep showing a unit you no longer owe.
Common mistakes
- Turning on Continue selling when out of stock and calling that a preorder. Inventory can go negative with no unit ceiling.
- Installing any app from the pre-order category and assuming it can cap a variant. Open preorders only after you confirm a hard per-variant limit and the over-limit checkout test fails.
- Counting an unconfirmed supplier promise as sellable units.
- Setting one cap on the product while variants have different incoming quantities, or using an app limit that is not attached to the variant.
- Subtracting open orders from the variant cap, then subtracting them again when you set the app limit.
- Entering remaining capacity into an app field that expects a total order ceiling, or entering the total ceiling into a field that counts units still left to sell.
- Assuming available inventory always drops at checkout. It drops only if the app reserves at sale. If the app reserves at fulfillment, Shopify inventory will not stop the next sale.
- Combining a pre-order with a subscription or try-before-you-buy on the same product in one checkout.
- Expecting Shop Pay, Apple Pay, Google Pay, Klarna, or Shop Promise to work on the pre-order.
- Publishing no date, then treating the 30-day belief rule as optional.
- Uninstalling the app without exporting open commitments. Pre-order data can be deleted after 48 hours.
- Adding a pre-order line during order edit. Shopify blocks that. The customer needs a new checkout, and that checkout must still fit remaining capacity.
- Sending a delay note after the original date has already passed.
- Treating silence as consent when the revised ship date is more than 30 days later than the original shipment deadline, or when you cannot give a definite date.
How to check the preorder worked
The setup is working when a stranger could buy the variant, understand the date and the charge, and still be unable to push the variant past the cap because the app refused the extra unit.
- The chosen app has a hard quantity limit set on that variant, not only on the product or in a note outside checkout.
- The product page shows pre-order details and the same ship date you stored with the cap.
- Checkout shows the amount due now, any later balance, and blocks payment until the customer confirms the purchase option.
- A test purchase of one unit past remaining capacity on that variant is refused. If it is accepted, the preorder is not open.
- The Orders list and the app report the same unfulfilled unit count for the variant.
- Remaining capacity equals the current variant cap minus those unfulfilled units. The variant cap itself is confirmed sellable incoming quantity, with open orders not already subtracted.
- A supplier date change produces a paused button, an updated date, and a customer notice before the old deadline.
On the next supplier update, recalculate the variant cap, then subtract open commitments, before you reopen the purchase option. Reopen it only if the app still enforces the new limit on that variant and a fresh over-limit checkout test is refused. If remaining capacity is zero or below, or the app cannot pass that test, keep the preorder paused and send the revised date or the cancellation option that day.