How to Charge a Fee by Weight on Shopify (per kg, lb or oz)
Shopify can already price shipping by weight: in your shipping settings, a rate can apply to a weight range. That changes the shipping price. If you need a separate charge that scales with weight, such as a heavy-order handling surcharge, a per-pound freight recovery fee or a regulatory fee per ounce, you need a fee that multiplies a rate by the weight and shows as its own line. With FlexiFees that is the Per weight fee type: a rate per kilogram, gram, ounce or pound, applied to the whole cart or to specific products.
Weight-based shipping rate or weight fee?
| Weight-based shipping rate (Shopify) | Weight fee (FlexiFees Per weight) | |
|---|---|---|
| Where it shows | In the shipping price | As its own line in the cart and at checkout |
| What it follows | Weight ranges you set per shipping zone | A rate × weight, per unit you choose |
| Only certain products | No, it prices the whole shipment | Yes, as a per-product fee with product conditions |
| Fees that are not shipping | No | Yes, for example a per-ounce regulatory fee |
| Threshold | Via the weight ranges | Via a cart total weight condition |
Use shipping rates when the charge really is shipping. Use a weight fee when the charge must be itemized separately, applies to some products only, or is not about shipping at all.
How do I add a weight surcharge?
- Check the weights. The fee reads the weight on each variant in Shopify. A variant without a weight counts as 0.
- Create the fee. In FlexiFees, choose Cart fee to charge the whole cart’s weight, or Per product fee to charge only matching products.
- Set the rate. Choose Per weight as the fee type, enter the rate and pick per kilogram, per gram, per ounce or per pound. Rates accept four decimals.
- Add a threshold if needed. Add Cart total weight is greater than or equal to, for example, 50 lb, so light orders pay nothing. The threshold unit (kg, g, oz or lb) is picked separately from the rate unit.
- Publish and test with a real cart.
Example: 0.35 per pound from 50 lb. A 40 lb cart pays nothing; a 60 lb cart pays 21.00.
Can I charge per ounce on some products only?
Yes. Make it a per-product fee and add product conditions such as a collection, product type, tag or the product category. Each matching product contributes its own weight × quantity. For example, 0.50 per ounce on a 0.6 oz can, 10 cans: 3.00. Products outside the conditions add nothing, and fee lines never add weight of their own.
How do I build weight tiers?
A straight rate charges the same per kilogram at every weight. For steps, use a cart formula fee:
if(cart_weight_lb >= 100, 0.25 * cart_weight_lb, if(cart_weight_lb >= 50, 10, 0))
This charges nothing below 50 lb, a flat 10.00 from 50 lb, and 0.25 per pound from 100 lb (120 lb: 30.00). Other useful patterns:
- Per started kilogram on bulky items:
1.50 * ceil(weight_kg) * qty(a 2.3 kg item counts as 3 kg). - A minimum and a maximum: set Fee limits (optional) on the fee, for example at least 5.00 and at most 49.00. On a per-product fee the limits apply to the fee’s total.
What goes wrong most often?
- Missing weights. Digital products or products imported without weights count as 0, so the fee is lower than expected. Check the weights of the products the fee should cover.
- Mixing up the two units. The rate unit and the threshold unit are independent. “0.80 per kilogram from 44 lb” is valid, but easy to misread later; pick one system.
- Expecting it in the shipping line. A weight fee is a separate line. If your carrier invoice is what you want to pass on, a shipping rate may be the better fit.
- The first cart with a new amount. Weight fees produce many different amounts. The first time a new amount appears, Shopify can take a few seconds, occasionally up to about a minute, to accept the line; FlexiFees retries automatically and the same amount is instant afterwards.
The heavy item surcharge guide shows a complete setup, and the Per weight reference covers every option.
Sources
- Shopify Help Center, Understanding shipping rates (weight-based shipping rates)