Blog

Shopify Fulfillment Method Conflict Explained

2026-05-26 · BopiSafe Team

Shopify checkout assumes one delivery method applies to every item in a cart — and when a cart mixes pickup-only items with shippable items, no single method satisfies both. This is not a bug or a missing setting. It is a deliberate design choice baked into Shopify’s checkout architecture, and understanding it is the first step to fixing it.

This post is for merchants and operations managers. No API terminology, no code, no configuration instructions — just a plain-language explanation of the architecture and what to do about it.

What does “single delivery method” actually mean?

When a customer reaches Shopify checkout, the platform asks a straightforward question: what is the delivery method for this order?

The customer selects one answer: ship to this address, or pick up at this store. That decision applies to every line item in the cart. Shopify uses it to calculate shipping rates, determine which fulfillment locations can handle the order, generate the correct tax, and route the order to the right team.

The simplicity is intentional. One delivery method means one clear fulfillment instruction. The warehouse knows exactly what to pick and where to send it. The store knows exactly which orders to stage for pickup. Tax is calculated against one address. Payment is captured against one order.

This model works flawlessly for the vast majority of Shopify orders, which are either shipped or picked up — not both. The problem only surfaces when your product catalog has items that live in different fulfillment categories.

A pickup-only sofa can only be collected at a store. A shippable throw pillow can be shipped anywhere. When both are in the same cart and the customer reaches checkout, Shopify searches for a single delivery method that satisfies both items. There is none. The checkout fails.

Why is this an architectural choice and not a bug?

It helps to understand what solving this natively would require.

A checkout that handles both pickup and shipping for the same order must simultaneously:

Each of these is solvable individually. Solving all of them together, reliably, across Shopify’s entire merchant base, for every combination of products and locations, is genuinely complex infrastructure work.

Shopify made a practical choice: optimize the checkout for the common case (single delivery method), which represents the overwhelming majority of orders, rather than building a complex multi-fulfillment architecture that most merchants will never need.

The error merchants experience is the checkout doing exactly what it was designed to do — protecting the integrity of the fulfillment model it was built on. The design simply was not built with mixed-fulfillment merchants in mind as a primary use case.

For the specific checkout error that results from this conflict, see Shopify Checkout Error Mixed Cart Fix.

Who is actually affected by this constraint?

The merchants who feel this constraint most acutely are those in categories where product size, perishability, or regulation makes some items pickup-only while others are routinely shipped.

Furniture and large home goods. A sectional sofa cannot economically ship with standard carriers. It is a pickup item. A matching throw pillow ships in a standard box. Mixed carts are the rule in this category, not the exception.

Wine, spirits, and age-regulated goods. Some markets require in-store pickup for regulated items. A customer buying a case of wine plus a bottle opener has a mixed cart. The wine is pickup-only in jurisdictions with regulated delivery.

Garden and outdoor supplies. Live plants and large trees are pickup-only. Soil, pots, and garden tools ship normally. A single garden project often requires both.

Grocery and meal kits. Perishables may require in-store pickup while pantry items can ship. A customer who shops both categories in one session creates a mixed cart.

In all these cases, the customer’s natural shopping behavior — adding what they want without thinking about fulfillment logistics — produces a cart that has no single fulfillment method fitting all of it. The conflict is not the customer’s fault and not the merchant’s fault. It sits between how customers naturally shop and the one-method-per-order model the checkout is designed around.

Does Shopify Plus solve this?

Shopify Plus gives merchants deeper access to checkout customization. On Plus, you can modify the checkout experience, add custom fields, and build checkout extensions that change how the payment flow looks and behaves.

But Plus does not remove the single-delivery-method constraint. On Plus, a checkout still cannot natively route different line items to different fulfillment methods in the same order. A Plus merchant hitting this conflict has the same architectural problem as a Basic merchant — they just have more tools to build a polished workaround.

The Shopify developer documentation is explicit on this point: checkout customization extends the checkout UI and logic, but the underlying order model is unchanged. One order, one fulfillment method.

