Selling in decimal quantities on Shopify — what actually works

Fabric by the metre, cheese by weight, cable by the millimetre. Shopify cannot do it — quantity is a whole number everywhere in the platform, and Shopify staff have confirmed this four times since 2021. Every solution on the market is a simulation. This page is about which simulation to pick and what each one breaks.

There is no workaround that makes Shopify accept 2.5. There are three ways to fake it, and they fail differently:

  • Redefine the unit — stock in tenths of a metre, sell 2.5 m as 25 units. Free, works everywhere, and your checkout says "25".
  • A variant per size — half metre, one metre, two metres. Simple until you need many sizes or shared stock.
  • An app that computes the price — mostly point-of-sale only, £9–29/month, and the review scores are poor.

Which one fits depends on whether you sell online, at a till, or both — and on how much wrongness you can live with on the customer's receipt.

Shopify has confirmed this four times in five years

This is not a setting you have missed. Quantity is a whole number in the storefront cart, the checkout, the admin, the order API and the point-of-sale — every layer.

In Shopify, the quantity field only allows for whole numbers and does not support decimal quantities. This is because the system is designed to track inventory in whole units.

— Liam, Shopify staff, 18 September 2023

Two years later, a different staff member said the same thing about inventory:

Shopify's native inventory system only supports whole number quantities. The inventory fields and mutations expect integer values for inventory. This means you cannot natively track inventory in decimals.

— Liam, Shopify staff, 17 July 2025

The most revealing answer came on the German forum in 2021, and it explains both the cause and why it has not changed. A staff member wrote that selling in small fractions is not possible because of limitations in the core system, which affect shipping, price formats, connected apps and the API — and that the core therefore forces a positive integer. Then, on whether it would ever be built:

The developers weigh up demand for a given feature, and if it falls below a certain threshold it does not get added to the system, unfortunately.

— Gabe, Shopify staff, 13 May 2021 (translated)

That is unusually candid, and it is the answer to "will they fix it?" Five years on, nothing has shipped. Merchants have been asking in the same thread since March 2020 — it now runs to 72 posts and reached November 2025 still unresolved.

One merchant summarised the wait:

I've been with Shopify since 2012 and I have requested this feature countless times over the years and…crickets.

— bloomerie, 27 July 2023

What it costs, in real numbers

Merchants have done the arithmetic themselves.

A meat business rounding down on every package:

We have literally lost $350 in the last 4 weeks because we can not accurately charge to the 1/100th decimal value. We also spend several hours trying to reconcile inventory totals.

— DaisyOaks, 16 August 2022

A butcher on the fixed-weight compromise:

We are an online butcher shop who is currently losing money because we have to cut everything over the mentioned weight and sell at a fixed price - it's not sustainable! It also takes so much longer to package up orders making sure they're as close as possible to the paid for amount.

— angiemillin, 15 June 2021

And a fabric seller on why fixed sizes lose sales rather than money:

I want to give them a choice of buying from 0.25m and the 0.50m, 0.75m etc. Nobody wants to just buy more fabrics than they need for a project.

— DeepakBadlani, 14 July 2021

Route 1 — Redefine the unit

Stock and sell in the smallest amount anyone can buy. A 50 m roll becomes 500 units of 0.1 m. A customer buying 2.5 m buys 25 units. This is what Shopify staff themselves recommend, and it is what most merchants end up doing.

It is the only route where inventory stays honest. Stock deducts correctly, partial refunds are exact, and shipping weight scales properly if you set the per-unit weight.

Use Shopify's unit pricing, which almost nobody mentions. Price the 0.1 m unit at €1.29, set the unit measurement, and Shopify displays "€12.90 / m" on the product page, in the cart, at checkout and in the order confirmation email. This is now available to all merchants worldwide. It will not fix the quantity number, but it means the customer sees the real per-metre price at every point where money is shown.

Where it leaks:

  • The checkout says 25. There is no way to relabel it on a standard plan.
  • Your price must divide cleanly. €12.90/m in tenths is €1.29 — fine. €12.95/m is €1.295 — impossible, because prices are two decimal places. Round your per-unit price to fit your granularity.
  • The admin inventory column shows 500, not 50 m. Cosmetic, but staff have to learn it.
  • Rounding down bleeds margin. A cheese seller pricing per 10 g put it exactly: "we lose a little bit of money on each transaction, but you can't round up without angering customers."
  • Prices below a penny break it. The same merchant found a gram of Stilton at 0.046p rounded to 0.05p — a 9% error — which is why the granularity has to be chosen against your cheapest product.

One merchant's verdict after converting an entire catalogue: "This is the best of a bad situtation."

Willing to accept the sub-unit approach but want the storefront to read in metres? See what that looks like built properly →

Route 2 — A variant per size

Half metre, one metre, two metres, as separate variants. Fine for a short fixed menu.

It falls over in two specific ways, both reported repeatedly.

Variants run out. A merchant selling aluminium extrusion in 10 mm steps between 100 mm and 6000 mm needs hundreds of options — "of course shopify runs out of variants quickly" — and their real orders look like four different cut lengths in one basket. A German fabric merchant with over a thousand fabrics called building variants for each "extrem mühselig" — extremely laborious.

