Series: AI × Supply Chain build breakdown
Stack: Claude Code · Shopify · Google Sheets
The problem
Lost or damaged parcel, customer gets a free replacement. Fine. But process that €0 order naively and it lies to everything: it pads order count, drags AOV down, and tells your demand model you sold units you actually gave away. A year of that and your run-rates are quietly wrong and nobody knows why.
What I built
A standard, then a skill on top of it.
Every non-sale order (replacement, gift, sample) gets one tag, no-charge, plus a reason (lost-in-transit, damaged, pick-error). That one word pulls it out of revenue, AOV, order count and the run-rate my supply agent reads. The replacement gets built on the full-price SKU with a 100% discount, so the stock still comes off (real product left the building) but the money and demand signal don’t.
The skill pulls the original order, builds the €0 replacement properly, tags both, and drops a row in a claims tracker so I’m not chasing carriers from memory.
Where it failed
First instinct was to use the “free sample” SKU. Wrong. It books as donated stock and kills the claim trail. The fix nobody tells you: full-price SKU plus a 100% line discount. That’s the thing that makes the books, the stock count and the carrier claim all agree.
Also: carriers love to pay out at cost, not retail. So a claim is money you might get back, never money you book before it lands.
Leverage rating: 3 / 10
Small. But it runs on every incident and protects data three other systems read. I’ll take a small fix that stops the rot.
Related: this rides on the same inbox scan as my dispatch tracker, and it’s the clean-data discipline the Shopify Ops Starter bakes in. The skill is forkable, email me.