Turn a messy product spreadsheet into a clean feed
Drop in a product export and get back a file in Google Shopping’s format, with every fix listed and every problem it couldn’t fix flagged by row. It runs entirely in your browser: nothing is uploaded.
A product export with a header row: WooCommerce, Shopify, Magento or a spreadsheet saved as CSV (comma, semicolon or tab separated). Columns are matched by name (SKU, title, price, stock, EAN and so on), and Shopify variant rows are read with their parent product. Prices without a currency are interpreted as GBP; no currency conversion is performed. The sample is a fictional homeware shop’s export with typical problems.
The unglamorous half of every migration
- Prices in any format (“£12.5”, “12,50”, “GBP 12.50”) become “12.50 GBP”.
- Stock as numbers or words becomes in_stock, out_of_stock or preorder.
- Descriptions lose stray HTML, entities and doubled spaces.
- Titles written in capitals are softened; over-long titles are flagged.
- Links and images on plain http stay unchanged until you confirm the https destination works; relative links are flagged.
- Product condition stays blank until you supply the actual condition. Nothing defaults to new.
- Barcodes (GTIN/EAN) are checked with their check digit; invalid ones are preserved and flagged, not guessed.
- Duplicates and gaps: repeated IDs and missing required fields are listed by row.
Bad data doesn’t get better by moving it
Most migrations carry the mess straight across, and the new platform inherits every problem the old one had. The fix is to extract, clean and check the data before it goes anywhere, and to be honest about what can’t be cleaned automatically.
That’s why this tool flags rather than guesses: an invalid barcode or a missing price needs a person, not a plausible-looking default.
A real catalogue has its own rules: variants, bundles, trade pricing, categories. Cleaning one properly is part of any replatform I run. Tell me about yours