How Pre-Orders Work
What actually happens behind the scenes when you run a pre-order: how it is powered, when it shows, how customers are charged, when it ships, and how stock is handled. This is the concept behind the settings in the Pre-Order article, written so you understand the mechanics without needing to be technical. The pre-order Feature settings are reusable building blocks, this article gives the overview and links to a dedicated article for each.
How a pre-order is powered
Every Timesact pre-order runs on Shopify's own built-in way of selling a product on different terms than a normal sale, here it means buy now and receive later.
You do not set up or manage any of this yourself. When you turn on Pre-Order in a customer experience template, Timesact creates it automatically and attaches it to the products you assign. The terms you choose, how the customer is charged, when the item ships, and any discount, are written into it. When the pre-order actually shows on the storefront is decided separately by Timesact (see Stock Management below).
On the storefront, when a shopper adds a pre-order item to the cart, Timesact attaches the pre-order terms to that cart line. That attachment is what tells Shopify to treat the order as a pre-order at checkout, to defer fulfillment and apply your payment terms. If it is not attached, the item is sold as a normal product, charged in full and shipped immediately.
The building blocks
The pre-order Feature settings are made of reusable blocks. Each one has its own article with the full options and scenarios:
- Stock Management decides when the pre-order shows, per variant, based on the variant's Shopify stock (out of stock, regardless of levels, or only when inventory is available), and drives the Active vs Pending status. See Stock management.
- Shipping date sets when the customer is told the item ships (as soon as possible, an exact date, a period, or an interval). See Shipping dates.
- Billing decides how and when the customer is charged: full amount at checkout, or a partial payment with 0, a percentage, or a fixed amount upfront and the balance collected later. This is also where the optional pre-order discount lives. See Billing and Partial Payments.
- Inventory and fulfillment covers when inventory is reserved (on sale vs on fulfillment), the Continue selling toggle that keeps out-of-stock items buyable, and deferred fulfillment. See Inventory and Fulfillment.
- Pre-order limit caps how many pre-orders you accept before the button reverts to normal. See Pre-Order Limit.
The full lifecycle, end to end
- You turn on Pre-Order in a customer experience template and assign products. Timesact sets up the pre-order and applies your settings (stock mode, shipping date, billing, discount, inventory policy).
- A shopper visits a variant whose stock condition is met, so its status is Active and the storefront shows the Pre-Order button, along with the shipping date and any payment option.
- They add it to cart, and Timesact attaches the pre-order terms to the line.
- At checkout Shopify charges the full amount, or the deposit, or nothing, depending on your billing setting, and stores the payment method when a balance remains.
- The order is created with deferred fulfillment, the shipping date, and (for partial) payment terms for the balance.
- If partial, the remaining balance is collected later per the order's payment terms, automatically where your payment provider supports it, otherwise by invoice.
- When your stock arrives, you fulfill the order like any normal order.
Known limitations
- B2B and wholesale: Shopify does not support this kind of pre-order (the same applies to subscriptions and Try Before You Buy) on B2B orders, so pre-orders cannot run on a B2B or wholesale checkout, even though they work for your regular customers. If you need B2B customers to place pre-orders, contact support: we can move your store to our Legacy pre-order flow, which runs pre-orders without the purchase option so B2B checkouts go through, with the trade-off that the pre-order is charged in full at checkout and orders arrive as Unfulfilled rather than Scheduled.
- Automatic balance collection depends on your payment provider supporting deferred capture, in practice Shopify Payments. Where it does not, you collect the balance by invoice.
- Pre-orders are not available through Shopify POS, on draft orders, or with certain local payment methods, these are Shopify platform constraints.
- If the pre-order terms are not attached at add-to-cart (for example when another app or widget intercepts the add-to-cart, or when a shopper checks out with a native dynamic checkout button such as Buy it Now or Shop Pay), the item is sold as a normal product. See Testing and Troubleshooting.
- Shop App and other sales channels: pre-orders run only on your Online Store. On the Shop App, Facebook and Instagram Shop, and other feed-based channels, the pre-order button, the shipping and payment terms, and the pre-order messaging do not appear, so a shopper there can buy the item on normal terms with the channel's normal delivery expectations, and the order will not carry your pre-order terms. Timesact cannot add or remove a product from a sales channel for you, and cannot switch a channel on or off based on stock, channel availability is controlled in Shopify. If you would rather a pre-order item not sell on the Shop App, open Shopify admin → Products, open the product, and remove the Shop channel from its availability (leave Online Store on), then re-add it when the item is back in stock.
Learn more
- For the step-by-step setup of all of the above, see the Pre-Order article.
- For the agreement message Shopify shows at checkout on deferred or partial pre-orders, see Billing and Partial Payments.
- For the delivery estimate and rates shown at checkout, see Shipping Profiles and Locations.
- For collecting and managing the deferred balance on the Shopify side, see Shopify's guide: Managing orders with deferred payments.
- For which payment methods work with pre-orders, see Billing and Partial Payments.
Updated on: 07/13/2026
Thank you!