ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides9 min read

Fabric store inventory: bolts, cuts, and the remnant problem

Fabric store inventory management for cut-to-length stock: pick a tracking grain, record every cut, and keep the remnant bin selling instead of rotting.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

A yard of fabric looks like a unit of inventory, so the tools should just work. They don't, because fabric is the one stock where selling doesn't reduce the count — it shrinks the unit. A bolt of canvas doesn't go from 15 bolts to 14 when a customer buys two yards; it goes from one 15-yard bolt to one 13-yard bolt. Every inventory system built around whole units stumbles at exactly this point, and fabric stores that haven't decided how to handle it end up with three different numbers for the same shelf: what the computer says, what the bolt says, and what the tape measure says. Here's how to pick a system that keeps those numbers identical.

The three states of a fabric shelf

Every print in the shop lives in one of three states:

  • Full bolts — factory-sealed, countable units. Two bolts of the same print are interchangeable.
  • Partials — a bolt that's been cut into. This is where most of your sellable inventory actually lives, and it's the state whole-unit tracking handles worst.
  • Remnants — cut pieces too small to sell by the yard at full price. A different product, economically, even though it's the same cloth.

The management question is which state your system tracks. Full bolts are easy; the entire craft of fabric store inventory management is keeping partials and remnants honest.

What Shopify can and can't represent (verified)

Before choosing a setup, know the platform's actual limits, checked against current documentation as of November 2026:

  • Quantities are whole numbers. In Shopify's inventory model, a variant's quantity at a location is an integer — the admin, the CSV, and the API all deal in whole units (shopify.dev, InventoryQuantity, accessed November 2026). You cannot carry 12.5 yards on a variant.
  • Unit prices are display-only. Shopify lets you attach a unit price to a product or variant — price per yard, per meter, per 100 g — and displays it on product and cart pages (Shopify Help Center, "Displaying unit prices for products," accessed November 2026). Useful for customer comparison, but it's a calculation on top of a normal priced variant. It does not sell fractional quantities.
  • Custom sales don't touch inventory. On Shopify POS, a custom sale lets you ring any amount for anything — but custom items aren't tracked products, don't decrement stock, and don't report like product sales (Shopify Help Center, "Make a custom sale in Shopify POS," accessed November 2026). Convenient for odd lengths, dangerous for accuracy.

The conclusion those three facts force: you must pick an integer grain — the smallest unit your system will track — and everything above it (half-yards, yards, bolts) is a multiple.

Three setups that work

Setup How a cut is recorded Best for Watch out for
A. Yard-grain (or half-yard grain) Cut = a normal sale of N units Most shops selling cut lengths to walk-ins Halves need a second variant or a smaller grain
B. Bolt-as-unit + cut ledger Cut = an inventory adjustment with a note Trade-heavy shops selling mostly full bolts Revenue and stock live in different records
C. Custom-sale ringing Cut = a custom line, then a manual adjustment Odd lengths, special orders, one-offs Stock silently wrong until you adjust

Setup A is the workhorse, and the trick that makes it work is choosing the smallest grain you actually sell. If you cut half-yards, track in half-yards.

Worked example (illustrative): a 15-yard bolt of 10 oz duck canvas at $14/yard. In half-yard grain, the bolt arrives as 30 units priced at $7 each (illustrative). The week's cuts:

Day Customer wants Rung as Units sold Remaining
Mon 2.5 yards 5 × half-yard 5 25
Wed 4 yards 8 × half-yard 8 17
Fri 1.5 yards 3 × half-yard 3 14
Sat 3 yards 6 × half-yard 6 8

Every cut is an ordinary sale — the count moves at the register, the revenue and the stock movement live in the same record, and Saturday night's number (8 units = 4 yards) matches the shelf without a single adjustment. The per-yard price still displays at $14 (illustrative) if you set the unit price; the cart just sells in half-yard increments.

Setup B keeps the bolt as the tracked unit and records each cut as an adjustment — accurate on stock, but the sales report and the inventory report tell separate stories that a human must reconcile. It suits shops whose volume is whole bolts to trade customers, with walk-in cuts as the exception. Setup C should stay an exception everywhere: ring the custom amount so the customer pays, then immediately adjust the tracked grain so the shelf is true. The failure mode is skipping the second half, which converts your inventory report into fiction one odd length at a time.

The remnant bin is a product, not a junk drawer

Set a bright-line rule and enforce it: when a bolt falls below a threshold — two yards is common — it leaves the by-the-yard system and becomes a remnant. In the yard-grain setup, that's moving the remaining 8 half-yard units from the canvas SKU to a remnant listing: photographed, measured, priced as a one-off.