This matters because some merchants assume that upgrading to Plus will fix the problem. It will not. What Plus enables is a more polished version of the workaround — a smoother split-checkout flow, more control over the UI, and better error handling. The split is still necessary.

The three responses to this constraint

Once a merchant understands the constraint, they have three ways to respond.

Accept the error. Do nothing. Customers who build a mixed cart hit the checkout error and either figure out how to separate their items manually or abandon. For merchants with very low pickup volume (under 10 mixed carts per month), this is sometimes a deliberate choice. The cost is low enough to accept.

Block the mixed cart. Add a cart-page warning that disables checkout for mixed carts and asks the customer to split manually. This prevents the raw error but pushes friction onto the customer. Research consistently shows 15–25% of customers abandon rather than complete two manual checkouts.

Split the cart into two native checkouts. Detect the conflict automatically, group items by fulfillment type, and walk the customer through two coordinated Shopify checkouts. Each checkout sees only one fulfillment type, satisfying the single-delivery-method constraint for each. The customer experiences one slightly longer checkout rather than a confusing error.

The trade-offs:

ResponseCustomer experienceRevenue recoveryImplementation cost
Accept the errorPoor — generic checkout errorNoneNone
Block at cart pageFriction — manual split requiredPartial (15-25% abandon)Low
Split into two native checkoutsGood — guided, coordinatedHigh (under 5% incremental drop)App or custom build

For a store doing 200 mixed carts per month at an average $80 cart value, the difference between blocking and splitting is roughly $4,800–$6,400 per month in recovered orders. That math is why the split is worth building or buying.

Why draft orders are the wrong approach

Some merchants discover the split-checkout concept and implement it using Shopify’s draft order API — creating manual invoices for the pickup group and sending them to the customer via email.

This solves the checkout error, but it creates a different set of problems:

The old approach to mixed-cart management in the Shopify ecosystem — before apps like BopiSafe — leaned on draft orders. It was the only tool available. The result was an experience that looked like a workaround rather than a checkout, because it was.

The correct implementation sends each fulfillment group through a real native Shopify checkout, which is what preserves Shop Pay support, real-time inventory checks, accurate tax, and standard fulfillment routing. Shopify’s checkout architecture documentation outlines how Checkout UI Extensions can be used to build on top of native checkout — which is the layer a proper split-checkout app operates on.

What happens when both checkouts need to succeed or fail together?

One of the harder engineering problems in split checkout is atomicity — ensuring that a customer who completes the first checkout (say, the pickup group) but whose second checkout (shipping group) fails is not left with one live order and one abandoned cart.

Without proper handling:

Good split checkout implementations handle this by either holding the first order in a pending state until the second confirms, or by immediately triggering a refund on the first order if the second fails. The customer is notified clearly of what happened and why.

BopiSafe handles this coordination as part of the Smart Split flow. Both checkouts are real native Shopify checkouts. If the second fails, the flow surfaces a clear message and the first order is managed accordingly. Neither group is left in a broken state.

For merchants building custom solutions, this failure-handling is often the piece that is underestimated in initial scoping. It requires genuine coordination logic, not just two sequential checkout links.

There is also a customer-communication layer that often gets skipped. A split-checkout flow generates two order confirmations, two ready-state notifications, and two tracking flows — and when those land in the customer’s inbox without coordination, the customer reads them as a duplicate charge. The right pattern collapses the messaging: one combined confirmation that lists both order numbers, then mode-specific updates only when meaningful (pickup-ready for the pickup group, shipping label scanned for the shipping group). Merchants who underestimate this layer see their support volume rise even when the split itself worked cleanly. The technical correctness of the split and the perceived correctness to the customer are two separate problems, and both must be solved.

The broader takeaway for merchants

The fulfillment method conflict is not going to be resolved natively by Shopify in the near term. The platform’s architecture is designed for single-delivery-method orders, and that design underpins too much of Shopify’s checkout reliability to change casually.

For merchants who need mixed fulfillment — and in furniture, garden, regulated goods, and grocery categories, that is most merchants — the path forward is to work within the constraint. Detect the conflict early (at the cart, not the checkout), group items correctly, and send each group through its own native checkout.

