Set up Different Shipping Costs for B2B/ B2C/ Order Value (Dynamic Shipping Costs)

This article will show you how to set different shipping costs based on whether the user is b2b or b2c, or based on order value or order quantity.

Option A: Configure different shipping methods #

The simplest way to set up different shipping costs for B2B, Groups and B2C, is by creating multiple different methods and enabling or disabling them for each group.


Let's say we want to charge $10 for B2B shipping and $50 for B2C shipping.

To set this up, we go to WooCommerce -> Settings -> Shipping, select a shipping zone, and configure 2 separate methods:

We edit each method and set separate costs, for example:

Now, we go to B2BKing -> Groups and for each B2B group, B2C, Logged Out, we enable only the respective method.

Here for example, we have only enabled the B2C method for B2C users.

Note: Methods for B2C and logged out users must be configured separately in B2BKing -> Groups! B2C settings do not affect logged out users.

Note: Shipping methods can even be enabled or disabled individually for each customer, by going to their user profile page -> Shipping and Payment Methods -> and choosing "Manual setting".

Option B: Configure dynamic shipping through rules #

This way of configuring different shipping costs is more complex, but also allows more flexibility. By following this method, you can also set conditions based on order value, so that for example certain costs apply only for orders below, or above a certain threshold.

Here's what the end result looks like with this method:

To set this up:

1) Go to WooCommerce -> Settings -> Shipping, select a zone, disable all shipping methods, and keep only Free Shipping enabled.

2) Edit the "Free Shipping" method and rename it to "Dynamically Calculated Shipping".

This way users will see "Dynamically Calculated Shipping" (no specific cost), and then the actual shipping cost below.

3) In B2BKing -> Dynamic rules, configure "Add Tax / Fee" rules, and name them something like "Shipping Fee".

You could create multiple such "Add Tax" rules, all named "Shipping Fee", and set conditions such as <500 , >500 AND <1500, >1500, etc to set different shipping costs based on the order value.

Here's an example of a rule that sets shipping cost to $15 for B2B users:

$15 shipping fee for b2b users

Here's an example of a rule that sets shipping cost to $10 for orders below $10,000:

$10 shipping fee for orders < $10,000 for all users

Common Issues #

It is important to note that shipping zones cannot be separate for B2B and B2C, only the shipping methods inside a zone can.

Therefore the following is an INCORRECT configuration:

This is because in WooCommerce, a customer only matches a single zone, based on their geographic location.

Therefore zones should only handle the geographic locations, and to configure different shipping methods you must go inside each zone and set different B2B / B2C methods in that zone.

Powered by BetterDocs