WooCommerce E-Commerce Bundle Rate Shipping


About bundle
rate shipping

The WooCommerce Bundle Rate Shipping Plugin allows you to
provide special bundled shipping rates when a customer purchases
multiple items.

The plugin is designed to be flexible, so you can define bundled
shipping rates based on the shipping destination, the categories of
the products being sold, or their shipping class.

You can also add additional layers for each category, adding a
degree of complexity that you may find suitable for your
store’s situation. For example, if you sell
books, you could charge $5 for the first book, $2 for the 2nd, 3rd
and 4th books, and nothing for any additional books purchased.

You can add as many layers as you like.


1. Basic example

Jane’s shop sells books, DVDs and CDs. Her
shipping rates are configured as follows:

  • Books: $5 for the first book, $2 for every book
  • DVDs: $4 for the first DVD, $1 for every DVD thereafter.
  • CDs: $4 for the first CD, $1 for every CD thereafter.

In this case, if a customer were to purchase two books, their
shipping cost would be $7 ($5 for the first book, $2 for the second

If another customer were to order 4 DVDs, their shipping cost
would be $7 ($4 for the first DVD, $1 each for the other

2. Free shipping after 4 products

Bill’s shop sells books. He charges $4 for
shipping if the customer purchases 1-3 books, and offers free
shipping when the customer purchases 4 or more books.
Here’s how he configured his shipping rates:

  • 1st item: $4
  • 2nd – 3rd item: $0
  • 4th item: $-4
  • Subsequent books: $0

3. Using shipping classes

Helen’s shop sells beer. It is sold either by
the box of 24 bottles, or by a case of 6. To define her rates, she
uses two shipping classes: Box of 24, and Case of 6. Her rates look
like this:

  • Box of 24: $12 for the first box, $6 for every box
  • Case of 6: $8 for the first case, $4 for every case

4. Free shipping when the order is over $100

New in version 1.3.3:Frank’s
shop uses a standard bundle rate configuration just like
Jane’s shop above (exampe 1), but with one very
important difference: When customers purchase over $100, he offers
free shipping.

Frank configures his rates the same way that Jane did, but uses
woocommerce_brs_shipping_totalfilter to provide free
shipping for orders over $100:

add_filter( 'woocommerce_brs_shipping_total',
'franks_custom_woocommerce_brs_shipping_total_filter' );

function franks_custom_woocommerce_brs_shipping_total_filter(
$shipping_total ) {
    global $woocommerce;

    // If there is more than $100 in the cart, set shipping to $0
    if ( $woocommerce->cart->cart_contents_total > 100 ) {
        return 0;

    // Otherwise, return the default shipping rate
    return $shipping_total;

5. Staged shipping rate increases

Misha sells DVDs and ships them in packages that can contain up
to three DVDs. The shipping price for each package is $4. So for
every set of three DVDs, the shipping rate is calculated at $4. She
would define her rates as follows:

  • 1st DVD: $4
  • 2-3 DVDs: $0
  • 4th DVD: $4
  • 5-6 DVDs: $0
  • 7th DVD: $4
  • 8-9 DVDs: $0
  • and so on…

Information about using this with WooCommerce 2.6

WooCommerce 2.6 introduced Shipping Zones and the ability to use
multiple instances of the same shipping method.

If you started using Bundle Rate Shipping on or after
WooCommerce 2.6
, you can take full advantage of
WooCommerce’s Shipping Zones feature. You can
also add multiple instances of the Bundle Rate Shipping method to a
single Shipping Zone.

If you used Bundle Rate Shipping prior to WooCommerce
, the plugin will continue to work as it did before.
You cannot use it as a shipping method for Shipping Zones. This is
to avoid losing your existing Bundle Rate configurations.

However, if you would like to switch to using Shipping Zones
instead, you can do that using a small helper plugin that is
included in your download package from CodeCanyon. Look for the zip
file called v2-upgrade.zip and install that in the same way that
you installed Bundle Rate Shipping.
You will need to re-enter your bundle rate configurations
for each shipping zone.

add_filter( 'woocommerce_enda_force_load_new', '__return_true' );

You will need to re-enter your bundle rate configurations for
each shipping zone.

What others have


This plugin does exactly what I needed it to do. I can
apply it to two categories and leave flat rate shipping on the
other categories. Brilliant! Thank you!!


Just wanted to say, as others said, this is a GREAT


This is a must-have plugin for Woo.


Just wanted to say thanks for the great plugin
– it’s amazing how long I
spent trying to find something that would do this simple thing for
me! Keep up the good work, matey. x


You guys are saving our lives here on this one. Such a
simple plugin that is super powerful. Props to the


Eric was fantastic in providing his support for
integration into a complex site. His service went above the bar and
expectations. I was extremely impressed at his willingness to
followup, test and integrate to adapt to the WooCommerce
installation I had. If ANYONE is on the fence on this plugin, you
should invest the money and do not hesitate. the product worked
great and seemlessly on a site with over 887 products and 52
categories. Extremely happy!!!


  • WordPress 3.5+
  • WooCommerce 2+


2.0.4– October 26, 2017

  • Fixes a fatal error that happens in select circumstances when
    WooCommerce is deactivated.

2.0.3– August 26, 2016

  • Fixes a bug that caused the shipping rate to be calculated
    incorrectly when the “Apply base rate
    once†was set to No.
  • Fixes a fatal error that occurred when installing the plugin
    with a version of WooCommerce prior to 2.6.

2.0.2– August 2, 2016

  • Fixes a bug that prevented rates from being saved with $0 as a
    Cost value.

2.0.1– July 4, 2016

  • Fixes issue with being unable to add new layers or
    configurations when using the plugin with WooCommerce Shipping

2.0.0– June 15, 2016

  • Updated for compatibility with WooCommerce 2.6.

1.3.8– June 6, 2015

  • Fixes a JS bug with old usage of Chosen script.

1.3.7– February 12, 2015

  • Updated for compatibility with WooCommerce 2. 3
  • Fixes a bug that caused the bundle rates not to be available in
    certain instances when virtual products were in the cart.

1.3.6– July 7, 2014

  • Fixes a bug that caused issues with the drop down list of
  • Fixes a bug showing a disabled Add Layer button when adding a
    new configuration.

1.3.5– April 28, 2014

  • Javascript bug fix.

1.3.4– February 17, 2014

  • Updated to support of WooCommerce 2.1

1.3.3– September 9, 2013

  • Added
    woocommerce_brs_shipping_totalfilter. This allows
    themes/plugins to override the shipping total calculated by bundle
    rate shipping.
  • Added
    woocommerce_brs_shipping_configurationsfilter. This
    allows themes/plugins to override the configurations used by bundle
    rate shipping.

1.3.2– July 19, 2013

  • Fixed Javascript bug that didn’t allow more
    than 10 rate levels to be set for a single configuration.

1.3.1– May 15, 2013

  • Added compatibility for WooCommerce Branding plugin.

1.3– April 5, 2013

  • Added the ability to set bundle rate configurations on a
    per-state basis for certain countries (United States, Australia,
    Canada + others). This has been requested a number of times, and to
    those users who have waited patiently for
    this—thank you.
  • Fixed up a Javascript bug brought in with the last update.

1.2.2– April 2, 2013

  • Prevent virtual products from being counted in shipping

1.2.1– March 7, 2013

  • Fixes a bug brought in by the last version.

1.2.0– March 5, 2013

  • Update to Woocommerce 2.0 + compatibility. This version will
    not support any versions of Woocommerce prior to 1.5. If you are
    purchasing the plugin new and need it for an older version, send me
    a message and I can send you the last stable working copy for
    Woocommerce versions before 1.5.
  • Fixed a number of Javascript errors.

1.1.7– October 18, 2012

  • Fixed a bug occurring after configurations have been

1.1.6– September 20, 2012

  • Fixed bug where a product variation with a shipping class
    different to its parent product had the parent
    product’s shipping class applied, rather than
    its own

1.1.5– August 15, 2012

  • Updated for compatibility with latest version of WooCommerce
  • Corrected problem found when configuration indicates specific
    country without actually listing a specific country

1.1.4– July 24, 2012

  • Fixed a bug in the calculation noticed when adding larger

1.1.3– July 19, 2012

  • Fixed jQuery conflict bug

1.1.2– July 16, 2012

  • Javascript fix

1.1.1– July 14, 2012

  • Fix for problem with shipping class not saving

1.1– July 10, 2012

  • Major update. New features: – Create
    multiple bundle rate configurations and determine which
    products/carts they are applied to based on shipping destination,
    product category and/or shipping class –
    Prioritize configurations
  • woocommerce_brs_apply_base_rate_once filter deprecated in
    favour of new setting in the admin area

1.0.4– April 25, 2012

  • Updated for WooCommerce 1.5.4
  • Added
    woocommerce_brs_apply_base_rate_oncefilter to change
    how rates are calculated when products from multiple categories are

1.0.3– April 12, 2012

  • Fix for problem with handling fees set as percentage

1.0.2– February 21, 2012

  • Minor bug fix

1.0.1– February 7, 2012

  • Updated for full compatibility with WooCommerce 1.4