How to set up product tags based flat rate shipping in WooCommerce

Set a flat shipping fee that applies only to products with specific product tags. Use it to charge a clear, fixed amount for items that need special handling, like express, fragile, or bulk, while keeping checkout simple.

Tag based shipping method banner

What is tag-based flat rate shipping?

Tag-based flat rate shipping is a rule that adds a fixed shipping fee when the cart contains products with chosen product tags.

Examples: charge $9.99 for items tagged express, $14.99 for fragile, $0 for promo.


Why is it required?

  • Keeps shipping easy to understand for shoppers.
  • Covers extra packing or faster delivery costs.
  • Scales well: tag products once, and the rule applies site-wide.
  • Faster than per-product rates and safer than blanket fees.

Ways to configure tag-based flat rate shipping

Works directly with Product Tag conditions.

Steps

  1. Go to Dashboard → Dotstore → Flat Rate Shipping
  2. Click Add new button

    Set Base shipping cost (e.g., $9.99).

    Add a Condition → Product Tag → is in → pick tags (e.g., Best Sellers, fragile).

    Optional:

    • Tooltip to explain the fee.
    • Default selected shipping.
    • Limit to Logged-in users or certain User roles.
    • Start/End date or Days/Time window.

      Add tag based condition

  3. Save and test with tagged products.


2) WooCommerce core workaround (Shipping Classes)

Core WooCommerce can’t target product tags. A simple workaround is to assign a Shipping Class to products that share a tag, then charge a class cost.

Tip: Use this if you can’t install a plugin and your tag list is small.


Real example use case 1

Goal: Charge $9.99 flat rate for products tagged express. Other products use standard rates.

  1. Country: United States.
  2. Method: Flat Rate → Cost = $9.99.
  3. Condition: Product Tag = express.
  4. Label: “Express Shipping (tag)”. Add a tooltip: “Applies to express items”.
  5. Save and test carts with and without express items.

Real example use case 2

Goal: Charge $14.99 for fragile items on weekends only in select metro ZIP codes (e.g., 100xx, 900xx, 606xx).

  1. Method: Flat Rate → Cost = $14.99.

    Conditions:

    • Product Tag = fragile
    • Day of week = Saturday, Sunday
    • Postcode in list = 100, 900, 606 prefixes (use your exact ZIP patterns)
  2. Optional: Default selected on weekends.
  3. Save and test.

Expected outcome

  • The flat rate fee appears only when the cart includes products with your chosen tags.
  • Other carts follow your default US shipping.
  • Customers see clear, predictable costs at checkout.

FAQs

1) Can I set different fees for different tags?

Yes. Create separate methods. Each method gets its own Product Tag condition and price.


2) What if a cart has items from two tagged groups?

Decide your rule: show the highest fee, combine fees, or prefer one method. Use clear labels so customers understand.


3) Can I exclude certain tags from free shipping?

Yes. On your free-shipping method, add Product Tag → is not in for tags you want to exclude.


4) Does this work with coupons and sales?

Yes. Tag rules run alongside coupons. Test with and without coupons to confirm the right fee.


5) How do I bulk-assign tags or shipping classes?

Go to Products → All Products → Bulk actions → Edit. Add Tags or a Shipping Class, and update.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.