This project is built for ecommerce technical troubleshooting. It catches concrete product-feed issues before a merchant imports a CSV.
This is an unofficial project. It is not affiliated with Shopify or Google.
What it does
Upload or drag/drop a Shopify product CSV.
Parse the file locally in the browser.
Group variant rows by product handle.
Detect row-level and product-level data issues.
Filter issues by severity, type, or search text.
Export an issue report as CSV.
Export a trimmed cleaned CSV copy.
Load built-in sample data for quick testing.
You can also test with examples/northline-outdoor-sample.csv.
Missing or poorly formatted handles
Blank or duplicate CSV headers
Rows with too many or too few cells
Missing product titles
Missing vendor/brand values
Missing descriptions
Missing product images
Invalid image URLs
Missing image alt text
Missing product category/type values
Missing or invalid prices
Compare-at price lower than active price
Missing SKUs
Duplicate SKUs
Invalid or negative inventory quantities
Missing barcode/GTIN or MPN when product is not marked custom
Unusual status or published values
Long SEO title and description fields
This app has no backend. Product CSV files are parsed in the browser tab and are not uploaded anywhere.
That matters because ecommerce product exports can contain sensitive operational data: SKUs, pricing, inventory, product plans, and supplier information.
Run locally Requires Node 20 or newer.
npm run dev Open: Local port You can also deploy it as a static site because the app is just HTML, CSS, and JavaScript.
npm test
The tests cover the CSV parser, sample data, and core analyzer behavior.
For the same check through a repo-friendly script:
npm run check
CONTRIBUTING.md
index.html
src/
main.js
styles.css
lib/
analyzer.js
csv.js
sampleData.js
tests/
analyzer.test.mjs
csv.test.mjs
rules.test.mjs
sample.test.mjs
tools/
dev-server.mjs
docs/
architecture.md
rules.md
examples/
northline-outdoor-sample.csv
Small ecommerce troubleshooting jobs often begin with unclear complaints: products are disapproved, a feed looks wrong, or a CSV import failed.
This project turns that messy starting point into a concrete checklist. It does not promise sales growth or guaranteed Google approval. It simply inspects the file, points to affected rows, and explains what should be fixed.
Dependency-free CSV parser with quoted field support.
Malformed CSV structure checks for bad quotes, uneven rows, and broken headers.
Explicit rule engine instead of vague AI scoring.
Browser-only privacy model.
Clean DOM rendering and accessible controls.
Exportable reports that could be attached to a freelance job.
Tests for parsing, row mapping, normalized headers, rule docs, and analysis logic.
No tracking scripts, API keys, generated build output, or sample customer data are included.
The sample CSV is fictional.
The package metadata includes the MIT license and ecommerce/feed-related keywords.
.editorconfig is included so formatting stays consistent across editors.
CONTRIBUTING.md explains how to add rules without breaking report exports.
docs/rules.md is checked by tests so issue types stay documented.
It is not a replacement for Shopify, Google Merchant Center, or Google Ads diagnostics.
It does not log into stores or inspect live product pages.
It does not validate real GTIN ownership.
It does not guarantee Merchant Center approval.
It currently supports CSV only, not XLSX.
MIT