Shopify Sales Tracker: Competitor Stock & Units Sold avatar

Shopify Sales Tracker: Competitor Stock & Units Sold

Pricing

from $2.50 / 1,000 product reads

Go to Apify Store
Shopify Sales Tracker: Competitor Stock & Units Sold

Shopify Sales Tracker: Competitor Stock & Units Sold

Track competitor sales from exact stock counts: units sold and revenue per product, sell-outs, restocks and price changes, plus an Excel report for the last 7 and 30 days. Shopify, WooCommerce, T-Soft, ikas, IdeaSoft, OpenCart, GoldenPlanet.

Pricing

from $2.50 / 1,000 product reads

Rating

5.0

(1)

Developer

Rival Stock

Rival Stock

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

2 hours ago

Last modified

Share

See how much your competitors actually sell - as a ready-made Excel report. Shopify Sales Tracker reads the real number of units in stock for every product variant (color, size...) of a competitor's online store - not just an "in stock / out of stock" flag. Run it on a schedule and it turns stock drops into estimated units sold and revenue, flags sell-outs, restocks and price changes, and saves an Excel competitor report for the last 7 and 30 days after every run.

It reads Shopify, WooCommerce, T-Soft, ikas, IdeaSoft, OpenCart and GoldenPlanet stores; the platform is detected automatically.

What you get

  • Excel competitor report after every run - top sellers, best-selling categories, price changes, sell-outs, restocks, new products and daily sales per store, for the last 7 and 30 days. No spreadsheet work.
  • Exact stock per variant (e.g. stockQuantity: 42) wherever the store publishes it
  • Estimated units sold and revenue since the previous run, row by row in the dataset
  • Sell-outs, back-in-stock, restocks (with the number of units added) and price changes
  • Stock corrections filtered out - placeholder counts such as 999, or a large stock cleared at once, are not counted as sales
  • Exact-stock coverage per store in every run's status, so the first test tells you whether a store works
  • Whole catalogs (thousands of products) or a short list of product pages

Exact stock counts, not in-stock flags

Most stock monitors only mark a product as in stock or out of stock. That tells you nothing about sales: a product with 500 units and a product with 1 unit look the same.

Typical stock monitor / product scraperShopify Sales Tracker
Stock informationin stock / out of stockexact units in stock, per variant
Salesnot possible, or do-it-yourself in a spreadsheetunits sold and revenue per product, 7 and 30 days
Reportraw rowsExcel report: top sellers, categories, price moves, sell-outs
Restocksonly when a product comes back from zeroevery restock, with the number of units added
Platformsusually Shopify onlyShopify, WooCommerce, T-Soft, ikas, IdeaSoft, OpenCart, GoldenPlanet

Which stores publish exact stock?

A count can only be read when the store publishes it on its pages or public storefront API. The Actor never guesses: when a count is missing, stockQuantity is null, and prices, availability, sell-outs and restocks are still tracked.

PlatformExact quantityWhat we saw when testing real stores
T-Soft✅ every product11 of 11 stores
ikas✅ per variant4 of 4 stores
WooCommerce✅ when the shop manages stock for the productmost stores with stock management on
IdeaSoft✅ (not for products with selectable options)3 of 6 stores
OpenCart✅ when the theme shows the stock count (not for products with options)depends on the theme
GoldenPlanet (OpenBizBox)✅ per variant (not for products with two or more option types)
Shopify✅ when the theme or a stock app prints it on the product pageroughly 1 in 4 stores; often only some variants

Check a store before tracking it - for free: the Shopify Price & Stock Checker samples products across a store's whole catalog in about a minute and tells you whether the store publishes exact stock counts (and so whether its units sold can be tracked), with a ready input for this Actor. Every run of this Actor also shows the share in its status, e.g. 20 products, 64 variants (91% with exact stock), and the log warns when a store publishes no counts at all.

The Excel competitor report

Every run saves REPORT (an .xlsx file) in the run's key-value store - open it from the run's Output tab. It covers all stores of the run:

SheetWhat it shows
SummaryPer store: products, exact-stock %, units sold and revenue (since the previous run, 7 days, 30 days), sell-outs, units restocked, price increases / decreases, new products, inventory value
Top sellersProducts by revenue over 30 days, with units for 7 and 30 days, current price and stock
CategoriesUnits and revenue per category - which segments of the competitor grow
Price changesOld and new price, change %, date
Sold outVariants that sold out and are still out of stock - gaps your offer can fill
RestocksUnits added - big restocks usually mean a product sells well
New productsFirst seen date, price and stock
Daily salesUnits and revenue per day and store
Stock adjustmentsMoves that were not counted as sales (placeholder counts, stock cleared at once)

The report uses the history the tracker keeps between runs (up to 90 days), so it fills up as your schedule runs: the first run is a baseline, the second gives the first sales, and after a week the 7-day columns are complete. Turn it off with Excel competitor report = false.

How units sold are estimated

Units sold are calculated by comparing two runs of the same tracker:

  1. First run - baseline. The Actor records the stock of every variant. Rows are marked changeType: "baseline" and no sales are reported yet.
  2. Every following run. Each variant is compared with its previous reading:
    • stock went down → estimatedUnitsSold = the drop, estimatedRevenue = units × previous price
    • stock went up → restockedUnits
    • in stock → out of stock → sold-out; out of stock → in stock → back-in-stock
    • price changed → priceChange
    • a placeholder count (99, 999, 9999...) set or cleared, or at least 90% of a stock of 500+ removed at once → stock-adjustment, with no units sold or restocked (the raw stockChange is kept)

