The Setting That Doesn't Stop Shopify's Multiple Shipping Emails
Turning off Prevent Split Shipping doesn't fix Shopify's multiple shipping emails. Here's what the toggle actually does and what actually helps.

Open a Shopify order that shipped in four boxes. Now open the customer timeline. Four separate shipping confirmations, four tracking links, four notifications landing over the course of an afternoon. That isn't a notification bug; that's the platform working exactly the way it was designed. The fix most merchants reach for first, the Prevent Split Shipping setting, doesn't touch it. We spent a week last month figuring out why, and the answer is more inconvenient than it sounds.
What we checked first
The order that triggered our chase was a wholesale one: 40 items, four boxes, two USPS and two UPS. The customer replied "did something go wrong?" within an hour of the first email hitting. Multiple shipping emails for one order looks like a mistake to buyers even when nothing is broken.
Our first move was the obvious one. In Shopify admin, Settings and Shipping and delivery, scroll to Order routing, and there's a toggle labeled Prevent Split Shipping. Turn it on. Refresh. Place a fresh test order that pulls from the same warehouse and fulfill it across two boxes.
Two emails still. The customer still saw the split. The toggle changed nothing about the notifications.
Why the toggle wasn't the fix
It took about an hour of reading community threads to pin down what the setting actually does. Prevent Split Shipping controls the customer-facing checkout UI. It decides whether a buyer whose cart pulls from more than one location sees an itemized split-shipping option at checkout. It does not touch the backend logic that assigns line items to fulfillment records after the order is placed, and it has nothing at all to say about how many notification emails go out per fulfillment.
A community member confirmed this directly in October 2025: turning the setting off "doesn't turn off the underlying logic for splitting orders based on fulfillment location." If two boxes go out from the same warehouse in a fulfillment split you initiated yourself in admin, the toggle is irrelevant. The toggle was never designed to fix multiple shipping emails at all. It was a checkout-display switch that merchants read as a backend switch, and the naming rewarded that misreading.
Worth flagging: this toggle is being deprecated. Shopify's market-driven shipping rollout removes it by July 1, 2027. If your fulfillment SOP includes the words "make sure Prevent Split Shipping is on," you have roughly ten months to swap in a replacement mechanism, whether that's an order-routing app or a checkout function on Plus.
Where the trail went cold
Once we knew the toggle wasn't going to help, we went hunting for a setting somewhere in admin that would kill the multiple shipping emails at the source. There isn't one.
We tried disabling and re-enabling the Shipping confirmation template under Settings and Notifications. That switches the email off entirely, not "on but grouped." We looked at the Order Fulfilled webhook, hoping we could catch fulfillments and hold notifications, but the webhook fires per fulfillment, so it doesn't help without a queue layer sitting above it. We opened Shopify Flow and searched every trigger and action for anything that read like "consolidate notifications." Nothing.
At this point the honest answer would have been "you can't." We wrote three paragraphs of an internal doc concluding as much before someone on the team asked whether the Fulfillment API might behave differently than the admin UI does. It does. We'd been looking in the wrong place.
The clue in the API docs
The GraphQL Fulfillment API accepts a flag we hadn't seen surfaced anywhere in admin: notifyCustomer (camelCase). Every call to fulfillmentCreateV2 can set it to true or false, and the behavior is exactly what we needed. false suppresses the customer email for that specific fulfillment. Set it to false on the first three boxes, true on the fourth, and the customer gets one email at the end containing the last tracking number.
There is a nasty gotcha here. The REST API's equivalent field is notify_customer (snake_case), and if you write GraphQL with the REST convention you get a field validation error. A Shopify Staff post from November 2023 flags exactly this confusion. If you write GraphQL against Shopify regularly, you already know. If you're a merchant or a contractor reaching for the API for the first time to solve this one specific problem, you will hit it.
The REST API has a second, deeper problem that ate a chunk of our week. Its documented tracking_numbers array field does not function. Submissions succeed, the order is marked fulfilled, and the tracking numbers never appear back in the response. A developer named RobertM reported this in August 2023, fscool confirmed the same behavior later that month, and Shopify support "has not been able to offer a solution." The GraphQL mutation fulfillmentCreateV2 does accept multiple tracking numbers in the trackingInfo array in a single call. A working example was posted by matt-cos in a May 2024 developer thread. If anything you write touches multi-box fulfillment, use GraphQL.
What it actually is
Once we saw the flag, the rest of the picture snapped into place. Shopify's fulfillment data model treats one fulfillment as one shipment with one carrier, and in the REST world, one tracking number. Every box is a separate fulfillment record. Every fulfillment record has its own default notification event. The multiple shipping emails aren't a bug or a misconfiguration; they are the direct output of the model when you ship one order in four boxes and don't override the default.
That's why no toggle fixes it. There is no toggle in admin that reaches into per-fulfillment notification behavior. The closest thing is an API flag, and API flags don't get admin surfaces on the schedule most merchants would want.
A community member in a July 2026 thread put the constraint the same way we ended up phrasing it: "The data model underneath is one fulfillment equals one shipment with one carrier." Once you accept that, the fix stops being "find the switch that turns off multiple emails" and becomes "find the layer that catches fulfillments before Shopify's default notification fires." That reframing is the entire investigation. Everything else follows.
What actually helped
For the merchant who flagged this, the answer was Shopify Flow rather than the API. They didn't have a developer on retainer, and the API path assumes you're already writing fulfillment calls in-house. Flow gave them a no-code way to suppress the native emails and send one consolidated notification when the last box shipped.
The setup, as they built it:
- In Settings and Notifications, turn off the Shipping confirmation template so Shopify stops sending anything automatically.
- In Shopify Flow, create a workflow triggered by "Order Fulfilled."
- Add a condition that verifies every line item on the order is fulfilled (belt and braces, since "Order Fulfilled" fires when the last item ships anyway).
- When the condition passes, trigger a single shipping notification through an integrated email app. FlowMail is free and works for this. Klaviyo works if you're already on it.
The catch is real and needs testing before you turn it on. The workflow only fires when the last box ships. If you intentionally ship in waves (pre-order today, in-stock next week, backorder next month), the customer gets no shipping communication at all until the very last shipment. For a wholesale merchant shipping a single order same-day across four boxes, that's the correct behavior. For a store that routinely splits an order across a week, this replaces "four confusing emails" with "silence, then one email late." Test with your actual fulfillment cadence, ideally with a coworker as the "customer," before rolling it out.
For merchants shipping on UPS or FedEx, there is a different and cleaner path. Both carriers natively support multi-piece shipments: one master tracking number, multiple physically separate packages, each individually scannable. Third-party apps like PluginHive and Multi Carrier Shipping Label expose this capability inside Shopify's fulfillment flow. The result is one fulfillment record with one tracking link, and the customer sees one email.
The trade-off is not small. These apps require your own direct carrier account, and the moment you install one, you lose access to Shopify Shipping's discounted rates, which can be 20 to 40 percent below retail. If Shopify Shipping is the load-bearing reason you're on your current plan, the math might not work in your favor. USPS, Canada Post, and Royal Mail have no equivalent multi-piece structure, so this path is UPS or FedEx only. SKUSavvy claims to consolidate multi-box orders under one tracking number too, but its own documentation notes that carrier support varies and we have not seen an independent thread that confirms which carriers work end-to-end. If you're evaluating it, treat the claim as unverified until you've tested it on your specific carrier and account.
The hardest variant of this whole problem is a single SKU that must ship in two boxes: a marimba with a separate frame box, a piece of furniture, an assembled instrument that exceeds one carrier's box limit. Shopify's split-fulfillment mechanism divides line items, but a qty:1 order of a single SKU has nothing to divide. A Shopify Staff member named BjornD acknowledged this specific blocker in September 2025: "We are very aware of the blocker when you only have a single SKU and it needs multiple boxes." No fix timeline was given. A third-party multi-carrier app can generate two labels at the label-purchase stage, but the checkout rate quoted to the customer will still reflect only one box, so you will systematically undercharge on shipping. One merchant selling large marimbas summarized the position in a March 2021 thread: "I am losing money on shipping." Six years later the position hasn't moved. If you sell inherently multi-box products, budget for a packing algorithm app like Boxify (US-based) on top of your multi-carrier setup, and expect to lose the Shopify Shipping discount to get it.
If your store looks like one of these cases and you can't tell which path is right for your carrier mix and volume, the first 15 minutes with a help1 expert is free and this is exactly the kind of thing that's faster with a second pair of eyes than another week of thread-reading. We keep a saved diagnostic for it because the root cause is always the same and only the right fix changes.
One clarification while we're here: the multiple shipping emails problem is not the same as tracking that goes stuck after fulfillment, where the tracking number is there but never updates. That one is a carrier-sync issue. This one is a data-model issue. Some stores have both; if you do, treat them as two separate investigations, because the fixes don't overlap.
Every year Shopify ships something that looks like it should quietly resolve this. Split-and-merge fulfillment in 2023, split shipping in checkout in 2024, market-driven shipping in 2026. None of them change the one-fulfillment-per-box constraint. Until the data model itself moves, the multiple shipping emails keep coming, and the toggle keeps not being the toggle.
Still stuck? Talk to an expert.
Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.