Why won't Shopify warn customers when their cart has both in-stock and backordered items?

Shopify has no native pop-up for this, but a combination of inventory settings, a cart-page note, and (optionally) a checkout extension can tell customers upfront that their order will ship in two batches.

inventorycheckoutbackordercartfulfillment

What's going on

A customer adds a shirt that's in stock and a jacket that's on backorder to the same cart, checks out normally, and only learns later — from a shipping confirmation email or a support ticket they filed themselves — that their order is arriving in two separate shipments weeks apart. Nothing in Shopify's default checkout flow tells them this is coming, which means the first time a customer learns about a split delivery is often after they've already paid.

This shows up constantly for merchants who run any kind of made-to-order, pre-order, or backorder inventory alongside regular in-stock items, because Shopify's cart and checkout were built around the assumption that everything in an order ships together. There's no default banner, no built-in delivery-date estimator that reacts to backorder status, and no checkout validation rule out of the box that says "warn the customer if line items have mismatched fulfillment timing."

The result is avoidable support volume and refund requests, plus a worse first impression than the merchant's actual fulfillment process deserves — the delay might be perfectly normal and expected, but silence at checkout makes it feel like something went wrong.

Why it happens

Shopify's core commerce model treats an order as one unit with one set of fulfillment timelines by default. Split-shipment and delivery-date-estimate features exist, but they're either merchant-configured (via apps, Flow automations, or theme customization) or tied to specific plans and fulfillment services rather than being a universal, automatic checkout behavior.

Inventory tracking and "Continue selling when out of stock" are per-variant settings designed to control whether a sale can happen at all, not to generate customer-facing messaging about when different items in the same order will ship. That gap between "can this be sold" and "does the customer know what to expect" is where the mixed-cart confusion lives, and closing it has historically required a theme edit or a checkout extension rather than a settings checkbox.

5 ways to fix it

1

Turn off "Continue selling when out of stock" for backordered variants and use in-stock/backorder labels on the product page

Shopify's built-in inventory setting is your first lever: on each variant's Inventory tab, "Continue selling when out of stock" controls whether an out-of-stock item can even be added to a cart. If you leave it on for backorderable items but off for everything else, customers already see "Sold out" language differently per item before checkout, and many themes (Dawn and its forks included) show distinct badges for tracked-but-empty inventory versus untracked availability. This doesn't build a warning banner for you, but it's the free foundation every other fix sits on top of, and it costs nothing to configure per product.

2

Add a cart-page banner that flags mixed shipments using tags or metafields

Because Shopify does not ship a native "this cart contains a mix of in-stock and backordered items" message, the most reliable no-cost route is a small theme edit: tag backorder-eligible products (e.g. "backorder") or store an inventory-status metafield, then add a snippet to your cart page/drawer that checks each line item and renders a plain-language note like "Your in-stock items ship in 1-2 days; backordered items ship separately when restocked." This works on every Shopify plan, not just Plus, and keeps the explanation where merchants actually have full control: the cart, before the customer reaches checkout.

3

Use a checkout UI extension for a true checkout-step warning

If you need the message to appear during checkout itself rather than on the cart page, checkout UI extensions (built with Shopify's checkout extensibility, available to apps on all Shopify plans since checkout.liquid was retired) can render a custom banner component that reads line-item inventory state and displays a split-delivery notice. This requires a small custom app or a developer to build the extension; it is not a settings toggle. Some deeper checkout validation/blocking functions are plan-gated, so confirm current eligibility for your store before committing to a build.

4

Automate an internal alert with Shopify Flow so staff catch mixed orders even without a customer-facing banner

If a customer-facing warning is more than you need right now, Shopify Flow (available on all plans, with more triggers on Plus) can watch for orders containing both tracked in-stock and zero-inventory line items and notify staff by email or Slack to manually reach out about the delivery split. It won't stop the customer from checking out unaware, but it closes the loop operationally with zero custom development.

5

Consider a dedicated backorder/pre-order app only if the cart-page and checkout-extension routes aren't enough

A handful of backorder- and pre-order-management apps exist specifically to badge products, split shipping, and show delivery-date messaging automatically across product, cart, and checkout. They're worth evaluating if you're managing this across a large catalog and don't want to maintain the theme snippet yourself, but for most stores the free cart-banner approach above solves the actual merchant complaint without adding another subscription.

Bottom line

There's no single Shopify setting that raises a mixed-cart backorder warning automatically, so the real fix is layered: get the "Continue selling when out of stock" toggle right per variant, then add a plain-language cart-page note (or a checkout UI extension if you need it later in the flow) that tells customers their order will arrive in two shipments. Native tools and a small theme edit solve this for most stores; a dedicated backorder app is only worth it if you're managing the messaging across a large, fast-changing catalog. This isn't a fit for a BesPoP app today, so treat this as a theme/ops fix rather than something to buy.

Still Stuck?

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.