👉 Schedule the Actor (for example once a day) with the same Tracker name, and every run gives you the sales since the previous one plus the 7- and 30-day report.

Good to know

  • Estimated units sold are a lower bound: if the store restocked and sold between two runs, only the net change is visible. Shorter intervals between runs give more accurate numbers.
  • Stock can also drop for reasons other than a web sale (marketplace or in-store sales, returns to supplier, corrections). The numbers describe stock movement on the store, not audited sales.
  • Sales can only be estimated for variants with an exact quantity.

Where the previous readings are kept

The previous readings and the sales history are stored in named key-value stores in your own Apify account: stock-tracker-<tracker name> for each tracker (records snapshot-<store> and history-<store>), and stock-latest-readings with the latest reading of every store you have tracked. Nobody else - including the Actor's developer - can see them.

Each run is compared with the previous run of the same tracker. A new or renamed tracker has no previous run of its own, so it is compared with the latest reading of the same store from any tracker - you get units sold right away instead of a new baseline (the 7/30-day history starts again for the new name). Store URLs typed with or without www. count as the same store. Delete both stores to start over from a baseline.

Input

FieldWhat it does
Competitor storesHome page URLs of the stores to track. The whole catalog is read.
Only these productsTrack a fixed list of product pages instead of whole stores - cheaper when only some products compete with yours.
Tracker nameRuns with the same name are compared with each other and share one sales history.
OutputAll variants, or only the variants that changed since the previous run.
Excel competitor reportSave the 7/30-day Excel report after each run (default on).
Max products per storeStop after N products (0 = whole catalog). Handy for a first test.
PlatformAutomatic detection; set it only if detection fails.
Parallel requests / DelayHow fast pages are read. Keep it polite.
ProxyDatacenter proxy is enough for most stores; use residential only if pages get blocked.

Example input:

{
"startUrls": ["https://www.ridgewallet.com", "https://www.cbeaux.com"],
"trackingId": "my-competitors",
"outputMode": "all",
"createReport": true,
"maxProductsPerStore": 0
}

Output

Dataset - one row per variant. Example (values are illustrative):

{
"storeUrl": "https://www.example-store.com",
"platform": "shopify",
"productUrl": "https://www.example-store.com/products/merino-wool-yarn",
"productTitle": "Merino Wool Yarn 100 g",
"variantTitle": "Navy Blue",
"sku": "MW-100-NAVY",
"price": 129.9,
"listPrice": 149.9,
"currency": "USD",
"available": true,
"stockQuantity": 42,
"changeType": "sold",
"previousStockQuantity": 50,
"previousPrice": 129.9,
"hoursSincePrevious": 24.0,
"stockChange": -8,
"estimatedUnitsSold": 8,
"estimatedRevenue": 1039.2,
"restockedUnits": 0,
"priceChange": null,
"scrapedAt": "2026-11-02T06:00:12+00:00"
}

Key-value store - REPORT (the Excel report above) and RUN_SUMMARY (JSON): per store, products read, exact-stock %, units sold and revenue since the previous run and for the last 7 and 30 days, sell-outs / restocks / price changes, and any pages that could not be read.

Export the dataset as JSON, CSV or Excel, or connect it to Google Sheets, a webhook or your own system through the Apify API.

Pricing

You pay per product read - all variants of the product (every color and size, each with its exact stock count) are included in that one charge, and the Excel report is included. No monthly fee.

Apify planPrice per 1,000 products
Free / Starter$3.00
Scale$2.70
Business$2.50

Example: tracking a 2,000-product store once a day is about 60,000 products a month - $180 on Starter, $150 on Business. Use Only these products or Max products per store to track only what matters to you.

Tips

  • Start with Max products per store = 20 to check what a store exposes (see the exact-stock % in the run status), then remove the limit.
  • Use Output: Only changes for daily runs - the dataset gets just the movements, and the Excel report still covers the whole period.
  • Keep the same Tracker name in your schedule so the 7/30-day history keeps growing.

FAQ

Can I see how many sales a Shopify store makes? You can see how many units it sold between two runs, product by product, when the store shows exact stock on its product pages (many Shopify themes and stock apps do; roughly one store in four in our tests). Units sold are estimated from stock drops, so they are a lower bound - see How units sold are estimated.

Why are some sales missing from the totals? Moves that look like stock corrections - a placeholder count such as 999 set or cleared, or almost all of a large stock removed at once - are reported as stock-adjustment and listed on the report's Stock adjustments sheet instead of being counted as sales.

Does it log in or use private APIs? No. It reads only what any visitor's browser receives from the store's public pages, sitemaps and public storefront APIs.

Does it collect personal data? No. It reads product information only.

Is it legal? The Actor reads publicly available product information. You are responsible for how you use it: respect the websites' terms of service and the laws that apply to you.

A store shows no exact quantities - why? That store does not publish them (for example a Shopify theme without a stock counter, or WooCommerce products without stock management). You still get prices, availability, sell-outs and restocks. Headless Shopify storefronts (custom front-ends) are not supported yet; the run status names such stores.

Something is not read correctly? Open an issue on the Actor's Issues tab with the store URL - layouts change and readers are updated.