How do I stop pre-orders from shipping before the stock arrives?
Updated · SMART Preorder & Back in stock (E-TRADE PARTNER)
Set the campaign's Fulfillment to On hold on its Settings tab. Seconds after checkout the app puts each fulfillment order with a pre-order item on hold in Shopify, and Shopify blocks fulfillment until the hold is released. Deposit orders are released when the balance is paid, full-payment orders with a specific ship date on that date, and the rest when you release them.
SMART Preorder & Back in stock is a free Shopify app for pre-orders, deposits, and back-in-stock alerts.
Try it freeOn this page
Unfulfilled or On hold
| Fulfillment status for pre-orders | What happens |
|---|---|
| Unfulfilled (default) | Pre-orders land in your orders like any other order, ready to fulfill. Nothing is held. |
| On hold | Shopify puts pre-orders on hold so nobody ships them early. Release them when the stock arrives, or let the app release them (below). |
To change it, open the campaign, go to the Settings tab, and pick the option under Fulfillment in the Orders card. It applies to new orders only; orders placed before keep their status.
What gets held
- Each fulfillment order that contains a pre-order item, with Shopify hold reason "Inventory out of stock" and the note "Pre-order".
- In-stock items that Shopify put in a separate fulfillment order stay ready to ship. If Shopify puts both in one fulfillment order, all of it is held.
- While held, Shopify blocks fulfillment until the hold is released, and the order leaves the Unfulfilled list in your admin (Shopify Help Center).
Campaigns with a specific ship date
- With Ships on a specific date in the Delivery card, Shopify itself schedules the order: its status is Scheduled until that date, and it becomes ready to fulfill on the date.
- Shopify doesn't accept a hold on a scheduled order. So for On hold campaigns, if a deposit balance is still owed on the ship date, the app holds the order on that date (reason "Awaiting payment") until the balance is paid.
- To change when scheduled orders become ready, use the Change fulfillment date bulk action on the Orders tab.
When holds are released
| Order | Released |
|---|---|
| Deposit, any delivery option | When the balance is paid: by the app's charge, the customer's payment link, or a payment marked in Shopify. Even after the ship date, an unpaid deposit stays held. |
| Full payment, Ships on a specific date | On that date. The app checks every 15 minutes. |
| Full payment, Ships as soon as possible, a set window, or Ship date not known yet | Not automatically. Release them yourself when the stock arrives. |
| Cancelled | Shopify closes the fulfillment orders; nothing to release. |
Ways to release yourself: Release for fulfillment on the order page (under More actions) or as a bulk action on the Orders tab, Shopify's own Release hold on the order, or the Shopify Flow action Release pre-order holds. Releasing an order that still owes its balance lets you ship before it's collected; the app warns you first. Release for fulfillment also makes scheduled orders ready now. The app releases only its own holds: holds from other apps or your team stay. Restocking the product releases nothing by itself.
Working with a 3PL or fulfillment app
- Holds work at fulfillment service (3PL) locations too: the app can hold and release those fulfillment orders.
- The hold lands seconds after Shopify creates the order. If no fulfillment order is visible yet, the app tries again every 15 minutes.
- A 3PL that imports orders the instant they're created can take one before the hold lands. Ask your 3PL to delay imports a little, or to skip orders tagged "Pre-order". The tag is added seconds after the order is created and never removed, so it's safe to filter on.
- Use Deduct inventory: When the order is fulfilled (Settings tab > Orders > Inventory) if you don't want pre-orders to lower your stock until they ship.
Rules and edge cases
- On hold can't be combined with collecting the balance When you fulfill the order: the hold would block the fulfillment that triggers the charge. The editor refuses that save.
- A mixed cart can create two fulfillment orders, one held and one ready. How shipping is charged then depends on your delivery profiles. See Mixed carts.
- Fulfilling a pre-order in Shopify marks it fulfilled in the app. Partly fulfilled orders stay open, and customers can't cancel them themselves.
Ship pre-orders only when they're ready
Automatic Shopify fulfillment holds, released when the balance is paid or the ship date arrives. Free on the Shopify App Store.
Install free on ShopifyFrequently asked questions
›My 3PL shipped a pre-order before the stock arrived. How do I stop that?
Set the campaign's Fulfillment to On hold, then ask your 3PL to skip or delay orders tagged Pre-order. Fast importers can pick an order up in the seconds before the hold lands.
›I restocked the product. Why are the pre-orders still on hold?
Restocking doesn't release holds. Full-payment orders without a specific ship date wait for you: select them on the Orders tab (the On hold tab helps) and use Release for fulfillment.
›Will the app release a hold another app placed?
No. It releases only the holds it placed, by their Shopify hold IDs. Other apps' and manual holds stay until they're released separately.