How do I sell an item that's out of stock right now without lying to customers about it?
Shopify lets you keep selling out-of-stock items, but it won't call them a preorder or tell customers when they'll ship. Here's how to fix both.
What's going on
A merchant has inventory on the way but not in hand yet, and wants to keep accepting orders for it now rather than showing the product as sold out. The trouble is that Shopify's native tools for this are split across two different places: one setting controls whether the product can still be purchased at zero stock, and a separate, mostly manual set of steps controls whether the storefront tells the customer anything about that at all.
Left on default settings, a merchant who enables the inventory override gets exactly what they asked for technically, orders keep coming in, but the product page still reads as a normal, in-stock item. Customers have no way to know their order is a preorder, no ship-date expectation is set, and support tickets start arriving asking where the order is. The underlying problem isn't inventory tracking, it's that Shopify treats can still be sold and is clearly marked as delayed as two unrelated concerns.
Why it happens
Shopify's Continue selling when out of stock toggle exists purely to control checkout behavior at the inventory level, it decides whether an order can be placed when on-hand quantity is at or below zero, and it requires inventory tracking to be turned on in the first place. It was never designed to also change what the customer sees.
Storefront labeling is a theme-layer concern, not an inventory-layer one. The default sold-out text and button state are tied to whether stock is above zero, not to whether continue-selling is enabled, so a delayed item and a normal in-stock item render identically unless the merchant edits theme content or adds custom logic to detect the oversold state and change the label and messaging accordingly.
5 ways to fix it
Turn on "Continue selling when out of stock" (free, native)
In Shopify admin, open the product, and in the Inventory section make sure Track quantity is on, then check Continue selling when out of stock. This can be set per variant, so a backordered size or color can keep selling while others still show as sold out. Checkout will accept orders even at zero inventory, and the quantity is allowed to go negative so you can see exactly how many units you're oversold by. If you also sell in person, check how your point-of-sale setup handles the same variant, since in-store behavior for oversold items is not guaranteed to match online checkout.
Relabel the button so customers know it's a preorder
The setting above only stops Shopify from hiding the buy button, it does not change any wording, so shoppers still see a normal Add to cart button with no indication the item is delayed. The no-code fix is to edit your theme's default content and rename the sold-out label store-wide, for example to Back-ordered. For a button that only changes to Preorder on the specific items that are actually oversold, rather than every sold-out product, a developer can add a small check in the theme that looks at whether a variant is being tracked and sold past zero stock, then swaps the button text accordingly.
Add a truthful ship-estimate date near the buy button
Shopify has no built-in ships-on field, so an honest date needs to live somewhere the theme can display it: a metafield on the product or variant that shows next to the price, for example Ships by August 15. This keeps the promise specific and easy to audit instead of a vague coming soon, and it's simple to update in bulk through the admin's metafield editor or a CSV import when your supplier date shifts.
Use a dedicated preorder or backorder app for volume or partial payments
If you run preorders across many products, need automatic per-variant preorder caps, want partial or deposit payments, or need customers automatically tagged and emailed when the item ships, a purpose-built preorder app from the Shopify App Store can manage the label, cutoff dates, and messaging without custom theme code. This is worth the cost once preorders are a regular part of how you sell rather than a one-off.
If you truly cannot commit to a date, don't fake availability, use a waitlist
When you don't have a reliable ship date at all, it's more honest to leave the item marked sold out, with continue-selling off, and offer customers a way to be notified when stock returns, whether that's a simple email signup or a dedicated back-in-stock app. That way people are told the moment inventory is real instead of being sold something you can't commit to a delivery date for.
Bottom line
Continue selling when out of stock is the correct native switch to keep accepting orders on delayed inventory, but Shopify stops there, it will not label the item as a preorder or show a ship date, so without extra work a customer buying a backordered item sees the exact same page as one that's in stock. For a handful of products, a renamed sold-out label plus a metafield-driven ship date covers it for free. Once preorders become a regular part of how you sell, a dedicated preorder app is usually the faster path than maintaining custom theme code.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.