Is there a way to suppress shipping options from appearing if Product shipping is zero?

I have a variety of shipping options (Post Office). Each option does not apply to all products.

Is there any way to suppress an option from appearing in the customer’s shopping cart, if the shipping cost for that particular product is zero?

Alternatively, are there other way of handling a situation where different products have different shipping options (service name, delivery times, etc.)

Hi @Pierre_Clouthier,

So out of the box, no. It would be possible to affect this using javascript within the shopping cart theme. Unless we have a resident genius that has another method, coding is the only solution I would be aware of.

This is something I’ve also been trying to do. Did you ever get a solution?

Although we ship a product, shipping is free and to improve the user experience we’d rather pre-select the $0 shipping rate and hide the shipping box.

The best I’ve come up with so far is:

jQuery( document ).ajaxComplete(function() {
// preselect and hide shipping option
    jQuery('#shippingOptionsContainer input#shipping1').prop("checked", true);

However IS seems to have its own javascript libraries that continually refresh the shipping options based on user actions, and ultimately overwrites the preselected options.

I’d be really interested if anybody has a working solution.

Thanks for the solution. Fortunately we sell mostly software downloads, so shipping this product (22 lbs. box) was a one-off thing.

It appears that the standard Infusionsoft shopping cart is inadequate for real-world shipping needs. For example, I have to deal with:

  1. Three Canadian shipping zones
  2. Mutilple U.S. shipping zones
  3. Shipping to Europe
  4. Shipping to the rest of the World.

“Domestic/International” is naïve and doesn’t cut it. I don’t want to use UPS. There is no interface to Canada Post. It looks to me that Infusionsoft just threw in the towel, and left it to third-parties to provide a solution. If I had to go to WooCommerce, I wouldn’t need Infusionsoft.

I agree that the shipping options are not configurable enough…
Here is a javascript function that will remove all but two shipping options from an order form.
To make this work you have to go and get the id of your shipping option.

s1 = 12;
jQuery(“.listCell p input”).each(function (){ console.log(this.value); if ( this.value != s1 && this.value != s2){ jQuery(this).closest(‘p’).remove() }});