Stop pre-order and in-stock items being bought together
A customer buys a pre-order item and something you have on the shelf, and now the whole order waits — or ships twice at your expense. Shopify cannot natively stop the combination, and the setting that looks like it should is not what it appears to be.
Before anything else, work out which of these three you actually want, because they need different solutions and most articles blur them together:
- Block it. The customer cannot put both things in one order. They check out twice.
- Split it. Let them buy both, then handle it as two separate deliveries.
- Hold it. Let them buy both, and deliberately keep everything together until the whole order is ready.
The third is the exact opposite of the second, and both are asked for by real merchants with the same words. Get this wrong and you will buy the wrong tool.
Shopify staff have confirmed there is no native way to block a combination: "it's not possible to natively prevent two products from being ordered together" (26 March 2024). Splitting into two separate orders is not possible at checkout either. Holding everything together is possible, free, and almost nobody writes about it.
First: the setting that does not do what it says
Shopify has a split shipping toggle. Turning it off does not stop your orders splitting.
One merchant found this the hard way:
I have 2 warehouse Locations. NY and NV. My ERP system can't handle a single transactions shipping from 2 warehouse. I have "Split shipping" turned off. But some customers when the items are not available at a single location still are able to checkout with an order that's split. I contacted Shopify Support and they said to prevent it I would need a 3rd part App.
— Kastnerd, 14 October 2025
Two separate people confirmed the reason in that thread. The toggle only changes how delivery options are presented at checkout; it does not touch how Shopify allocates inventory across locations. As one put it: "Split shipping being turned off doesn't turn off the underlying logic for splitting orders based on fulfillment location."
If you have turned that toggle off and assumed the problem is handled, it is worth checking a real order before you rely on it.
What this costs
The clearest description of the pre-order case came from a merchant in 2022, and the part worth noting is that they had already tried the obvious answer:
Even though you tell your customers to place separate orders and warn them that orders with both in-stock and pre-order items won't ship until all items are available, they don't listen. Then the flock of emails come in demanding their in-stock items now.
— Thegachamart, 8 December 2022
Warning customers does not work. That is the finding, from someone who tried it.
It also happens between pre-order items, not just against in-stock ones:
if a customer purchases 5 pre order items and they all have ship dates separated by weeks or months then the customer gets mad that the pre orders that come in stock early don't get shipped until ALL pre order items ready to ship.
— Ryan871, 31 July 2024
And a merchant asking Shopify to let them stop the splitting reported that close to half of the customers charged for a split shipment then emailed asking for a single delivery and a refund. Their case was straightforward: "Small businesses cannot absorb the cost of multiple shipments per order."
There is a warehouse-side motive too, and it is the reason a lot of merchants want a block rather than a split:
This is so that we can move in stock items out of the warehouse rather than hold onto them until pre order stock arrives.
— David_Cain, 11 August 2021
Route 1 — Block the combination
There is exactly one mechanism that genuinely blocks, and the difference between it and everything else decides whether your rule holds.
Checkout validation functions. These run on Shopify's servers rather than in your theme. Shopify's documentation states they "can block checkout progress when business rules aren't met", and — this is the part that matters — they apply on the cart page, in checkout, and in express checkouts: Shop Pay, PayPal, Google Pay and Apple Pay. They can read your cart lines, variants and product metafields, so "these two tags cannot be in one order" is directly expressible.
Two limits worth knowing before you plan around it: a store can have 25 active validations, and functions do not apply to the point of sale, to orders created through the API, or to subscription orders.
And here is the rule no competing page publishes. Any Shopify plan can use a public App Store app containing functions. Only Shopify Plus stores can use a custom app containing functions. So the same mechanism is available to everyone through the App Store, and restricted to Plus if a developer builds it for you privately. If you are getting a quote for custom work on a standard plan, that distinction is the first question to ask.
What does not hold: theme scripts. Most cheap advice — and one of the better-known pre-order apps — blocks at the moment the item is added to the cart. That vendor is admirably honest about it in their own documentation: "The restriction only checks at the time of adding items" — which means it does not stop a checkout that is already in progress, and it does not survive the express payment buttons at all. A customer who taps Shop Pay walks straight through.
Blocking apps in this space run roughly $4–9/month.
Not sure whether blocking or splitting is your problem? Describe the basket and we build the rule it needs →
Route 2 — Split the order
Here is the answer nobody on the first page of Google gives correctly.
You cannot split a purchase into two orders at checkout. Shopify's native split shipping produces one order with several shipments. Its documentation is explicit that "a customer can't choose how the products in their cart are split", and pre-order items are one of the things that trigger the split automatically.
Two caveats that matter operationally: split shipping does not work through accelerated checkout buttons, and it does not apply to B2B checkout.
After the order exists, you can split fulfilment — Shopify added split and merge in July 2023 — but that divides shipments within one order. It does not create a second order.
Genuine order-splitting is app territory, and it has a specific failure that matters here: those apps operate after payment, and pre-orders often use deferred payment, so they break on exactly the case you bought them for. A merchant hit it directly: "I also can't split order because Shopify doesn't allow such tools on deferred payments."
One workaround has been tested and refuted. The commonly suggested trick — put pre-orders in a separate location with their own shipping profile — was tried by an app vendor who reported back: "It doesn't allow you to charge shipping for pre-orders and in-stock items separately." It lets you charge a blended rate. It does not separate anything.
The same vendor offered the honest conclusion, which is worth more than the workaround: if you are going to ship twice, stop discounting pre-orders and price the second shipment in.
Route 3 — Hold everything together
This is the least-written-about option and, for the merchants in camp three, the right one. It is also free.
Use Shopify Flow: when an order is created carrying a pre-order tag, hold all fulfilment orders. Everything then ships as one delivery when the last item lands. A merchant tested this and confirmed it working on a live store.
Two things to check before relying on it. It holds the whole order — the in-stock items wait too, which is exactly what camp one is trying to avoid, so be sure which camp you are in. And if a third party or external warehouse imports your orders, a held order may still be visible to them and get shipped anyway; one merchant named that as their specific worry.
Want in-stock items to leave while the rest waits? Describe what should ship now and we build it →
The four options, side by side
| Approach | Mechanism | Holds in express checkout? | Cost |
|---|---|---|---|
| Warn the customer | Text on the page | No — nothing stops them | Free, and it does not work |
| Block at add-to-cart | Theme script or app | No | ~$4–9/month |
| Block at checkout | Validation function | Yes | ~$4–9/month via an App Store app; custom builds need Plus |
| Split into two orders | Not possible at checkout | — | App splits after payment; breaks on deferred payment |
| Split the shipments | Native split shipping | No — bypassed by express buttons | Free |
| Hold it all together | Shopify Flow | n/a | Free |
| Price it in | Shipping rates | n/a | Free, and honest |
Note the pattern in the third column. The only thing that holds when a customer uses Shop Pay or Apple Pay is a validation function. Everything cheaper leaks, and nothing else in this space says so.
A gap worth knowing about
Pre-orders are not a native Shopify feature. They come from an app, and Shopify's own documentation warns that removing that app destroys your pre-order data within 48 hours.
That is worth sitting with, because it explains the whole mess: the pre-order behaviour comes from one vendor, the splitting comes from Shopify, the blocking comes from a second vendor, and none of them owns the interaction. One merchant asked their pre-order vendor about mixed orders and got the honest answer: "they say they have no control over this side of the transaction."
Which route is yours
| Your situation | Route |
|---|---|
| In-stock items must leave the warehouse now | Block the combination — validation function |
| Customers use Shop Pay or Apple Pay | Validation function, or it will leak |
| You would rather ship twice than hold stock | Split shipments, and price it in |
| You cannot absorb a second shipment | Hold everything with Flow, free |
| Your warehouse or accounting system cannot take a split order | Block at checkout — the toggle will not do it |
| Pre-orders on deferred payment | Splitting apps will not work; block or hold |
| Different goods must not travel together for a real-world reason | Block, and test with an express checkout button |
A fourth option: the rule written the way you say it
Everything above is one of four generic shapes. If your rule fits one, an App Store app will do it for a few pounds a month and you should buy it — this is a category where cheap apps genuinely work, provided you pick one that validates at checkout rather than at add-to-cart.
Shopivibe is the fourth option: the rule in your own words, built for your store and kept working.
Blocking the combination. You describe it — "a pre-order item and an in-stock item cannot be in the same order" — and that is what gets built, with the message the customer sees written in your words rather than a vendor's. It holds where the table above says it has to, express checkout included.
And the same rule can watch for the mixture instead, when you would rather take the sale. When an order arrives containing both a pre-order item and something that is not a pre-order, Shopivibe marks that order in your Shopify admin and emails you. What counts as a pre-order is read off your own records — the shared code in your SKUs, the supplier, the product name — rather than a convention we ask you to adopt.
Two details, because they are the ones that decide whether this is useful to you:
- It fires on the mixture, not on the presence. An order of nothing but pre-orders is an order you are perfectly happy to take, and it stays quiet for those. A rule that simply looked for "contains a pre-order" would flag every clean pre-order basket you get, which is worse than nothing.
- What you get is the order in front of you, named and marked, early enough to hold it, split the fulfilment, or call the customer — which is what the merchants quoted at the top of this page said they needed and were doing by hand.
Be straight about the comparison. If your rule is one of the four generic shapes above, a $4–9/month app that validates at checkout does it and you should buy it.
The maths changes when the rule is not a generic shape. Which suppliers can go on one delivery note. A cut-off after which today's fresh items cannot join a scheduled order. Rules that differ per customer group, per delivery route, or that change every week. Those are not settings in anyone's app; they are a rule of yours. Describe it in your own words, and a person here takes it on straight away and has it working in your store within 24 hours.
And be honest about which camp you are in first. A surprising number of merchants in these threads bought a tool for splitting when what they wanted was holding, or blocked a combination when pricing the second shipment in would have kept the sale. The cheapest fix here is often working out what you actually want.
Shopivibe solves the problem in your store and keeps what it adds maintained, including when Shopify changes something underneath. Shopivibe is free during early access, with 3,500 credits included. Credits beyond the included 3,500 cost $0.06 each.
Need it blocked at checkout rather than caught after? Describe it in your own words →
Checked against Shopify's documentation and the App Store on 29 July 2026.