Done right, the experience is seamless for the customer. Done poorly — via blocking, manual draft orders, or a cart-page warning that express checkout bypasses — it leaks orders every day.

The fulfillment method conflict is also why BopiSafe exists. It is an infrastructure problem that requires an infrastructure solution. See Why Shopify’s Default BOPIS Fails for the fuller picture of how native Shopify handles BOPIS and where the one-method-per-order model needs an app to cover the mixed-cart case. For the specific checkout error customers see, see Shopify Checkout Error Mixed Cart Fix.

The Shopify Help Center on delivery settings describes how delivery methods are configured at the store level — a useful reference for understanding the configuration surface that produces this constraint.

Written by the BopiSafe team — we build BOPIS infrastructure for Shopify merchants.

Next steps

Frequently asked questions

What is a Shopify fulfillment method conflict?

A fulfillment method conflict happens when a Shopify cart contains items that require different, incompatible delivery options — for example, a pickup-only item that can only be collected in-store alongside a shippable item that needs a shipping address. Shopify's checkout is built around a single delivery decision per order, so by design one checkout doesn't route different line items through different delivery methods. The result is a checkout error or incorrectly routed order.

Is the Shopify fulfillment method conflict a bug?

No. It is a deliberate architectural choice. Shopify's checkout model assumes one delivery method applies to the whole cart. This simplification makes the checkout reliable and consistent for the vast majority of orders, which are either all-shipping or all-pickup. Mixed-fulfillment carts are a minority case the model doesn't cover by design. Merchants who need it work with the one-method-per-order model by splitting the cart into separate native checkouts.

Can Shopify Plus fix the fulfillment method conflict?

Shopify Plus gives merchants more checkout customization tools, but it does not remove the single-delivery-method constraint. Even on Plus, a checkout cannot natively route a pickup-only item to a store and a shippable item to a warehouse in the same order. Plus merchants can build more polished experiences around a split checkout, but the underlying architecture is the same.

Why did Shopify build checkout this way?

The single-delivery-method model simplifies tax calculation, payment capture, and fulfillment routing enormously. Processing an order with a single delivery address (or single pickup location) is straightforward. Processing an order that simultaneously routes to a warehouse and a store requires splitting fulfillment, potentially splitting tax liability, coordinating two physical flows, and handling the case where one leg fails while the other succeeds. Most Shopify merchants do not need this complexity, so the platform optimized for the common case.

What happens to discount codes and gift cards when the cart is split?

When a cart is split into two native Shopify checkouts — one per fulfillment group — discount codes and gift cards can be applied to each checkout independently. The key is that both checkouts are real native Shopify checkouts, not draft orders or manual invoices. Native checkout preserves the full discount and payment logic. Draft-order workarounds do not.

Does Shopify plan to fix the fulfillment method conflict natively?

The one-method-per-order model is a deliberate part of Shopify's checkout design, and as of 2026 the platform's direction is that merchants who need mixed-fulfillment support build it with apps or custom checkout extensions. The practical expectation for most merchants is that an app that works with the model — splitting into separate native checkouts — is the reliable path.

How does splitting into two checkouts solve the fulfillment conflict?

Splitting separates the conflicting item types into two carts, each of which contains only one fulfillment type. Each cart then goes through its own native Shopify checkout, where the single-delivery-method constraint is satisfied — pickup items through a pickup checkout, shippable items through a shipping checkout. There is no conflict because neither checkout ever sees both types at once.

What is the difference between blocking a mixed cart and splitting it?

Blocking a mixed cart prevents checkout but does not recover the order — the customer has to split their cart manually and is likely to abandon. Splitting the cart does the separation work for the customer and walks them through two coordinated checkouts. Both approaches remove the fulfillment conflict, but only splitting actually saves the revenue.

Want pickup that doesn't break? See how BopiSafe works →

New to BopiSafe? Use code BOPISAFE30 at plan selection for a 30-day free trial instead of 14.