Pricing is where remnants earn or lose their keep. A common approach is 30–40% off per-yard equivalent (illustrative — set it where your clearance actually moves), listed with the exact dimensions in the title so nobody has to ask. The bin's purpose is converting shrunken bolts into cash and shelf space; the failure mode is remnants aging into dead stock you can't give away. If the bin outgrows its shelf, treat it as a symptom and deal with it the way you'd deal with any unsellable accumulation — our dead stock guide covers the disposal ladder. Two disciplines keep it healthy: measure and list remnants the same week they're created, and cap the bin physically — when the shelf is full, the next remnant forces a markdown decision on an older one.

Choosing your grain, and when weight enters the picture

The grain decision is a customer-behavior decision in disguise. If your counter regularly hears "a quarter yard of this," a half-yard grain generates constant custom ringing — drop to quarter-yard grain for those prints. If you're a quilt shop selling precise cuts, the smaller grain costs nothing extra in setup and saves hundreds of manual adjustments a year.

Some cut goods genuinely do sell by weight rather than length — batting off the roll, webbing, chain, rope, and scrap buckets behave more like bulk goods than yardage. Some of that selling happens on Shopify's weight-based and custom-sale paths, which carry their own setup and variance quirks — the practical answer today is per-unit pricing with the weight in the title, and honest per-item adjustments when the scale disagrees with the count.

One boundary worth marking: the general problem of buying in one unit and selling in another — cases versus eaches, and the data errors that pairing produces — is its own subject, covered in our unit-of-measure piece. Cut-to-length is the harder cousin of that problem, but the case-vs-each mechanics live there, not here.

The weekly bolt walk

Fabric stock rots quietly: moths, fading in the window, crush damage on the shelf ends. A weekly walk catches it:

  1. Reconcile one section. Pick a section, compare system count to tape-measure count on every partial. Investigation beats wholesale recounting.
  2. Promote and demote. A bolt that sold through to your remnant threshold gets converted to a remnant listing this week, not someday.
  3. Reorder from velocity, not eyeball. Your system's units-sold-per-week per print is the reorder signal; a bolt that's "been around forever" is a data point, not a feeling.

Every adjustment from the walk — moth damage, a mis-cut, a miscount — should be recorded as a dated inventory adjustment with a reason, not a silent correction. The adjustment history is what turns next quarter's discrepancies from mysteries into patterns; our adjustments guide shows the audit trail Shopify already keeps.

A tooling note, honestly stated: InventoryX reads the quantities in your Shopify admin, so it sees exactly what setup A sees — and nothing beyond it. Shops running bolt-ledgers or custom-sale ringing have stock truth that lives outside the platform, and no read-only tool can watch what the platform doesn't contain. That's a reason to prefer setup A, not a complaint about the tool.

Common questions

Can Shopify sell fabric by the yard? Yes, with a chosen grain: track inventory in whole yards or half-yards as the variant unit and sell multiples of it. Quantities must be whole numbers, so fractional cuts are handled by making the grain itself small — a half-yard cut becomes one unit. The per-yard unit price display is separate and informational only.

How do I track partial bolts? Either let the grain do it — a 15-yard bolt in half-yard grain is 30 units, and each cut sells units down — or keep the bolt as the unit and log every cut as a manual inventory adjustment against a cut ticket. The first is less work; the second suits trade-heavy bolt sales.

What should I do with fabric remnants? Convert them the week they're created: exact measurements in the listing, one-off pricing at a set discount to per-yard equivalent, photographed and shelved by size. Cap the bin physically and force a markdown on the oldest remnant whenever a new one needs the space, so the bin keeps turning instead of aging.

How often should a fabric shop count inventory? Never count the whole shop when you can count a section: rotate through sections weekly, reconciling partials against the tape measure. Full physical counts stay for year-end. Record every variance as an adjustment with a reason so patterns — a faulty blade, a shrinkage-prone print — surface in the history.

Should I track fabric in yards or bolts? Track in the unit you sell. Walk-in cut business argues for yard (or half-yard) grain; trade customers buying sealed bolts argue for bolt units with a cut ledger. Shops doing meaningful amounts of both usually run yard-grain on the floor and treat sealed-bolt sales as multiples of it.

Next step

Decide your grain — for most shops that's half-yard — and convert your twenty best-selling bolts to it this week, one shelf at a time, with a tape measure and an evening. Run the weekly bolt walk on that one section for a month before expanding; if the counts hold, roll the system across the shop. And when the remnant bin starts filling faster than it sells, the dead stock disposal ladder is the escalation path worth reading before the bin needs its own shelf.