How to set a coupon-based flat rate shipping method in WooCommerce
Make shipping change when a coupon is applied. With a coupon like SHIP10, you can show a flat $10 shipping rate instead of your normal rate. This is great for promos, partnerships, or recovering abandoned carts without changing prices for everyone.
In The Article
What is coupon-based flat rate shipping?
Coupon-based flat rate shipping applies a specific shipping fee when the cart includes a matching coupon code.
Example: default shipping is $14.99, but with coupon SHIP10, the customer pays $10.00 for shipping.
Why is it required?
- Run time-bound promos without editing all shipping methods.
- Reward targeted users or channels with a simple, predictable shipping price.
- Keep margin under control by fixing the fee, not making shipping free.
- Combine with other conditions like subtotal, location, product tags, or days.
Ways to configure coupon-based flat rate shipping
1) Flat Rate Shipping — recommended
Works directly with a Coupon condition, so the method only appears when the coupon is applied.
Steps
- Go to Dashboard → Dotstore → Flat Rate Shipping
- Click Add new button and configure the settings
Set shipping title and Cost
Click Add Condition → Coupon and enter your code (for example, SHIP10).
Optional extra conditions:
- Subtotal ≥ $50
- State or ZIP filters
- Product Tag / Category
Day/Time window for weekend or holiday deals
Save and test by applying the coupon at the Cart or Checkout.
2) WooCommerce core — Free shipping with coupon
Core WooCommerce cannot change flat-rate cost with a coupon, but it can unlock Free Shipping when a coupon allows it.
Use this when your promotion is actually free shipping. For flat amounts, prefer the Dotstore method.
Real example use case 1
Goal: Show Flat rate: $10.00 when coupon SHIP10 is used. Otherwise, use $14.99.
Dotstore setup
- Zone: United States.
Method A: Flat rate $10.00 with the condition Coupon = SHIP10.
Method B: Flat rate $14.99 with the condition Coupon ≠ SHIP10 (or leave without the coupon condition, so it is the default).
Labels:
- A: “Promo Shipping (with SHIP10)”
- B: “Standard Shipping”
- Save and test.
Real example use case 2
Goal: Weekend promo. With coupon WEEKEND5, show Flat rate: $5.00 for orders $50+ in CA and NV only.
Method: Flat rate $5.00.
Conditions:
- Coupon = WEEKEND5
- Subtotal ≥ $50
- State in [CA, NV]
- Day of week = Saturday, Sunday
- Optional: Default selected on weekends.
- Save and test.
Expected outcome
- The promo shipping price displays only with the correct coupon.
- Your standard rate shows when the coupon is missing or invalid.
- Customers see a simple, predictable shipping cost during the offer.
FAQs
1) Can I use multiple coupons to trigger different shipping prices?
Yes. Create one shipping method per coupon and set a Coupon condition for each. Use clear labels to avoid confusion.
2) What happens if a customer enters two promo coupons?
WooCommerce usually limits one coupon type based on your store settings. For shipping methods, set priority or mutually exclusive conditions so only one shows.
3) Can I hide all other shipping methods when the coupon is active?
Yes. Add a Coupon = SHIP10 condition to the promo method and add Coupon ≠ SHIP10 (or inverse conditions) to the standard methods.
4) Can I combine coupon-based shipping with free shipping thresholds?
Yes. Add Subtotal conditions. For example, coupon shipping at $10 until $75, then free shipping above $75.
5) Does WooCommerce core support flat rate by coupon without a plugin?
No. Core supports Free shipping with a coupon, not flat prices. Use the Dotstore method for clean coupon-based flat rates or the discount workaround if you cannot install plugins.