This guide shows you how to set up shipping costs based on quantity for individual products in WooCommerce.
Plugin: Flexible Shipping Rules for WooCommerce
Step 1: Access Product Settings
- Go to your WordPress admin dashboard
- Navigate to Products → All Products
- Find the product you want to set up quantity-based shipping for
- Click “Edit” on that product
Step 2: Enable Custom Shipping
- Scroll down to “Product Data” section
- Click on the “Shipping” tab
- Look for “Flexible Shipping Settings”
- Check the box for “Enable Custom Shipping”
Step 3: Set Shipping Cost Per Unit
- Find “Shipping Cost Per Unit” field
- Enter the cost per unit (e.g., $2.00)
- This is the cost charged for each unit of the product
Step 4: Set Shipping Cost Quantity
- Find “Shipping Cost Quantity” field
- Enter the quantity threshold (e.g., 3)
- This means: $2 per unit when quantity ≥ 3
- Set to 0 for no threshold (applies to all quantities)
Step 5: Configure Free Shipping (Optional)
- Find “Free Shipping Quantity” field
- Enter the quantity for free shipping (e.g., 10)
- When customer buys 10+ of this product, shipping is free
- Set to 0 for no free shipping
Step 6: Save Settings
- Click “Update” to save the product settings
- Test by adding different quantities to your cart
How It Works
With Quantity Threshold:
- Cost Per Unit: $2.00
- Cost Quantity: 3
- Result: $2 per unit when buying 3 or more
Without Quantity Threshold:
- Cost Per Unit: $2.00
- Cost Quantity: 0
- Result: $2 per unit for any quantity
With Free Shipping:
- Cost Per Unit: $2.00
- Cost Quantity: 3
- Free Quantity: 10
- Result: $2 per unit for 3-9 items, free for 10+
Example Setups
Example 1: Basic Per-Unit Pricing
- Enable: Yes
- Cost Per Unit: $1.50
- Cost Quantity: 0
- Result: $1.50 per unit for any quantity
Example 2: Quantity Threshold
- Enable: Yes
- Cost Per Unit: $2.00
- Cost Quantity: 5
- Result: $2 per unit when buying 5 or more
Example 3: Free Shipping Threshold
- Enable: Yes
- Cost Per Unit: $1.00
- Cost Quantity: 2
- Free Quantity: 10
- Result: $1 per unit for 2-9 items, free for 10+
Example 4: High-Value Product
- Enable: Yes
- Cost Per Unit: $5.00
- Cost Quantity: 1
- Free Quantity: 20
- Result: $5 per unit for 1-19 items, free for 20+
Example 5: Bulk Discount
- Enable: Yes
- Cost Per Unit: $3.00
- Cost Quantity: 1
- Free Quantity: 50
- Result: $3 per unit for 1-49 items, free for 50+
Priority Order
- Product Override All (highest priority)
- Global Free Shipping (when override enabled)
- Category Free Shipping (when override enabled)
- Category Shipping Cost
- Per-Product Shipping (this guide)
- Global Flat Rate
- Default Shipping (lowest priority)
Common Scenarios
Scenario 1: Small Items
- Cost Per Unit: $0.50
- Cost Quantity: 0
- Free Quantity: 100
- Result: $0.50 per unit, free for 100+
Scenario 2: Medium Items
- Cost Per Unit: $2.00
- Cost Quantity: 2
- Free Quantity: 25
- Result: $2 per unit for 2+ items, free for 25+
Scenario 3: Large Items
- Cost Per Unit: $8.00
- Cost Quantity: 1
- Free Quantity: 5
- Result: $8 per unit, free for 5+
Scenario 4: No Free Shipping
- Cost Per Unit: $1.00
- Cost Quantity: 0
- Free Quantity: 0
- Result: $1 per unit for all quantities
Troubleshooting
Per-unit pricing not working:
- Check that “Enable Custom Shipping” is checked
- Make sure “Shipping Cost Per Unit” has a value
- Verify “Shipping Cost Quantity” is set correctly
- Clear cart and test again
Free shipping not applying:
- Check “Free Shipping Quantity” is set higher than “Cost Quantity”
- Verify the quantity threshold is met
- Clear cart and refresh page
Cost calculation wrong:
- Cost Per Unit × Quantity = Total Cost
- Check if quantity threshold is met
- Verify no other rules are overriding
Settings not saving:
- Make sure to click “Update” after changes
- Check for JavaScript errors
- Try refreshing the page
Quick Test
- Add your product to cart with different quantities
- Check shipping cost for each quantity
- Verify the calculation: Cost Per Unit × Quantity
- Test free shipping threshold if set
- If costs match your settings, setup is working!
Need Help?
For support with this plugin:
- Email: brad@wpsites.net
Was this helpful?
Thanks for your feedback!

Leave a Reply
You must be logged in to post a comment.