Set Custom Shipping Rates by Individual Class (Media Mail, Priority, Ground) and by State?

Hi everyone,
I’m currently using Shopify for my online store. Originally I started on Woocommerce and have decided to switch but i am struggling with the shipping costs. I’m looking for a way to set up custom shipping rates that vary by both shipping class (USPS Media Mail, Priority Mail, Ground Advantage) and customer location (state).

Here’s what I’m trying to do:

  • Offer multiple shipping classes at checkout (Media Mail, Priority, Ground, etc.)

  • Adjust each class with it’s own percentage (e.g., +1.5% on Priority, -$2 on Ground)

  • Restrict certain methods like Media Mail to specific categories (e.g., only albums, Photobooks, DVDs etc)

  • Ideally, also adjust rates by state or zone (since some states have higher label costs)

This type of customization is easy in WooCommerce, where I can adjust each shipping class individually (see screenshot), but I haven’t been able to recreate this in Shopify. So far, Shopify only seems to let me apply rates across all shipping classes in a zone, rather than setting them individually.

Is there any native Shopify workaround or a third-party app that allows me to:

  • Create rules by shipping class

  • Add markups per class

  • Restrict shipping methods by product type or tag

Would love any insight from others who’ve handled something similar!

For special product-based rules, set up shipping profiles—this lets you apply specific rules to different products.

Thank you for the help ! I do see that it makes me manually assign products. I need all of my items to be reflected so how do I do that?

1 Like

You can add the respective products within each shipping profile

I sell music merchandise such as CDs, DVDs, Photobooks, concert merchandise. It totals to 5,000 different products. I want all of my products to automatically use the same shipping profile and show the same shipping classes during checkout without having to manually assign them. How do I do that?

Products specified in secondary profiles will be the exception. The general profile will default for all other products.

Shopify offers detailed documentation:

https://help.shopify.com/en/manual/fulfillment/setup/shipping-profiles

Review and test your settings to ensure everything works as expected.