Changelog
Rule changes name the Shopify documentation they follow. Versions match the ruleset value in the footer.
2.0.0-m2 — 2026-10-27
- 10 new rules, 26 in total: 6 variant-level (
SHOPIFY_OPTION_NAME_MISSING,SHOPIFY_OPTION_COMBO_DUPLICATE,SHOPIFY_SKU_DUPLICATE,SHOPIFY_SKU_EMPTY,SHOPIFY_VARIANT_ID_RISK,SHOPIFY_VARIANT_LIMIT_DAILY) and 4 resource-level (SHOPIFY_IMAGE_HTTP,SHOPIFY_TAGS_UNQUOTED,SHOPIFY_BARCODE_OVERFLOW,SHOPIFY_WEIGHT_UNIT). - Only
SHOPIFY_IMAGE_HTTPfixes automatically: the scheme is switched to https and the rest of the URL is kept byte for byte. Every other new rule reports, because the repair is a business decision (which SKU, which option name, which tags belong together) or changes a variant ID. SHOPIFY_IMAGE_UNREACHABLEis not implemented. It needs one HTTP HEAD per image URL and the rule engine is a pure synchronous function of the parsed file; fetching URLs would also contradict the no-upload statement on /security. It stays an explicitly opted-in separate feature, not a rule that quietly phones out.SHOPIFY_SKU_EMPTYstays quiet unless another variant of the same product has a SKU — a store that does not use SKUs should not get 5,000 suggestions.- Rule text carries no benefit claims: no timings, no "faster", no unwritten promises — handoff §7.
1.0.0-m1 — 2026-10-25
- Parser: BOM detection and stripping, strict UTF-8 with windows-1252 fallback, LF/CRLF/mixed detection, RFC 4180 quote state machine, field-count mismatches, blank runs, 1 MB streaming chunks, 500,000 rows / 200 MB caps.
- 16 rules: 7 file-level, 9 record-level. Each carries a
docUrlto Shopify's import documentation. - Byte-exact export: header strings and order preserved, untouched cells keep their original quoting, output is UTF-8 without BOM and LF.
- Undo / revert of every applied fix; export hash returns to the original after a full revert.
- Local hosting: front end and licence API served from the same Node process, no third-party CDN, no analytics script.