How to Charge Extra Fees by Product Weight and Quantity Limits in WooCommerce

Learn how to add WooCommerce extra fees based on product weight and quantity. This step-by-step guide helps you create weight-based pricing rules, set quantity limits, and troubleshoot common issues.

Ideal for store owners who want to apply additional charges for heavier items or bulk purchases—boost your revenue and streamline checkout with smart fee rules.

The feature "Cost on Product Weight" allows you to charge additional fees based on the total weight of the products in the cart, which are added from the selected rules.

How it works

Learn how to add product weight-based extra fees for store owners who want to apply additional charges for heavier items or bulk purchases—boost your revenue and streamline checkout with smart fee rules.

  • The plugin calculates the total weight of all products in the cart.
  • Based on the weight range, it applies the corresponding extra fee.
  • You can define multiple weight ranges with custom fee amounts.
  • The fee will automatically appear at checkout based on the product weight range.

Key Benefits

  • Accurate fees based on weight ranges
  • Helps cover real shipping/handling costs
  • Fully automated, no manual adjustments needed
  • Customizable per product, category, or entire store

Steps to configure

Step 1: Enable the extra fee rules

  1. Go to WooCommerce → Extra Fees Plugin → Add New Fee Rule.
  2. Enter a title/name for your fee (example: Oversize Fee).
  3. Under Apply Fee On, select “Cost on Product Weight” from the dropdown.

Step 2: Set weight-based extra fee limits

  1. Go to the “Cost on Product Weight” section.
  2. Set the Minimum Weight (example: $5 → fee applies only if customer buys a product range between 5kg to 20kg).
  3. Set the Maximum Weight (example: $20 → fee applies only if customer buys an order above 20kg).

Step 3: Set the fee amount

Enter the Fee Amount (example: $20 for a specific product weight range).

Step 4: Save and test

  1. Click Save Rule.
  2. Go to your store and add products to the cart.
  3. Check that the fee is applied once the product quantity meets the set limit.

Example 1: "Iron Dumbbells"

Weight Range Fee Applied
0–5 kg $0
5.1–10 kg $8 handling fee
10.1–20 kg $15 heavy package fee
20+ kg $25 oversized fee
  • Product: Iron Dumbbells
  • Price: $60 each
  • Scenario: A customer orders 3 dumbbells (8 kg each = 24 kg total).
  • Result: $25 oversized fee applied at checkout.

Example 2: "Premium Marble Tiles"

Weight Range Fee Applied
0–10 kg $0
10.1–20 kg $10 handling fee
20.1–50 kg $20 special packing fee
50+ kg $40 oversized fee
  • Product: Premium Marble Tiles
  • Price: $120 per box (15 kg each)
  • Scenario: A customer orders 2 boxes (30 kg total).
  • Result: $20 special packing fee applied at checkout.

FAQs

1. What happens if the product weight isn’t set?

If a product has no weight defined, weight-based fee rules will not apply to it. Make sure all relevant products have accurate weights set in their product data.


2. Can I combine product weight rules with other fee types?

Yes, you can combine weight-based rules with other conditions like quantity, cart total, shipping method, or user role. Just ensure that rule priorities and conditions don’t conflict.


3. What if multiple weight rules overlap?

Overlapping ranges can confuse or trigger multiple fees. Always define clear and non-overlapping weight ranges to avoid double charging or unexpected behavior.


4. Why is no fee applied even after setting up weight rules?

Check if the product has a valid weight, the rule is published and active, and the condition matches the cart items. Also, make sure no higher-priority rule is overriding it.


5. Will fees apply if the quantity limits don’t match the cart?

No, if the cart quantity doesn’t meet the defined min/max range, the fee will not trigger. Double-check your quantity range settings when setting conditions.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.