Ecommerce Catalog Price Change Monitor for Shopify/WooCommerce avatar

Ecommerce Catalog Price Change Monitor for Shopify/WooCommerce

Pricing

Pay per usage

Go to Apify Store
Ecommerce Catalog Price Change Monitor for Shopify/WooCommerce

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

Brian Keefe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Apify Actor that captures public ecommerce catalog snapshots and emits normalized product and variant rows for price-change monitoring.

What it does

  • Accepts storeUrls and/or domains
  • Detects Shopify and WooCommerce storefronts from public pages and endpoints
  • Uses Shopify products.json pagination as the primary source when public
  • Uses WooCommerce wp-json/wc/store/v1/products as 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:

  • storeUrls can include subpaths, which is useful for local fixture testing.
  • domains are normalized to https://<domain>.
  • previousSnapshot is an inline array of rows from a prior run. Use it with compareToPreviousDataset for deterministic delta fields.
  • compareToPreviousDataset is optional. Delta fields are produced whenever a usable previousSnapshot is supplied.

Output

Each dataset item is one product or variant snapshot row.

Key fields:

  • storeUrl, domain, platform
  • snapshotTimestamp, rowType
  • title, handle, sku
  • price, compareAtPrice, markdownPercent
  • availability
  • collection, category
  • imageUrl, sourceUrl
  • previousPrice, previousCompareAtPrice, previousAvailability
  • priceDelta, 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.json pagination 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 test does not require internet access.