Fix WooCommerce Mixed-Cart Payment Conflicts
Troubleshooting guide: resolve mixed-cart payment gateway conflicts in WooCommerce, hide invalid methods at checkout and recover lost B2B orders.

A customer adds two products to the cart and the payment step shows only one method, or none at all. With payment gateway per product rules that is not a random bug: it is the combined rule of everything in the cart. This troubleshooting guide explains how a mixed cart is resolved, why checkout sometimes ends up empty, and how to fix it without losing orders.
If you have not set up per-product gateways yet, start with the complete setup guide and come back here when a combination of products behaves in a way you did not expect.
How a mixed cart is resolved
WooCommerce Payment Gateway Per Product looks at every product in the cart and applies one rule: only the gateways that all products with a selection allow stay available. Technically that is the intersection of the selections.
- A product with no gateways ticked does not restrict anything. It simply does not take part.
- A product with gateways ticked acts as a whitelist: every gateway that is not ticked is hidden while that product is in the cart.
- The plugin only removes gateways. It never adds one that WooCommerce has already hidden or disabled.
| Product A allows | Product B allows | Checkout shows |
|---|---|---|
| Stripe, PayPal | Stripe | Stripe |
| Stripe, PayPal | Nothing ticked | Stripe, PayPal |
| Stripe | PayPal | Nothing from the rules, so your fallback gateway if you set one |
Symptom: checkout shows no payment method
When the payment step is empty, one of three things is almost always going on:
- The selections do not overlap. The last row in the table above: no gateway is allowed by every product.
- A ticked gateway is not available in WooCommerce. It is disabled under WooCommerce → Settings → Payments, or it does not apply to the customer's country, currency or cart total.
- A product-level selection overrides your category or tag rule (see below), so the rule you were testing is never reached.
To diagnose it, test each product in the cart on its own first. Then open the product edit screen and look at the Choose payment gateway box in the sidebar. Finally check that every gateway you ticked is enabled in WooCommerce and available for the test address.
Fix 1: choose a fallback gateway
Open the plugin's Default Gateway tab and pick a fallback gateway. If the combined rules leave nothing, checkout shows that gateway instead of an empty payment step. Choose a method that your whole catalog can use, such as your main card processor or bank transfer. The Premium version also lets you choose what happens when no rule matches: show the default gateway or no payment methods at all.
Fix 2: keep one shared gateway on every product
The most reliable cure is structural. Tick at least one gateway that every product allows. With a shared gateway, any mix of products has a non-empty result, so the cart can always be paid.
Fix 3: keep catalogs apart that must not mix
Take a stationery store. Retail products are paid by card or iDEAL. Wholesale merchandise is paid on invoice with a 14-day term, so only the wholesale products have Invoice ticked.
If a business customer adds a retail item to a cart that already holds a wholesale item, the two selections do not overlap and the cart ends up on your fallback gateway, or empty if you set none. Two practical ways out:
- Let the wholesale products allow card as well as invoice, so a mixed cart can still be paid by card.
- Say on the wholesale product pages that invoice payment is available only when the cart contains wholesale items only.
The plugin does not show a message that names the conflicting product, so the second option is worth doing even when you use the first.
How to hide PayPal for specific products in WooCommerce
PayPal is the gateway store owners most often want to hide for certain products. Common reasons: the fee eats the margin on low-ticket items, PayPal's acceptable use policy excludes some product types, or a B2B invoice product should not be paid with a consumer wallet. Check PayPal's current policy for your own products rather than relying on a general list.
- Open the product in the WooCommerce edit screen.
- In the sidebar, find the Choose payment gateway box.
- Tick every gateway the product may use, and leave PayPal unticked.
- Update the product.
PayPal now disappears from checkout whenever that product is in the cart. Because a mixed cart uses the intersection, a cart that mixes this product with a normal one also hides PayPal. Remember that a box with nothing ticked restricts nothing, so always tick the gateways you do want.
Category and tag rules: when they apply
Category and tag rules are part of the Premium version. They are used only when none of the products in the cart has its own gateway selection. As soon as one product in the cart has a selection, that selection decides for the whole cart and the category and tag rules are skipped.
This is the most common reason a category rule seems to stop working: a single product with its own selection quietly takes over. If a rule does not apply, check the products in the cart for their own selection first. For the category-level setup itself, see how to restrict a payment method by product category.
Common mistakes to avoid
- Ticking nothing on a product and expecting that to block all payment methods. It restricts nothing.
- Ticking a gateway that is disabled or unavailable for the customer's country or currency in WooCommerce.
- Having no fallback gateway, so a conflicting cart ends on an empty payment step.
- Mixing product-level and category rules without knowing that the product-level selection wins.
- Testing each product alone and never testing a mixed cart.
Test checklist before you go live
- List every gateway that is enabled in WooCommerce → Settings → Payments before you touch product rules.
- Choose a fallback gateway on the Default Gateway tab.
- Roll rules out in batches by category, not all at once, so problems are easy to trace.
- Test a cart with two products whose selections do not overlap, and confirm you end on the fallback gateway.
- Test on both the classic checkout and the block checkout, and watch your support inbox for the first few days.
Related guides
- Complete setup guide: payment gateway per product
- Different payment methods for different products
- Disable cash on delivery for specific products
- Payment gateway based on user role
- Documentation in our help center
Pairing with shipping rules
Payment rules solve half the checkout problem. A customer who pays by invoice for a 40 kg crate still needs a freight shipping method, not a parcel rate. Layer per-product shipping rules on top of the payment rules so checkout only offers combinations that work. See WooCommerce shipping options per product for the matching setup.
Next step
The rules in this guide are in the WooCommerce Payment Gateway Per Product plugin. To control shipping per product as well, pair it with WooCommerce Shipping Gateway Per Product.
FAQ
- Why does my checkout show no payment methods after I add a second product?
- The plugin keeps only the gateways that every product with a selection allows. If product A allows only Stripe and product B allows only PayPal, nothing is left. Set a fallback gateway on the Default Gateway tab, and tick at least one gateway that all your products share.
- Does a product with no gateways ticked block all payment methods?
- No. A product with nothing ticked does not restrict anything and does not take part in the cart rule. Only products with at least one gateway ticked act as a whitelist.
- Why is my category or tag rule not being applied?
- Category and tag rules (Premium) are used only when no product in the cart has its own gateway selection. As soon as one product in the cart has a selection, that selection decides for the whole cart.
- Does the plugin show a message that names the conflicting product?
- No. When the combined rules leave nothing, the plugin shows your fallback gateway if you set one. Tell customers on the product page which products can be paid in which way, or keep one shared gateway on every product so mixed carts always work.
- Can I restrict payment gateways by user role with this plugin?
- No. When a mixed cart ends up empty, the cause is a product, category or tag rule, not the customer's role. If you also need rules per role, see our guide on payment gateways based on user role.
- Does it work with the WooCommerce block checkout?
- Yes, and a mixed cart is resolved the same way on the block checkout as on the classic one. If an empty checkout only happens on the block version, clear the cache and recheck the fallback gateway setting first.
This article is part of our WooCommerce payments topic hub, where the related plugins and guides live together.


