Shopify Charge by Square Meter Calculator: Sell Whole Packs

Short answer: how to charge by square meter on Shopify
To charge by square meter on Shopify while selling whole packs, calculate packs = (area in m² × (1 + waste %)) ÷ m² per pack, rounded up. The total is packs × pack price, because Shopify charges the catalog price times a whole-number quantity. Show the m² price for comparison, but make the pack the thing that goes in the cart.
The formula in 3 lines
- Packs needed = m² needed × (1 + waste) ÷ m² per pack, rounded up to a whole number.
- Total price = packs × pack price.
- Coverage you receive = packs × m² per pack (always equal to or above what the shopper needs).
Why Shopify can't do this natively
Out of the box, Shopify multiplies one variant's price by an integer quantity. There is no concept of "this product is sold in 1.43 m² units, but the shopper thinks in m²." So a tile or flooring store ends up with a gap between how the industry quotes prices (per m²) and what the cart can sell (whole boxes).
A tile merchant described exactly this on the Shopify Community: one box covers 1.43 m², supplier and competitor prices are shown per m², and customers can only buy full boxes. Shopify's theme doesn't bridge that, so the store owner has to build the bridge with variants, theme code, an app or manual quotes. The rest of this guide shows how to do it with correct numbers.
How to calculate cost per square meter (and price per sq metre)
Both questions use the same division: take the pack price and divide by the area the pack covers.
| What you know | Formula | Example |
|---|---|---|
| Pack price and coverage | Pack price ÷ m² per pack = price per m² | €42.90 ÷ 1.43 = €30.00/m² |
| Price per m² and coverage | Price per m² × m² per pack = pack price | €30.00 × 1.43 = €42.90 |
| Pack price and sq ft per pack | Pack price ÷ sq ft per pack = price per sq ft | €42.90 ÷ 15.39 = €2.79/sq ft |
The catalog price in Shopify should be the pack price (€42.90). The €30.00/m² figure is a display value derived from it. Keep it that way and the price you charge always matches what the cart multiplies.
Cost per m² is not selling price per m²
"Cost per m²" from your own side is what you pay the supplier. If a box costs you €28.00, your cost per m² is €28.00 ÷ 1.43 = €19.58. Margin is (price - cost) ÷ price, so (42.90 - 28.00) ÷ 42.90 = 34.7%. Shopify's product page has a cost per item field that shows profit and margin, so you don't need a separate margin calculator for this.
Shopify transaction fees are a different topic: they depend on your plan and payment gateway, and you'll find them on Shopify's pricing page. They don't change the square meter math.
For sq ft readers
One m² is about 10.764 sq ft, so a 1.43 m² box covers about 15.39 sq ft. If you sell in both units, see our guide on how to sell by square foot on Shopify. The logic is identical, only the unit changes.
Worked example: a 4.2 m × 3.5 m room with 10% waste and 1.43 m² boxes
A shopper tiling a 4.2 m × 3.5 m room. Box price €42.90, coverage 1.43 m² per box, waste allowance 10%.
| Step | Calculation | Result |
|---|---|---|
| 1. Room area | 4.2 × 3.5 | 14.70 m² |
| 2. Add 10% waste | 14.70 × 1.10 | 16.17 m² |
| 3. Boxes needed | 16.17 ÷ 1.43 = 11.31 | 12 boxes (rounded up) |
| 4. Total | 12 × €42.90 | €514.80 |
| 5. Coverage received | 12 × 1.43 | 17.16 m² |
If you want to test this against a ready-made setup, our Shopify tile calculator page covers the tile case.
The effective price per m²
The displayed price was €30.00/m², but the shopper paid €514.80 for a 14.70 m² room. That is €514.80 ÷ 14.70 = €35.02 per measured m². Per purchased m² it is still €514.80 ÷ 17.16 = €30.00.
Neither number is wrong. The gap exists because boxes are indivisible and the shopper added waste. It's worth being upfront about it, because a shopper who expects "14.7 × €30 = €441" will be surprised at checkout if nothing explains the difference.
Show the surplus
Coverage of 17.16 m² against a need of 16.17 m² leaves 0.99 m² extra. A line such as "You need 16.17 m² including 10% waste. 12 boxes cover 17.16 m²" tells the shopper why the number is 12 and not 11.
Why not round down to 11? Eleven boxes cover 15.73 m². That is under the 16.17 m² needed with waste, and only 1.03 m² above the bare room area. One awkward corner or a damaged tile and the shopper is short, orders a second batch, and risks a different dye lot. Rounding down is a return and support ticket generator.
What if the shopper already knows their m²?
Some shoppers have a plan or a contractor's quote that says "20 m²." Forcing them to enter width and length is friction. Offer a direct m² entry alongside the dimensions option.
| Step | Calculation | Result |
|---|---|---|
| Entered area | 20 m² | 20.00 m² |
| Add 10% waste | 20 × 1.10 | 22.00 m² |
| Boxes | 22.00 ÷ 1.43 = 15.38 | 16 boxes |
| Total | 16 × €42.90 | €686.40 |
| Coverage | 16 × 1.43 | 22.88 m² |
Variations
- 2.4 m² pack: the same 16.17 m² need gives 16.17 ÷ 2.4 = 6.74, so 7 packs covering 16.80 m².
- Wallpaper roll 10.05 m × 0.53 m: one roll is 5.33 m² (5.3265 before rounding). A wall area of 28 m² plus 10% is 30.8 m², divided by 5.33 gives 5.78, so 6 rolls. Patterned wallpaper also needs pattern repeat allowance, so waste may be higher than for plain tile.
Why the usual workarounds break
Every workaround below can work in a narrow case. Here is where each one fails in practice. For the cart side of this problem, our guide to boxes, waste and cart behaviour goes deeper.
Variants per size or pack count
You could create a variant for each box count: 1 box, 2 boxes, 3 boxes and so on. Shopify's standard limit is 100 variants per product (check your admin if you have a higher limit enabled), and you will hit it quickly if you combine box counts with colors or finishes. Every price change then means editing dozens of variants, and stale prices are almost guaranteed. It also makes shoppers choose a box count before they know how many they need.
Showing m² price in theme code while the cart sells "pieces"
A theme edit that displays "€30.00/m²" next to a product priced at €42.90 per unit is simple and cheap. The failure is the quantity box. Shoppers type 14.7 or 15 into a field that means boxes, and then wonder why the cart shows €643.50 for 15 boxes.
To be fair, this approach is enough when your customers already think in boxes, for example trade buyers reordering a known SKU. It breaks when buyers are homeowners starting from a room measurement.
Quote forms and email
A "request a quote" form lets you do the math correctly by hand. It also adds a delay, a manual step for you, and an abandoned cart for the shopper who wanted to pay tonight. Each quote has a chance of being miscalculated, and you answer the same "how many boxes?" email repeatedly.
Selling 1 m² as the unit
Setting the price at €30.00 and treating quantity as m² looks neat. But you can't ship 14.7 boxes. Quantity is an integer in Shopify, so the shopper can't buy 14.7 anyway, and you'd have to round up manually at fulfillment, absorbing the cost or contacting the customer. If your pack is 1.43 m², the price per unit no longer matches what you ship.
What works instead
The reliable pattern is: let the shopper enter an area or dimensions, convert to packs with waste and rounding, put whole packs in the cart at the catalog pack price, and keep the measurements with the line item so the order is traceable.
Setting it up with pack rounding and cart enforcement
You can do this with custom theme code and metafields if you have a developer. If you'd rather configure it, Shoperize Price Calculator is one option built for this case. Either way, the steps are the same.
1. Gather the product data
| Field | Example |
|---|---|
| m² per pack | 1.43 |
| Pack price (Shopify catalog price) | €42.90 |
| Waste % | 10% |
| Minimum order | 1 box, or a set minimum area |
| Rounding rule | Round up to whole boxes |
2. Configure unit conversion, waste and package coverage
In Price Calculator you set the unit conversion (for example m² and sq ft if you serve both markets), the waste allowance, the package coverage, rounding and limits. Rules can be created manually, from templates or as editable AI drafts, subject to plan limits.
3. Assign to products and test on three SKUs
Assign the rule to your products. The Free plan supports one published area calculator on up to three products, which is enough to test on three SKUs before you roll out more. Advanced capabilities depend on the plan.
4. Check what the cart keeps
The shopper's measurements stay in the cart, and coverage updates if they change the pack quantity. That matters: if someone edits 12 boxes to 14 in the cart, the displayed coverage should change with it.
What it does and doesn't do
Charges come from the Shopify catalog price multiplied by the pack quantity. The app does not replace the line price with an arbitrary custom value. This keeps checkout predictable and matches how Shopify works, but it also means your catalog price has to be the pack price. If you need discounts, fees or bundles, check separately whether they're supported before you promise them to shoppers.
Display choices: price per m² vs price per pack
Show both
A line such as €30.00/m² · €42.90 per box of 1.43 m² lets shoppers compare with competitors who quote per m², while making clear what they're buying. The pack price is the charged amount.
Rounding rules
Decide per product type:
- Tile and flooring: whole boxes, rounded up.
- Wallpaper: whole rolls, often with a higher waste figure.
- Bulk materials: whole pallets or bags, with a minimum order.
- Minimum order: set a floor so a shopper can't buy a quantity you don't want to ship.
Different packs per variant
If one variant has 1.43 m² boxes and another has 2.16 m² boxes, store the coverage per variant, not per product. A 16.17 m² need becomes 12 boxes of the first and 8 boxes of the second (16.17 ÷ 2.16 = 7.49). With hundreds of SKUs, typing these by hand is slow. Our guide to importing supplier pack sizes into variant metafields shows how to update existing variant metafields from a supplier CSV. It matches by SKU and doesn't create products or edit prices.
Mixed items sold by piece
Trim, grout, adhesive and samples are sold by piece. Give them a separate rule or leave them without a calculator, so they don't inherit area logic.
Test checklist before you publish
Run these on mobile and desktop with a 1.43 m² box and the rounding rule set to round up.
- Exact multiple: 14.30 m² with 0% waste should give exactly 10 boxes.
- Just over a multiple: 14.31 m² should give 11 boxes, not 10.
- Tiny order: a very small area should respect your minimum order.
- Edit quantity in cart: change the box count and confirm coverage updates.
- Metric/imperial toggle: the same room should give the same box count in both units.
- Direct m² entry: 20 m² with 10% waste should give 16 boxes.
- Order notes: measurements and pack quantity appear on the order for fulfillment.
For a longer version, use our 7-point flooring calculator test checklist.
Ready to try it
If you want to show a price per m² and still sell whole packs, install Shoperize Price Calculator from the Shopify App Store and test it on up to three products on the Free plan. Details are at calculator.shoperize.com, and setup help is at help.shoperize.com.
Frequently Asked Questions
How do you calculate cost per square meter?
Divide the pack price by the m² the pack covers. A €42.90 box covering 1.43 m² costs €30.00 per m². For your own cost per m², use what you pay the supplier: a €28.00 box gives €19.58 per m². Selling price per m² and cost per m² are different numbers, and the gap between them is your margin.
How do I work out price per sq metre?
Use the same formula: pack price ÷ square metres per pack. If a roll costs €18.00 and covers 5.33 m², the price is about €3.38 per sq metre. For rolls, multiply length by width first (10.05 m × 0.53 m = 5.33 m²), then divide.
How do you calculate cost per sq ft?
Divide the price per box by the square feet per box. A €42.90 box covering 15.39 sq ft costs about €2.79 per sq ft. If you only know m², multiply by 10.764 to get square feet first, so 1.43 m² is about 15.39 sq ft.
How much does Shopify take from a $10 sale?
It depends on your plan and payment gateway. On an online card rate of 2.9% + $0.30, a $10 sale costs about $0.59, but check Shopify's pricing page for current rates on your plan. This is unrelated to a square meter calculator, which only changes how the quantity is worked out.
Can customers enter m² and still buy whole boxes?
Yes, if the calculator converts the entered area into packs. A shopper types 20 m², the rule adds waste (22.00 m² at 10%), divides by 1.43 m² per box and rounds up to 16 boxes. The cart then holds 16 whole boxes at the catalog pack price.