# Changelog of Shopify Products Scraper & AI Shopping Readiness Audit (`yourevenings/shopify-catalogue-audit`) Actor

- **URL**: https://apify.com/yourevenings/shopify-catalogue-audit/changelog.md
- **Full Actor documentation**: https://apify.com/yourevenings/shopify-catalogue-audit.md

## Changelog

### 0.1.9 (22 Oct 2026)

- README only: links to two new example tasks (barcode issues; full catalogue with all images and variants).

### 0.1.8 (22 Oct 2026)

- Barcode check across the whole catalogue (with `readAllProductDetails` on; the detail sample otherwise): every checked variant gets `barcodeStatus` (`valid`, `missing`, `invalid` for a wrong GTIN-8/12/13/14 length or check digit, `duplicate` for the same barcode on more than one variant in the store), `barcodeValidGtin` and `barcodeDuplicateOf`. Audit rows get `barcodeCheck` totals with duplicate examples. New `BARCODE-ISSUES` CSV (problem variants only) in the key-value store, linked from the Output tab and status message. Read-only. The readiness score formula is unchanged.
- Fuller product rows: `images` (every image in position order, with URL, size, linked variants, and alt text when the product's own JSON was read) and `variants` (every variant: SKU, price, compare-at price, options, availability and grams from the feed; barcode, weight and unit, and inventory fields from the product's own JSON when read). All existing fields are unchanged. New `detailRead` flag.
- Stock: `inventoryQuantity`, `inventoryTracked` and `sellsWhenOutOfStock` are copied only when the store's public product JSON publishes them; otherwise `null`. Never estimated.
- New input `readAllProductDetails` (default off): read every product's own JSON (one extra request per product, same rate limit and robots.txt/Crawl-delay rules). The audit's GTIN and alt-text checks then cover every product read. Products whose JSON can't be read in time are counted in the note.
- New Output view **Variants** (one row per variant); export it with `unwind=variants`. Charging is unchanged: one product event per product row.
- "Why this one" list updated (still 7 points).

### 0.1.7 (22 Oct 2026)

- README only: "Works with" block under the title, and a short section on AI agents paying for runs via x402 or MPP (Apify agentic payments). No code changes.

### 0.1.6 (22 Oct 2026)

- Fixed: paging no longer stops at the first short `/products.json` page (some stores return short pages mid-catalogue, which silently lost products). Paging continues until an empty page, with a guard that stops if a page only repeats products already read.
- Shopify's public feed stops at page 100 (25,000 products). Page 101 is never requested. Above 25,000 the rest is read from the store's public product sitemap, collection feeds and each product's own JSON, within robots.txt.
- New audit fields: `totalProductsKnown`, `totalProductsKnownSource`, `productsRead`, `productSources`. `catalogueComplete` is `true` only when verified (feed read to an empty page or to the exact `/meta.json` count, or every sitemap product found). Truncation is explained in the `note`.
- With `includeAudit` off, a truncated catalogue gets a free `catalogue_incomplete` store row.
- robots.txt `Crawl-delay` for this crawler or all crawlers is honoured. Backoff on HTTP 429/5xx is unchanged.
- The Actor stops fetching about 45 seconds before the run timeout so the audit is still delivered, and says so.
- `maxProductsPerStore` maximum raised from 50,000 to 100,000. The default run timeout is unchanged (300 s); very large catalogues need a longer timeout set in run options.
