E-Commerce WordPress Tips & Tricks

WooCommerce Per Product Shipping Methods

Different products often need different shipping rules, which the defaults handle poorly. Here is how to set up per product shipping methods in WooCommerce, so each item carries shipping that matches what it takes to deliver.

Namrata Namrata 4 min read
Product Based Shipping Options
Product Based Shipping Options

Okay so here’s the thing. I have four products in my store. (4 types of products specifically). Each product has a different shipping method associated with it.

Product A

This product is a high-priced product, so I offer ‘Free Shipping’. Quite simple, no hassle of adding shipping rates.

Product B

An associate organization supplies Product B, so I have to charge a ‘Flat Rate’ fee (the same amount they charge me) to ship their product.

Product C

Product C is supplied by an external organization as well, but they prefer collecting ‘Cash on Delivery’.

Product D

This one’s quite a popular product. I use UPS to ship it across the country. Thus, I have to charge ‘UPS Shipping’ rates to ship product D.

Now, these settings are quite clear… in my head. But quite difficult to set up in WooCommerce.

You ask why? (Clearly you haven’t used WooCommerce)

[space]

Shipping Methods in WooCommerce

In WooCommerce, customers have an option to pick the shipping method, for all products in an order. A single option. Which is terrible. Terrible. Because if my customers pick products A, B, and D, I can’t apply different shipping methods, for these different products. The customer gets to pick the one they want.

products-different-shipping-woocommerce

And out of ‘Free’, ‘Flat Rate’ and ‘UPS’, which do you think the customer would pick?!

I love using WooCommerce, and I do not want to switch to another e-Commerce plugin. I just want to resolve this one, tiny, but extremely important issue!

[space]

Per Product Shipping Method in WooCommerce

The ideal solution, and quite an obvious one, would be to set shipping methods as per the products picked.

So if a customer picked product A and D, the shipping cost would be $0 for product A, and the UPS rate for product D.

If a customer picked B and D, the shipping cost would be the flat rate for B + the UPS rate for D.

Quite simple right? But then how do I set this up. My friend, Aparna, here at WisdmLabs gave me a solution. She said this was quite achievable, and chalked out a plan for the solution.

[space]

Here’s her idea.

Disallow Option to Pick Shipping Method in WooCommerce

To ensure that different shipping methods are applied for different products in WooCommerce, I have to first disallow customers from picking the shipping method they would prefer. (Well, that’s understood. I have fixed shipping methods for products, I cannot allow customers to choose).

[space]

Associate WooCommerce Products with Shipping Methods

Next, there has to be an option to associate products with shipping methods, so that the appropriate cost gets applied. For example, It’s simple for product B. I can set a shipping class for the product, and then set a flat rate for the shipping class.

Aparna said, this idea could help me with other products as well. I would need a settings option, where I would have to associate shipping classes with shipping methods.

Cool. Seems logical. I‘ll try that. (She’d have to help me with the code too :) )

[space]

Calculate WooCommerce Per Product Shipping Cost

The final step, and of course the most important one, would be to calculate the total shipping cost for the products in my customer’s cart. For this, I’d have to fetch the shipping class for the product, and then get the associated shipping method, and then calculate the shipping cost.

[space]

All this is possible because WooCommerce provides the adequate hooks and filters. I’m assured of that, because Aparna did provide me with the filters. I’ll be trying out this solution, but I want you rooting for me. You could suggest features or point out a better solution. If I can make this ‘Per Product Shipping Methods’ for WooCommerce (that’s what I’m calling it) plugin work well, I’d be sure to offer it to you as well :)

Get a FREE Consultation

Let's build something that lasts.

Share what's on your mind — a clear brief, a half-formed idea, or just a sense that something needs to change. We'll listen first, ask the right questions, and point you toward what's actually worth building.

We take on a handful of projects each quarter,ones where we can truly make a difference.

  • Receive a human response within 24 hours
  • Get a detailed scope and quote upfront
  • We're happy to sign an NDA upon request

    Free 30-Min Strategy Call

    Your Name *

    Your Phone No *

    Work Email *

    Your Budget*

    Project Details *