A Shopify app that finds the products in a store that Google and Meta won't show, puts a price on them, and lets the merchant fix them from their own admin. I write it, ship it and answer its support email.
A public count of what 3,170 Shopify catalogs are missing.
How many stores that run Google Ads have a product with no image, no description, and five other things. The method is on the page.
How it works
Each store's public product list, the file any browser can open at /products.json, read between 7 September and 2 October. A store is counted if its home page carried a Google Ads conversion tag.public data · Python · SQLiteTen guides to the Merchant Center errors a Shopify store meets.
One page per error: what Google says it means, and where to look in the Shopify admin.
How it works
Every statement about Google or Shopify comes from their own help pages, listed at the foot of each guide with the date they were last read.writing · structured dataIt writes a first draft of a missing product description.
Only from what the product's own data says. Nothing changes in the store until the merchant presses Save.
How it works
Any OpenAI-compatible endpoint. Every sentence of a draft is checked against the product's data before the merchant sees it, and a draft with a link, a price, a promotional word or a number the product didn't have is thrown away.LLM · faithfulness check · Shopify Admin APIConfident category suggestions apply themselves overnight.
A merchant can switch it off, and undo any night's batch in one click.
How it works
A nightly job applies only the suggestions marked ready and keeps each product's previous category with the batch; undo writes those back.scheduled jobs · PostgreSQL · GraphQLA read-only link to Google Merchant Center.
Google's own verdict on each product, next to Feedwatch's. Google approved the app on 30 September, so any merchant can connect.
How it works
Google OAuth with tokens encrypted at rest, the Merchant API read nightly, and everything deleted the moment the merchant disconnects.OAuth 2.0 · Merchant APIIt suggests a category for products that have none.
It can only choose a category that exists, and when it isn't sure it says so instead of guessing.
How it works
The model walks Shopify's taxonomy one level at a time and picks from the real categories under the current branch. When it can't choose between two, it stops a level up. The result is checked against the shop's own Admin API before it's shown.LLM · constrained choice · Shopify taxonomyLive on the Shopify App Store.
How it's built
An embedded Shopify app on React Router, PostgreSQL through Prisma, Shopify's GraphQL Admin API, and Docker on a single server.TypeScript · React Router · PostgreSQL · Docker