Ecommerce Catalog Price Change Monitor for Shopify/WooCommerce
Pricing
Pay per usage
Go to Apify Store
Ecommerce Catalog Price Change Monitor for Shopify/WooCommerce
Captures public Shopify and WooCommerce catalog snapshots and emits product and variant price change rows.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Brian Keefe
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Apify Actor that captures public ecommerce catalog snapshots and emits normalized product and variant rows for price-change monitoring.
What it does
- Accepts
storeUrlsand/ordomains - Detects Shopify and WooCommerce storefronts from public pages and endpoints
- Uses Shopify
products.jsonpagination as the primary source when public - Uses WooCommerce
wp-json/wc/store/v1/productsas the primary source when public - Falls back to sitemap, collection/category, and product pages with public schema markup when API-style endpoints are unavailable
- Emits current snapshot rows and optional delta fields against a supplied prior snapshot
Public data only
- No login, cart, checkout, account, or admin access
- No private APIs
- Only public storefront HTML, sitemap XML, and public JSON endpoints
Input
{"storeUrls": ["https://demo-shop.example","https://demo-woo.example"],"maxProducts": 250,"compareToPreviousDataset": true,"previousSnapshot": [{"storeUrl": "https://demo-shop.example","platform": "shopify","rowType": "variant","handle": "trail-coffee-beans","sku": "TRAIL-1","sourceUrl": "https://demo-shop.example/products/trail-coffee-beans","title": "Trail Coffee Beans - Single Bag","price": 19,"compareAtPrice": 24,"availability": "in_stock"}],"includeVariants": true}
Notes:
storeUrlscan include subpaths, which is useful for local fixture testing.domainsare normalized tohttps://<domain>.previousSnapshotis an inline array of rows from a prior run. Use it withcompareToPreviousDatasetfor deterministic delta fields.compareToPreviousDatasetis optional. Delta fields are produced whenever a usablepreviousSnapshotis supplied.
Output
Each dataset item is one product or variant snapshot row.
Key fields:
storeUrl,domain,platformsnapshotTimestamp,rowTypetitle,handle,skuprice,compareAtPrice,markdownPercentavailabilitycollection,categoryimageUrl,sourceUrlpreviousPrice,previousCompareAtPrice,previousAvailabilitypriceDelta,compareAtDelta,priceChanged,availabilityChanged,deltaStatus
See examples/sample-output.json for a representative snapshot.
Local development
Install dependencies:
$npm install
Run deterministic offline smoke tests:
$npm test
Run locally with Apify CLI:
$npx --yes apify-cli run --purge --input-file examples/sample-input.json
Implementation notes
- Shopify extraction prioritizes
/products.jsonpagination and then enriches from sitemap and public product/collection pages. - WooCommerce extraction uses the public Store API when available and falls back to public schema/product pages when it is not.
- Smoke tests use a local HTTP fixture server, so
npm testdoes not require internet access.