Tom Sailors Contact
Guide · Inventory

Fractional inventory on Shopify — a solution with no app

Published 2023-10-04 · Updated 2026-06-11

Shopify's inventory field can't hold a decimal — still true in 2026. If you sell by the yard, ounce, or any fractional unit, here is the workaround this site has documented since 2023: fully automated, no paid app, no theme changes, no effect on page speed. The real decimal lives in a Google Sheet; Shopify gets a rounded-down integer it can't oversell against.

The shape of it

Step 1 — automated export to Google Sheets

Install Matrixify from the App Store and connect it to a Google Sheets document. Set a scheduled export of orders (with line items) into an "Export from Shopify" tab. Every order lands as a row shortly after it's placed.

Step 2 — automatic decimal subtraction

A "Precise Inventory" tab holds one row per SKU with the true decimal stock. An on-edit Google Apps Script watches the export tab, matches line-item SKUs, and subtracts the sold quantities. The companion post publishes both scripts — they're short, and you can paste them in as-is.

Step 3 — rounded write-back

A third tab, formatted as a Shopify import sheet, carries FLOOR() of each decimal figure. Matrixify imports it on a schedule, updating Shopify's inventory to the largest whole number you can actually fulfill.

Tuning

Where this approach tops out

The sheet version is genuinely fine for most fractional-unit stores. It strains when order volume is high enough that the 5-minute window matters, when multiple locations each need their own decimal ledger, or when POS sales bypass the export. The successor at that point is a small custom app — order webhooks in, decimal ledger in Postgres, inventory written back through the GraphQL Admin API in seconds rather than minutes. Same logic, sturdier home. That build is Tom's territory; the sheet version above you can have running this afternoon.

Want this running on your store?

Email Tom with your unit of sale and rough order volume — the sheet-based version is a short setup; the app-based version is quoted after a look at the catalog.

Email Tom →