Easy Per Product Shipping for WooCommerce
Set shipping costs by product, variation, and customer destination. Create precise WooCommerce shipping rules without relying on one rate for your entire catalog.
100% free forever · No premium tier · No feature locks
One Shipping Rule Rarely Fits Every Product
A lightweight accessory, an oversized chair, and a fragile case of bottles should not all use the same shipping calculation. Per Product Shipping gives you product-level control while continuing to work inside WooCommerce shipping zones.
Different Products, Different Costs
Assign shipping costs to individual simple products or entire variable-product families.
Variations Can Change the Shipment
Let variations inherit the parent product's rates or give a specific variation its own complete shipping configuration.
Destination Changes Everything
Set different costs by country, state, city, and postcode so customers receive the appropriate rate for their location.
Configure shipping around what you sell—not around a one-size-fits-all rule.
Precise Shipping Without the Complexity
Everything you need to create product-first WooCommerce shipping rules from one focused interface.
Product-Level Shipping Rules
Create dedicated shipping configurations for simple products and variable-product parents.
Complete Variation Overrides
Keep a variation connected to its parent rates or enable a complete variation-specific override when its shipping requirements are different.
Destination-Based Rates
Match shipping destinations using country, state or province, city, and postcode.
Flexible Postcode Matching
Use exact postcodes, wildcard patterns, numeric ranges, or comma-separated lists. Examples: 90210, SW1*, 10000-19999, 10001, 10005, 10010.
Line and Item Costs
Charge a line cost once for a matching cart line, an item cost for every unit, or combine both in the same destination rule.
Ordered Rule Priority
Place your most specific destination rules first. The first matching row wins, giving you predictable control over overlapping regions.
Fallback Shipping Costs
Set a fallback cost for destinations that do not match any configured row. Leave it empty when the product should not have a configured fallback.
Flexible Package Calculation
Choose how resolved product costs are combined: Sum all product costs, Use the highest product cost, or Use the lowest product cost.
Default Product Cost
Provide a default cost for shippable products without their own configured product or variation rate.
Handling Fees
Add fixed or percentage-based handling fees per product and per order.
Adjust Existing Shipping Methods
Add configured product costs to eligible existing shipping methods instead of displaying a separate Per Product Shipping option.
Shipping Method Visibility Controls
Optionally hide WooCommerce Free Shipping or Local Pickup when the Per Product Shipping method is available.
CSV Import and Export
Export all rules or selected product families. Validate CSV imports before committing them, then update, skip, or replace existing records.
Build Each Rate the Way You Actually Charge
Use two separate cost components to represent packaging and quantity-related expenses accurately.
Line Cost
Applied once to the matching cart line, regardless of quantity.
Use it for:
- • Packing materials
- • Oversized-product preparation
- • A base shipment charge
- • Special handling applied once per product line
Item Cost
Multiplied by the quantity of that product in the cart.
Use it for:
- • Weight-based cost increases
- • Per-unit packaging
- • Additional handling per item
- • Products whose shipping cost grows with quantity
Example Calculation
A destination rule contains:
Line cost: $12
Item cost: $3
The customer purchases three units:
$12 + ($3 × 3) = $21 shipping
Use either field independently or combine both. A value of zero is also treated as a valid configured rate.
Target Shipping Costs by Destination
Define exactly where each product rate should apply.
Country
Create broad national rates using WooCommerce country codes.
State or Province
Apply different costs to individual states, provinces, or regions.
City
Target a specific city when local handling or delivery expenses differ.
Postcode or ZIP Code
Match individual postcodes or create broader service areas using patterns and ranges.
Priority Explanation
Every populated destination field must match. Blank fields act as "any," allowing you to create broad rules and then place more specific exceptions above them.
Example Rules
| Priority | Country | State | City | Postcode | Line Cost | Item Cost |
|---|---|---|---|---|---|---|
| 1 | US | CA | Los Angeles | 900* | $12 | $3 |
| 2 | US | CA | — | 90000-93999 | $18 | $2 |
| 3 | US | — | — | — | $25 | — |
A customer in Los Angeles with postcode 90017 receives the first rate. Another California customer in the configured numeric range receives the second. Other US customers receive the third.
One Product Family, Complete Variation Control
Variable products stay easy to manage without limiting what individual variations can do.
Use Parent Rates
Keep Enable Per Variation Shipping turned off and the variation follows its parent product's complete shipping configuration.
Best for variations that ship in the same packaging and have similar costs.
Override the Parent
Enable variation shipping when a variation needs its own destination rows and fallback cost.
The enabled variation becomes a complete override. It does not mix its configuration with or fall back to the parent.
Use one shared rule where possible and create overrides only for the variations that genuinely ship differently.
Use a Standalone Rate or Adjust an Existing Method
Choose how each product family participates in your shipping setup.
Standalone Per Product Shipping
Add Per Product Shipping to a WooCommerce shipping zone and show it as its own checkout method.
The shipping-zone instance controls:
- • Checkout title
- • Tax status
- • Sum, highest, or lowest calculation
- • Default product cost
- • Per-product handling fee
- • Per-order handling fee
- • Free Shipping suppression
- • Local Pickup suppression
Adjust Shipping Costs
Enable Adjust Shipping Costs on a product family to add its resolved configured costs to eligible existing shipping methods.
This is useful when you already use Flat Rate or another paid method but need certain products to add an extra shipping charge.
Important note
Adjusted costs never modify WooCommerce Free Shipping or another Per Product Shipping rate.
Decide How Product Costs Become One Checkout Rate
Different catalogs require different package-level calculations.
Sum
Adds every resolved product shipping component together.
Best for: orders where each product adds a real fulfillment or shipping expense.
Highest
Uses only the highest resolved product component.
Best for: mixed orders that can share one shipment priced according to the most expensive product.
Lowest
Uses only the lowest resolved product component.
Best for: stores that intentionally offer a reduced shared-shipment rate.
Default Cost
Apply a default product cost when a shippable product does not have its own configured rate.
Per-Product Handling
Add a fixed fee for each applicable product quantity or calculate a percentage from its resolved shipping amount.
Per-Order Handling
Add one fixed order fee or calculate a percentage after the base and product-handling amounts have been determined.
Built for Real WooCommerce Shipping Scenarios
Oversized and Standard Products
Give furniture, equipment, or other oversized products dedicated costs while smaller products continue using standard rates.
Example: Add a $45 shipping cost to an oversized table while regular accessories use the store's existing method.
Regional Shipping Surcharges
Charge more for destinations that are expensive to serve without changing the rate for every customer.
Example: Use postcode patterns to add different costs for remote or extended-delivery areas.
Variation-Specific Packaging
Give a larger, heavier, or differently packaged variation its own complete shipping configuration.
Example: Let a standard product variation inherit the parent while the extra-large variation uses an override.
Fragile Multi-Quantity Orders
Combine one packaging fee with an additional cost for every unit.
Example: Charge a $10 line cost for protective packaging plus $2 for each fragile item.
Existing Flat Rate Adjustments
Keep your current shipping method and add product-specific surcharges only when configured products are present.
Example: Add $15 to an eligible existing shipping rate whenever an oversized product is in the package.
Large Catalog Management
Move product-family rules between stores or update them outside WordPress using CSV import and export.
Example: Export selected products, edit the CSV, run a validation preview, and commit the verified records.
Manage Every Rule From One Focused Dashboard
No need to open and update products one at a time.
Search by Product - Find a simple or variable product and create its shipping rule from a product-first workflow.
Manage Product Families - See parent-product configurations and variation overrides together.
Reorder Destinations - Drag destination rows into priority order so the most specific match is evaluated first.
Edit and Remove Rules - Update individual product families or select multiple rules for bulk deletion and export.
Preview Imports Before Saving - Run a dry import first to identify invalid rows. Commit only after the file has been validated.
Create product and variation shipping rules from a dedicated WooCommerce admin interface.
Add destination rows, define line and item costs, and drag rules into matching priority.
Validate CSV imports and review row errors before any records are written.
Start Calculating Better Shipping in Minutes
No custom development required.
Install the Plugin
Download and activate Easy Per Product Shipping for WooCommerce on your store.
Add the Shipping Method
Open a WooCommerce shipping zone and add Per Product Shipping as a method. Choose its title, calculation method, default cost, handling fees, and visibility settings.
Create Product Rules
Go to WooCommerce → Per Product Shipping, select a product, and configure its destination rates and fallback cost. For variable products, decide which variations inherit the parent and which need complete overrides.
Save and Start Shipping
The plugin resolves the customer's destination and calculates the appropriate product costs automatically during WooCommerce shipping calculation.
Every Feature. Free Forever.
Easy Per Product Shipping for WooCommerce is completely free and open source.
There are no purchases, subscriptions, license activations, premium upgrades, or locked features. Every supported feature is available immediately after installation.
Licensed under GPLv3. Contributions and issue reports are welcome.
Built for Modern WooCommerce Stores
WordPress
Requires WordPress 6.0 or newer.
WooCommerce
Requires WooCommerce 7.0 or newer.
PHP
Requires PHP 7.4 or newer.
Cart and Checkout
Works through WooCommerce shipping APIs for classic and block-based cart and checkout experiences.
HPOS
Declares compatibility with WooCommerce High-Performance Order Storage.
Frequently Asked Questions
Give Every Product the Right Shipping Cost
Stop forcing your entire catalog into one shipping rule. Configure product, variation, and destination costs with a free WooCommerce plugin built for precise control.
Free forever. Open source. No feature locks.