On the Apify Store live
Shopify scraper and WooCommerce scraper, in one
Paste the URLs of any Shopify or WooCommerce stores. Get every product back in one clean format: prices, sale prices, variants, SKUs, barcodes, stock, weights and images. Turn on change tracking and it becomes a competitor price monitor.

What you get
62 fields per product, the same on both platforms.
We benchmarked it on the same three Shopify stores against the two leading Shopify scrapers on Apify. Their rows had 55 and 38 field paths; ours have 62, and most of the fields only they return are other names for ours.
- Product: title, handle, URL, vendor, type, categories, tags, lowest and highest price, compare-at price, on sale, in stock, options with every value, description as plain text and as HTML, dates.
- Variants: title and options (Size, Color), SKU, barcode, price and sale price, in stock, stock count where public, backorder policy, weight in grams, image.
- Images: URL, width, height, alt text and the variants each one belongs to.
- Per store: the platform detected, how many products the store announces, and why a store failed when it did.

Shopify and WooCommerce, side by side
What each platform actually publishes.
The two platforms do not expose the same things publicly. Where one publishes nothing, the field is empty rather than guessed.
| Field | Shopify | WooCommerce |
|---|---|---|
| Catalog endpoint | /products.json, 250 per request | /wp-json/wc/store/v1/products, 100 per request |
| Prices and sale prices | Yes, per variant | Yes, per variation (one extra request per page) |
| Stock count | When the store tracks inventory (Ajax endpoint) | Only when stock is low |
| Barcode (GTIN, EAN, UPC) | When entered (Ajax endpoint) | Not published |
| Weight | Grams, every variant | In the store's unit, converted to grams |
| Created and updated dates | Yes | Not published |
| Ratings and review count | Not in the catalog | Yes |
| Collections or categories | Collections, by URL or handle | Categories, by URL or slug |
Price and stock monitoring
Pay for changes, not for re-reading the same catalog.
With change tracking on, the first run saves a snapshot of each store and every later run outputs only what moved. Turn off product rows and a scheduled monitor pays only for the changes it finds.
A run stopped by your product limit cannot know whether an unread product still exists, so it reports price and stock changes only and says why. Cover the whole catalog to get new and removed products too.
Measured
How fast a store is read.
Pricing
Pay per product, no subscription.
$1.50 per 1,000 products returned and $0.005 per change detected, billed by Apify with platform usage included. A 1,000 product store costs $1.50, and Apify's free plan covers about 3,300 products a month.
For developers
One HTTP call.
Run it and get the products back in the same request through the Apify API. Snippets for Node.js and Python are in the Actor's README.
curl -X POST "https://api.apify.com/v2/acts/agenttoolworks~shopify-woocommerce-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"storeUrls": ["https://www.allbirds.com"], "maxProductsPerStore": 100}'Questions
Is there a Shopify scraper that also works on WooCommerce?
This one. Paste Shopify and WooCommerce store URLs in the same list: the platform is detected for each store, and every product comes back in the same format, so one spreadsheet or one database table holds both.
How does it read a Shopify store?
Through the storefront's own public endpoints: products.json for the catalog, 250 products per request, and the per-product Ajax endpoint for stock counts, barcodes and image alt text. No login, no admin access, nothing a shopper's browser does not already receive.
Can I get barcodes (GTIN, EAN, UPC) from a Shopify store?
Yes, when the store entered them. Barcodes are not in products.json; they come from the per-product endpoint, which the Actor reads when 'Include stock levels, barcodes and image alt text' is on. On our test stores, Allbirds and Kith had a barcode on every variant.
Can it monitor competitor prices?
Yes. Turn on change tracking and schedule the Actor on Apify: each run outputs only what changed since the previous one, price up, price down, back in stock, out of stock, new product, removed product, and you pay per change.
What does it cost?
$1.50 per 1,000 products returned and $0.005 per change detected, billed by Apify. Apify's free plan includes $5 of monthly usage, about 3,300 products.
Which stores does it not work on?
Headless storefronts that do not serve Shopify's public catalog at all (gymshark.com answers 403 to products.json), stores that publish an empty catalog, and WooCommerce stores whose Store API is closed. The run summary names each one and why, so a store never silently returns nothing.
Public storefront data only: no login, no customer data. Not affiliated with Shopify or WooCommerce.