If you sell timber or lumber through WooCommerce — structural timber, fence posts, cladding battens, or general-purpose lengths — you’ve likely run into a pricing problem that’s different from area-based products entirely: customers don’t buy “a piece of timber,” they buy an exact running length, and every order is a different number.
Selling timber as a fixed-length product (a 2.4m length, a 3m length) forces customers into pre-set sizes that rarely match what they actually need, leading to waste on their end or a “please contact us for a custom length” step that stalls an otherwise simple purchase. Standard WooCommerce has no built-in way to price a product by an exact length a customer types in.
This guide covers how to set up genuine length-based pricing for timber in WooCommerce.
Why timber needs a length calculator, not an area one
This is a different calculation entirely from flooring, tile, or fabric — those are all area (length × width). Timber is priced on a single dimension:
- One measurement, not two — a customer needs to enter only the length they require, with no width or area involved at all
- Cutting waste at the ends — timber is rarely cut to the exact millimetre a customer specifies; a small wastage allowance covers trimming, splitting at cut ends, and minor length loss during handling
- Decimal precision matters — timber lengths are rarely round numbers (3.7m, 2.45m), so the calculator needs to accept precise decimal input, not just whole metres
That last point is the one that trips up a lot of generic WooCommerce plugins — a standard “quantity” field is built for whole numbers (1, 2, 3 units), not a precise decimal length.
The formula
For a length-priced product like timber, the calculation is:
Price = Length × (1 + wastage %) × price per metre
For example: 3.7 metres of timber, with 10% wastage for cutting allowance, at £8 per metre:
Price = 3.7 × 1.10 × £8 = £32.56
There’s no width or area involved — this is a genuinely single-variable calculation, which is exactly why it needs its own dedicated length-based calculator type rather than being forced into an area calculation with a width fixed at 1.
Setting this up in WooCommerce
The usual approaches:
1. Fixed-length products. Customers pick from pre-set lengths (2.4m, 3m, 3.6m), which is simple to set up but frustrates any customer who needs something in between, and either wastes material or forces them to buy two shorter lengths and join them.
2. Manual quoting for custom lengths. Works, but needs someone to calculate and respond to every custom-length enquiry.
3. A purpose-built length-based pricing calculator, accepting a precise decimal length and calculating price with a wastage allowance automatically applied.
This is exactly what Woo State Calculator‘s dedicated Timber preset is built for — a genuine length-only calculator field (decimal input, not restricted to whole numbers), with 10% wastage applied by default and fully adjustable, updating the price live as the customer types their required length, and recalculated server-side at checkout so the price can’t be manipulated in the browser. It’s built on State.js, so there’s no jQuery dependency and no layout shift while it updates.
What to check before you buy any calculator plugin for timber
- Does it accept decimal length input (e.g. 3.7m), or only whole-number quantities?
- Does it apply a cutting wastage allowance automatically?
- Does the price update live as the customer types the length?
- Is the price recalculated server-side at checkout?
- If you offer trade quantity discounts, does the calculator support conditional pricing rules based on the length or order value entered — useful for rewarding larger custom-cut orders automatically?
FAQ
What wastage percentage should I use for timber? 10% is a reasonable starting point covering cut-end waste and handling loss; a rougher-sawn or structural product might warrant a different figure than a precision-planed one, and it’s worth setting per product.
Can I set a minimum order length? Yes — a minimum charge stops very short custom lengths from being priced below what’s worth cutting and processing.
Does this support bulk/trade discounts for larger orders? Yes — conditional pricing rules can apply automatically based on the length entered or the calculated order value, so a trade customer ordering a long run can see a discount applied live, with the same rule enforced server-side at checkout.
Selling timber, lumber, or another length-priced product through WooCommerce? Woo State Calculator includes a ready-made Timber preset to get set up in minutes.


Leave a Reply