Free Shipping and Bulky Items on WooCommerce: How to Avoid Losing Money

Edited by Solucom · June 23, 2026

I sell small and large products in the same store. You offer free shipping above a certain threshold – a leverage that works. Then a customer puts an item in their cart bulky and expensive, it exceeds the threshold, and the system nullifies their shipment. You, however, pay a premium for the courier on that bulky package. Result: you sold it, but you lost money on shipping.

Why you lose out (and don't realize it right away)

Free shipping «above X euros» is based on the cart's value, not the size of the items. But the real cost of shipping a large item has nothing to do with how much the item costs: a 300 euro piece of furniture can cost you as much for shipping as ten small orders. The profit disappears silently, one shipment at a time, and it's hard to see until you look at the shipping costs at the end of the month.

How to solve it, the principle

The key is to distinguish the products voluminous from the rest and apply different rules to them. In WooCommerce, this is done using the shipping classesCreate a class «bulky,» assign it to oversized products, and free shipping should not apply to that class.

The three behaviors that are needed

  • Nothing free for bulky items. If there is a bulky item in the cart, free shipping does not apply, even if the total exceeds the threshold.
  • Hide paid fees when the free one is legitimate. So in «normal» shopping carts, the customer only sees the free option and doesn't get confused by multiple choices.
  • Warn on bulky product page. A clear message («this item ships with dedicated shipping») manages expectations before checkout and avoids abandoned carts due to surprises.

By hand or with a plugin

You can try to fix it with rules and conditions within the shipping settings, but it quickly becomes a fragile web to maintain, and all it takes is one promotion or new product to break it. This is why we preferred a simple and targeted approach: a plugin that hooks into the «bulky» class and applies the three behaviors above, without touching any code.

Frequently Asked Questions

How do you decide what is bulky?

You decide: create the shipping class and assign it to bulky products. You remain in full control.

Will it work with my current rates?

Yes: it works on top of your existing shipping configuration, it does not replace it.

Does the website slow down?

No, it is a lightweight tool, without external services and without tracking.

Do you want to stop giving away shipments that cost you money? We've released a free plugin for WooCommerce that handles this neatly: Discover Solucom Shipping Control.