Export any public WooCommerce store's full catalog (products, variations, prices, stock) from the Store API and get typed change alerts on every scheduled run — price drops, new products, stock-outs, and low-stock-remaining warnings.
All notable changes to this actor are documented here. Format follows
Keep a Changelog ; versions follow semver.
[0.1.0] — 2026-08-16
First release.
Added
Catalog export from the public WooCommerce Store API (wc/store/v1), one row per product or per
variation, with prices in exact integer cents.
Store detection via /wp-json/ namespaces with a Store API fallback probe. Detected REST namespaces
are exported — they enumerate the site's REST-enabled plugins.
Snapshot and diff per store in a named key-value store, emitting seven typed change events:
price_drop, price_increase, low_stock, back_in_stock, out_of_stock, new_product,
removed_product.
Low-stock detection from two signals: the store's own low_stock_remaining where published, and
otherwise the unit count parsed out of stock_availability and tracked across runs. Fires on
crossing into the threshold or falling further, not on every run while low.
Per-variation price enrichment within a configurable budget, with unenriched rows explicitly
labelled priceSource: "parent".
Watch filters over events only (nameIncludes, categories, tags, minPctChange).
Slack and generic webhook alerts, grouped per store, carrying every low-stock hit and the ten most
significant price moves.
Pre-run cost estimator written to COST-ESTIMATE.json and logged, derived from each store's own
X-WP-Total header rather than from an assumption.
Free-plan caps: 1 store, 50 records, no alert delivery.
Standby HTTP mode sharing one run() with the one-off entry point, plus GET /health.
npm run discover to qualify prospect domains before spending anything.
Health records (kind: "health") so a run that collects nothing is visible in the dataset rather
than silently empty, and endpoint-drift detection for sources that return 2xx with the wrong shape.
199 automated tests, including diff fixtures covering every event type exactly once and detection
fixtures captured from live sites.
Notes
Prices are parsed from minor-unit strings using each store's currency_minor_unit. Zero-decimal
currencies are handled: "115" at exponent 0 is $115.00, not $1.15. No floating point arithmetic
appears anywhere in the price path.
Product names are HTML-entity decoded, so exported names match the store's rendered page.
Stores whose robots.txt excludes /wp-json/ are reported skipped and never charged. This affected
3 of the 6 WooCommerce stores found while probing 42 domains during the build.