Shopify & WooCommerce Catalog Change Monitor avatar

Shopify & WooCommerce Catalog Change Monitor

Under maintenance

Pricing

from $0.001 / result

Go to Apify Store
Shopify & WooCommerce Catalog Change Monitor

Shopify & WooCommerce Catalog Change Monitor

Under maintenance

Monitors public Shopify and WooCommerce product catalogs and emits normalized change events between runs.

Pricing

from $0.001 / result

Rating

0.0

(0)

Developer

Leadercorp

Leadercorp

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

Categories

Share

Monitor public Shopify and WooCommerce product catalogs and emit normalized change events between Actor runs.

What it does

This Actor fetches public product catalog endpoints from Shopify and WooCommerce stores, normalizes products into a common structure, compares the current catalog with the previous snapshot stored in the default Apify Key-Value Store, and writes product-level change events to the dataset.

It is designed for lightweight monitoring of public e-commerce catalogs without browser automation, login flows, CAPTCHA bypass, or proxies by default.

Use cases

  • Track new and removed products across competitor or partner stores.
  • Monitor price and availability changes for public catalog items.
  • Build recurring catalog intelligence feeds from simple Shopify and WooCommerce stores.
  • Detect added or removed variants when stores expose variant data publicly.

Input

{
"stores": [
{
"url": "https://www.allbirds.com",
"platform": "shopify"
},
{
"url": "https://woocommerce.com"
}
],
"autoDetectPlatform": true,
"maxProductsPerStore": 500,
"compareWithPreviousRun": true,
"emitUnchangedProducts": false,
"includeVariants": true,
"requestTimeoutSecs": 30,
"snapshotStoreName": "catalog-change-monitor-snapshots"
}

Input fields

FieldTypeRequiredDefaultDescription
storesarrayyes-Stores to monitor. Each item must include url and may include platform.
stores[].urlstringyes-Public store homepage or catalog URL.
stores[].platformstringno-Optional platform override: shopify or woocommerce.
autoDetectPlatformbooleannotrueWhen no platform is provided, try Shopify first and WooCommerce second.
maxProductsPerStoreintegerno500Maximum number of products to fetch per store.
compareWithPreviousRunbooleannotrueCompare against the previous snapshot in the default Key-Value Store.
emitUnchangedProductsbooleannofalseEmit unchanged events for products with no detected changes.
includeVariantsbooleannotrueInclude variants in normalization and variant add/remove detection.
requestTimeoutSecsintegerno30Timeout for each catalog HTTP request.
snapshotStoreNamestringnocatalog-change-monitor-snapshotsNamed Apify Key-Value Store used to persist snapshots across Actor runs.

Output

Each dataset item is a normalized event:

{
"storeUrl": "https://www.allbirds.com",
"platform": "shopify",
"eventType": "price_changed",
"productId": "1234567890",
"handle": "wool-runner",
"title": "Wool Runner",
"productUrl": "https://www.allbirds.com/products/wool-runner",
"variantId": null,
"variantTitle": null,
"currency": null,
"oldPrice": "98.00",
"newPrice": "109.00",
"oldAvailable": true,
"newAvailable": true,
"imageUrl": "https://cdn.shopify.com/example.jpg",
"scrapedAt": "2026-05-23T10:00:00.000Z",
"errorMessage": null
}

Event types

Event typeDescription
new_productProduct exists in the current snapshot but not the previous snapshot.
removed_productProduct existed in the previous snapshot but not the current snapshot.
price_changedProduct-level normalized price changed.
availability_changedProduct-level normalized availability changed.
variant_addedVariant exists in the current product but not the previous product.
variant_removedVariant existed in the previous product but not the current product.
unchangedProduct did not change and emitUnchangedProducts is enabled.
store_errorStore could not be fetched or platform detection failed.

How comparison works

For each store, the Actor stores a normalized snapshot in the named Apify Key-Value Store configured by snapshotStoreName under a stable key derived from the normalized store URL. On the next run, the Actor loads that snapshot, compares products by normalized product ID, compares variants by normalized variant ID, emits dataset events, and then saves the latest snapshot.

If compareWithPreviousRun is false, every fetched product is emitted as new_product and the latest snapshot is still saved for future runs.

Limitations

  • Only public Shopify /products.json and WooCommerce Store API catalog endpoints are supported.
  • Shopify product currency is not exposed by /products.json, so currency is usually null for Shopify.
  • WooCommerce variant detail depends on what the public Store API exposes.
  • The Actor does not log in, bypass CAPTCHA, use browser automation, or use proxies by default.
  • Snapshots are stored in the named Key-Value Store configured by snapshotStoreName; changing this value starts a separate comparison history.
  • Store-level failures are emitted as store_error events and do not fail the whole run.

Performance and costs

The Actor uses plain HTTP requests. Shopify is fetched in pages of up to 250 products and WooCommerce in pages of up to 100 products. Runtime and dataset size are mainly controlled by stores, maxProductsPerStore, and emitUnchangedProducts.

Responsible use

Use this Actor only with websites and data you are allowed to access. Respect target website terms, robots policies where applicable, and applicable laws. Do not use it to collect personal data, bypass access controls, or overload websites.

Changelog

0.1.0

  • Initial MVP with Shopify and WooCommerce public catalog support.
  • Added platform auto-detection, normalized snapshots, change events, and store-level error events.
  • Added unit tests for normalization and diff behavior.