And the same stock oversells. Each variant carries its own inventory, so a 4.5 m roll listed as half-metre and one-metre variants will sell more than exists. A merchant raised exactly this and a Shopify staff member confirmed it: the system cannot calculate when the roll is used up.

Route 3 — An app

There is a small niche of apps that simulate decimals, mostly for the till.

Read the listings carefully, because most are point-of-sale only — one states it plainly, and a reviewer of another bought it before discovering the same. Pricing runs about $9–29/month, sometimes plus a fee per extra till.

The ratings in this category are unusually poor — the two best-known sit at 2.3 and 1.7 stars — and the complaints are specific and worth knowing before you buy:

  • Tax breaks on the fake portion. One merchant found the fractional part of an item being taxed when the product was tax-exempt; another found a weight app adding tax to tax-exempt produce.
  • Reporting can be destroyed. A lumberyard explained why they left: the app "was essentially creating a single unit of temporary sku (ex 1 pc of 5.2 board feet). The app would then delete this temporary variant and thus no sales tracking."
  • Some do not touch inventory at all.
  • Speed at the till matters. A cheese shop: "Staff would be standing there with a queue of customers growing while they waited for the calculations to complete."

Some merchants do settle here and stay. One meat business reported back six months after complaining: "To summarize, this product is working for us" — at the cost of maintaining two versions of every product, one for online and one for the till.

Two things that will surprise you

Shopify's own app ignores your theme fixes. If you have made your storefront display decimals with theme code, that work does not exist inside the Shop app. The merchant who has been asking since 2012 described the result: customers see different quantities and different prices depending on how they arrived, and "I just cross my fingers they'll figure it out without misunderstanding what they are actually buying."

And a workaround can be taken away. One merchant ran a price-override trick at the till for two years. Shopify removed price override in September 2023, and the workaround died with roughly a month's notice. He moved his store to another platform.

That second point matters more than any price comparison on this page. When you build on a simulation, you are building on something the platform never promised to keep.

Worried about building on something that can be removed? Owning the code is the difference — see how →

Which route is yours

Your situation Route
Online only, one granularity works for everything Redefine the unit — free, and set up unit pricing
A handful of fixed sizes, each with its own stock Variants
Many sizes, or sizes cut from shared stock Variants will oversell — use the unit approach
Till only, and you can accept the app quality An app, after checking tax and inventory behaviour
Both online and at the till No single off-the-shelf answer exists
Your cheapest item costs less per unit than a penny The unit approach breaks; rethink granularity
Reporting by product matters to you Avoid apps that create temporary product codes

A fourth option, with the limits stated first

We can build this, and we will start with what it will not do, because every other page in this space starts with what it will.

What no one can give you on a standard plan: the checkout will show the sub-unit count, not "2.5 m". Refunds are entered in sub-units. Receipts and the inventory column read in sub-units. There is a Shopify mechanism that would show a single clean line — and it is restricted to Shopify Plus for the kind of app we build. We are not going to promise it.

What a properly built version does that the free route does not:

  • A storefront selector where the customer types 2.5 m and sees €32.25, with the sub-unit arithmetic hidden.
  • The real measurement travelling with the order — so your packing slip says 2.5 m and the person cutting reads metres, not 25. Two of those templates need a snippet pasted in once; we generate it and tell you where it goes, but Shopify gives no way to do it for you.
  • Your own admin screens speaking in metres, while Shopify counts units underneath.
  • Refunds that understand the unit, so a returned half metre is a half metre.
  • Unit pricing configured so the per-metre price shows everywhere Shopify shows money.

That is the same simulation the £9–29/month apps sell. The difference is that it is shaped around your granularity, your trade's vocabulary and your other rules, rather than a settings screen built for everyone.

Tell Shopivibe what you want your store to do — "let customers order fabric from 0.5 m in 10 cm steps, and put the real length on the packing slip" — and it works out how, builds it, and checks it against your own store's data before anything goes live. You see in your Shopify admin, in plain language, what is switched on and what it has done. It stays looked after; there is nothing for you to run.

Early access is open now, and the $49 plan is free for the whole of it.

Where this one stands today, plainly. Everything behind the shop front — the pricing, the stock, the measurement travelling to the packing slip — is ordinary work. The piece that is not there yet is the selector the customer sees, and it is genuinely being built rather than being a maybe. Worth telling us now so yours is shaped from a real fabric shop rather than a guess.

And be honest with yourself about the till. If you weigh things at a counter, the native route is staff entering sub-units, and no software makes a scale talk to Shopify natively. A till extension can be built to convert "2.5" into the right number of units. It cannot make Shopify accept 2.5.

If a $9/month app already handles your case and its tax behaviour checks out, use it. This is worth building when the sizes, the vocabulary and the downstream paperwork have to be right — which, in fabric, food and cut-to-length trades, is usually the whole job.

Checked against Shopify's documentation and the App Store on 29 July 2026.