Per product shipping allows you to define different shipping costs for products, based on customer location. These shipping costs can be added to other shipping methods, or used as a standalone shipping method.
How Per-Product Shipping Can Be Used
Per-product shipping can be used in two ways:
- Multiple Shipping Methods: If enabled, rates can be applied in addition to your other shipping methods. For example: If your store offered a bulky product that you wanted to set up with extra shipping fees, you could create a fee to be added to that specific product. If you had multiple items in your cart, 2 kinds of shipping would be represented in one cost – your default shipping costs for the other items in the cart, and the shipping cost of the bulky item.
- Standalone: In this scenario the ‘per-product shipping’ is the default shipping method. In this case, all product costs are added together to form a single rate.
In the future, when WC core supports it, Per-product shipping will be able to provide additional rates for the same cart, but this is not currently possible.
Defining Shipping Costs for products
First edit your product. On the Shipping tab you will see a per-product shipping checkbox. Check the box to enable per-product shipping – from there you can add your costs:
If you choose to select the “Add per-product shipping cost to all shipping method rates?” option, the per product shipping cost you set will be added on top of any additional shipping methods (excluding free shipping) you have activated.
The table is where you define your custom rates. Click ‘add row’ and fill in each column;
- Country Code – Use the 2 digit country code, e.g. US or GB
- State/country Code – Use a 2 digit state code, e.g. AL or NY
- Zip/postcode – Enter a single postcode to apply the rule to. Use a wildcard to match multiple similar postcodes, e.g. PE* or 90210
- Line Cost – Enter a cost which is applied to the line (ignores quantity). This cost should exclude tax.
- Item Cost – Enter a cost which is applied to the item (cost * quantity). This cost should exclude tax.
You may add as many rows as you need. Only one row will match the customer location, starting from top to bottom.
In the following example, Flat Rate Shipping was set at $7.50 and the Per Product Shipping was set to $5 (per the screenshot settings above).
Exporting a CSV
Beneath the rate table you will see two import/export buttons. The export button will export the product rates into a CSV file containing the following columns:
- Product ID
- Country Code
- State Code
- Line cost
- Item cost
For more information on how to import CSVs, see Importing rates via CSV. This is useful if importing similar rates for all products.
Defining Shipping Costs for Variations
Each variation can have the same per product shipping options. To enable these costs, just check the ‘Per-variation shipping’ box pictured below:
After doing that, the same per product shipping rule table as products have will appear.
Using as a Standalone Method
Per-product shipping can be used as a standalone method whereby all product costs are added together to offer a single rate.
To enable this, go to: WooCommerce > Settings > Shipping > Per-product:
The following options are available:
- Standalone method – Enable this to enable per-product shipping as your only shipping method
- Method Title – When standalone, this is the name of this shipping method shown to the customer
- Tax Status – Whether or not taxes should be added to this method
- Default product cost – When products don’t have rates setup, they will inherit this cost
- Handing fee (per product) – Either fixed or percentage, this fee is added to each and every product in the cart
- Handing fee (per order) – Either fixed or percentage, this fee is applied once to the cart as a whole
- Method availability – Which countries are offered this standalone shipping method
Importing Rates via CSV
To import rates via a CSV file, you can either go to Tools > Import >Per Product Shipping Rates, or you can click the import button beneath a rate table:
Once on the import screen, you’ll be able to upload your CSV file:
Formatting your CSV file
Your CSV needs to have a set number of columns (6 in total) which include the following:
|PRODUCT ID||COUNTRY CODE||STATE CODE||POSTCODE||LINE COST||ITEM COST|
|DESCRIPTION||ID of the product this rate applies to||2 Digit country code (if applicable)||2 Digit state code (if applicable)||A single postcode or wildcard||Cost for shipping each line item||Cost for shipping each individual item|