kreynolds

Work

'47 Brand: catching bad product data before it hit the storefront

Product data came in from an external source and out the other side into Shopify, and along the way it regularly lost or scrambled information: missing fields, wrong tags, inconsistent attributes. I built an auto-tagging system that audits every product as it comes through and rebuilds what's wrong, automatically.

01
A rules engine that reads every product webhookShopify fires a webhook on every product create and update. Built a listener that runs a configurable set of audit rules against each payload as it arrives, instead of waiting for someone to notice a bad listing after the fact.
02
Reconstructing data, not just flagging itInbound product data from an external source regularly landed in Shopify missing fields or carrying the wrong tags. The system didn't just flag those gaps, it worked out what the correct value should be from the rest of the product's data and rewrote it.
03
If-this-then-that rules instead of one hardcoded scriptEach audit is its own rule: a condition to match and a fix to apply. A new bad-data pattern gets a new rule added to the set, not a new deploy or a rewritten script.
04
Writes straight back to Shopify, no manual queueOnce a rule fires, the corrected product data saves back to Shopify automatically through the Admin API. No spreadsheet, no manual review pass, no one chasing bad listings by hand.

What an audit catches

Audit run, on a real product import (recreated)

Inbound (as received)

  • Material: Cotton
  • Size: missing
  • Care instructions: missing

After the audit

  • Material: Poly-cotton blend
  • Size: M
  • Care instructions: Machine wash cold

Rules fired

material-mismatchsize-backfill-from-skucare-default-by-category

Recreated layout, generic example data. Every rule is scoped and logged, so a fix can be traced back to exactly which condition matched and what it changed.

The goal wasn't to catch bad data faster. It was to stop anyone from having to catch it at all.