How to sell fabric by the metre on Shopify

Updated · Trimsize

Short answer: sell fabric as a product priced by length. The customer types how much they need, the length is rounded up to your cutting increment (for example the next 10 cm), and the price is cut length × the fabric's rate per metre, with a minimum cut. A Shopify Function charges that exact price at checkout.

Why not quantity × 1 metre?

The usual Shopify workaround is a "1 metre" product and the quantity box: 3 means 3 metres. It breaks as soon as a customer needs 2.3 m, it can't enforce a minimum cut or a cutting increment, and the order says "3 × Linen" instead of one 2.3 m length to cut. Variants for every length don't scale either: 0.5 m to 20 m in 10 cm steps is 196 lengths per fabric.

The length formula

price = cut length × rate per metre

To cut to the next 10 cm, round the length up to one decimal place first:

cut length = round up (length × 10) ÷ 10

For half-metre increments, round up to the next 0.5 instead: round up (length × 2) ÷ 2.

Worked examples

FabricOrderedCutRate per metrePrice
Cotton drill1 m1.0 m$12.00$12.00
Blackout lining0.75 m0.8 m$18.00$14.40
Linen2.33 m2.4 m$24.00$57.60
Upholstery velvet3.05 m3.1 m$32.00$99.20

The 2.33 m of linen with a fire retardant treatment at +20% costs $57.60 + 20% = $69.12. Cut in half-metre steps instead, it would be 2.5 m, $60.00 before the treatment.

Minimum cuts and maximum lengths

Set the shortest and longest length you'll cut as the product's size limits, for example 0.5 m to 50 m. Shorter or longer lengths can't be ordered, on the product page or at checkout. If you'd rather sell short lengths at a fixed price, give the fabric a minimum charge instead. See Size limits.

Metres, centimetres, feet or inches

Trimsize sells length in metres, centimetres, millimetres, feet or inches, and the rate can be per metre, foot or another length. Yards aren't a unit: to sell by the yard, set the length in feet and the rate per foot to a third of your yard price, so $18.00 a yard is $6.00 a foot, and 3 ft costs $18.00.

Set it up with Trimsize

  1. Install Trimsize and, under What do you make?, choose Fabric by the metre. Your product gets ready-made pricing: priced by length in metres, cut to the next 10 cm, a 0.5 m minimum, four example fabrics with their widths, and a fire retardant treatment.
  2. Set your fabrics and rates. Each fabric is a material with a rate per metre and a line for its width, like "140 cm wide". See Materials.
  3. Show fabrics as swatches with their colour. See Tiles, cards and swatches.
  4. Change the cutting increment if yours isn't 10 cm, in the product's formula, and check it in the live preview. See Pricing editor.
  5. Add the block to the product page and place a test order.

Sell fabrics with different widths or rates as separate materials on one product, or one product per fabric collection from a shared template.

Common mistakes

  • Rounding to the nearest instead of up. 2.33 m rounded to the nearest 10 cm is 2.3 m, shorter than the customer asked for. Always round up.
  • Selling by quantity. "Quantity 3" can't mean 2.3 m, and it can't stop a 10 cm order.
  • No width on the fabric. Customers work out how much to buy from the width. Put it on each fabric.

Questions

Can customers buy any length of fabric?

Yes, between the shortest and longest length you set. They type the length, see the cut length's price, and add it to the cart as one line with the length on it.

How do I round up to the next 10 cm or half metre?

The fabric starter rounds up to the next 10 cm with a formula. For half metres, change it to round the length times two up, then divide by two, and check a few lengths in the live preview.

Can I sell fabric by the yard?

Not as a yard unit. Set the length in feet and the rate per foot to a third of your yard price; a customer who wants a yard enters 3 feet.

What does the order show?

The fabric, the length the customer entered and any options, on one line, so you know exactly what to cut.