Project

Item Clearancer

Clearance listings from a scan

When a damaged or shelf-worn item goes to clearance, it needs its own listing so it can be priced and sold apart from the good copies. Doing that by hand in Shopify took 5 to 10 steps: duplicate the product, rename it, change every SKU and barcode, fix the price, and adjust stock on both listings. Item Clearancer does all of that from one scan and one confirm.

At a glance

Role
Designed and built solo
History
First version in April 2026, extended through the summer
Stack
Next.js, Shopify Polaris and the Shopify Admin API, on Vercel. No database
Used by
Store staff, from the Apps menu in the Shopify admin
Shopify access
Reads and writes products and inventory. Every listing it creates is a draft

01What it does

Scan a barcode or type a SKU, and the item joins a queue. Each item shows the clearance copy it will become, with the new title, SKU and barcode beside the old ones, before anything is created. The rest of the item is laid out as steps, and each is checked off as it is filled in.

One item in the queue. Its new SKU, barcode and title up top, then steps for the reason, pricing with the margin before and after, location, and an optional stock change.
  • Prefixed identifiers. The copy gets a “Clearance:” title, and every variant's SKU and barcode gets an “x” in front. Scanning the clearance copy at the register rings up the clearance copy, never the full-price one.
  • The reason travels with it. The clearance reason is added to the top of the product description, and the shelf location is saved to the product.
  • Store rules applied for you. Every clearance copy is marked as clearance with no backstock. Sheet music and books are also marked final sale.
  • Pricing with the margin in view. Enter a clearance price or a discount and the other fills in. The original price becomes the compare-at price, and the margin against cost on file is shown before and after.
  • Stock on both sides. The clearance copy starts with 1 on hand. Staff can take 1 off the original listing in the same step.

02Batches and collisions

Staff can queue a whole cart of items and create them together. When they're done, the app gives them a CSV of the new SKUs for printing labels.

A batch of three, created. One already had a clearance copy, so the new one stepped up to an xx prefix. The label CSV is ready to download.

If an item already has a clearance copy, the app checks Shopify before the new one is made. The next copy steps up to “xx”, and then further if needed, so two clearance copies never share a SKU or barcode. Staff see a warning on the preview so they know another copy is already out there.

03How it's built

It's a small embedded Shopify app with no database of its own. Shopify is the only record. Stock changes carry an idempotency key, so a retried request can't adjust stock twice.

When it takes a unit off the original listing, it also tells the Annual Inventory Lookup Tool. That tool then logs a labelled clearance adjustment with the reason, so staff don't see an unexplained drop in stock. If that message fails, the clearance listing is still created.

04What it leaves to people

It never publishes anything. Every clearance listing is created as a draft, with a direct link to it in Shopify, so a person reviews it before it goes on sale.

Screens show the tool running on demo data.