WooCommerce Scraper — Products, Prices, SKU, Stock & Images avatar

WooCommerce Scraper — Products, Prices, SKU, Stock & Images

Pricing

from $1.50 / 1,000 results

Go to Apify Store
WooCommerce Scraper — Products, Prices, SKU, Stock & Images

WooCommerce Scraper — Products, Prices, SKU, Stock & Images

Scrape products from any WooCommerce store: name, SKU, price, sale & regular price, currency, images, categories, tags, brands, attributes, variations, stock status, rating & full description. Point it at store URLs, filter by search or category. Export JSON/CSV/Excel.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract the full product catalog from any WooCommerce store. Paste one or more store URLs and get every product back as clean, structured data — name, SKU, price, sale and regular price, currency, images, categories, tags, brands, attributes, variations, stock status, rating and full description.

Built for price‑monitoring and repricing teams, dropshippers, marketplace sellers, product researchers and competitive‑intelligence analysts who need WooCommerce catalog data as JSON, CSV or Excel instead of copying it by hand.


✨ Why use this scraper

  • Works on any WooCommerce store. WooCommerce powers millions of independent shops — point this at any of them and it pulls the catalog, no per‑store setup.
  • Complete product records. Price, sale price, regular price, currency, SKU, stock, categories, tags, brands, attributes, variations, rating and description — all in one row per product.
  • Clean, normalized prices. Prices come back as proper decimal numbers in the store's currency, ready for math — no scraping price strings out of HTML.
  • Whole catalog or filtered. Grab an entire store, or narrow it down by search term, category or on‑sale status.
  • Multiple stores at once. Paste a list of stores and collect them all in a single run.
  • Fast and reliable. It reads the store's own product data, so extraction is quick and consistent across stores.
  • Export anywhere. JSON, CSV, Excel, HTML or via the Apify API and integrations.

🚀 Quick start

  1. Paste one or more WooCommerce store URLs (the homepage is enough).
  2. (Optional) Add a search term or category, or tick On sale only.
  3. Set the limits and click Start.

Each product in the store(s) becomes one clean record.


📥 Input

FieldTypeDescription
Store URLs (storeUrls)arrayWooCommerce store URLs. Each store's products are collected.
Search term (searchTerm)stringOptional keyword to filter products within each store.
Category (category)stringOptional category slug or numeric ID to filter products.
On sale only (onSaleOnly)booleanOnly return products currently on sale.
Max products per store (maxProductsPerStore)integerCap per store.
Maximum products (total) (maxItems)integerOverall cap across all stores.
Concurrency (maxConcurrency)integerHow many stores to process in parallel.
Proxy configuration (proxyConfiguration)objectApify Proxy is recommended for reliable access.

Example 1 — a whole store

{
"storeUrls": [{ "url": "https://barefootbuttons.com" }]
}

Example 2 — several stores, capped

{
"storeUrls": [
{ "url": "https://store-one.com" },
{ "url": "https://store-two.com" }
],
"maxProductsPerStore": 500
}

Example 3 — filter by search and sale

{
"storeUrls": [{ "url": "https://example-store.com" }],
"searchTerm": "cable",
"onSaleOnly": true
}

Example 4 — a single category

{
"storeUrls": [{ "url": "https://example-store.com" }],
"category": "accessories"
}

📤 Output

Each product is one dataset item. Example:

{
"storeUrl": "https://barefootbuttons.com",
"productId": 1475,
"name": "Replacement Set Screw and Allen Wrench Kit",
"slug": "replacement-set-screw-and-allen-wrench-kit",
"sku": "18-AC-AS-02",
"type": "variable",
"permalink": "https://barefootbuttons.com/product/replacement-set-screw-and-allen-wrench-kit/",
"price": 1.95,
"regularPrice": 1.95,
"salePrice": null,
"priceMin": null,
"priceMax": null,
"onSale": false,
"currency": "USD",
"shortDescription": "Genuine replacement hardware for Barefoot Buttons.",
"description": "Every Barefoot Button includes the hardware needed for installation...",
"categories": ["Accessories"],
"tags": [],
"brands": [],
"averageRating": 0,
"reviewCount": 0,
"inStock": true,
"purchasable": true,
"onBackorder": false,
"lowStockRemaining": null,
"stockAvailability": "In stock",
"attributes": [{ "name": "Set Screw Size", "options": ["M3", "M4"] }],
"variationsCount": 2,
"hasOptions": true,
"weight": "0.1 kg",
"dimensions": "5 × 5 × 1 cm",
"mainImage": "https://barefootbuttons.com/wp-content/uploads/2026/06/set-screws.png",
"images": ["https://barefootbuttons.com/wp-content/uploads/2026/06/set-screws.png"],
"imageCount": 1,
"scrapedAt": "2026-08-25T10:00:00.000Z"
}

Field reference

Identity

FieldDescription
storeUrlThe store the product came from.
productIdWooCommerce product ID.
nameProduct name.
slugURL slug.
skuStock keeping unit, when set.
typesimple, variable, grouped, etc.
permalinkProduct page URL.

Pricing

FieldDescription
priceCurrent price (decimal, in currency).
regularPriceRegular (non‑sale) price.
salePriceSale price when on sale.
priceMin, priceMaxPrice range for variable products.
onSaleWhether the product is on sale.
currencyCurrency code (e.g. USD, EUR, GBP).

Content & taxonomy

FieldDescription
shortDescription, descriptionProduct descriptions (clean text).
categories, tags, brandsCategory, tag and brand names.
attributesProduct attributes and their options.
variationsCount, hasOptionsNumber of variations and whether it has options.

Stock & ratings

FieldDescription
inStock, purchasable, onBackorderAvailability flags.
lowStockRemaining, stockAvailabilityStock hints.
averageRating, reviewCountRating and number of reviews.

Media & meta

FieldDescription
mainImage, images, imageCountMain image and full image list.
weight, dimensionsShipping weight and dimensions.
scrapedAtISO timestamp of the scrape.

💡 Use cases

  • Price monitoring & repricing — track competitors' prices, sale prices and stock across many WooCommerce stores, and keep your own pricing sharp.
  • Dropshipping — pull supplier catalogs with SKUs, prices, images and stock to import into your own store.
  • Competitive intelligence — see what products, categories and price points competitors carry, and how their catalog changes over time.
  • Product & market research — analyze assortments, price distributions and ratings across a segment.
  • Catalog migration & backup — export a full product catalog to move platforms or keep a structured snapshot.
  • MAP & availability monitoring — watch for minimum‑advertised‑price violations and out‑of‑stock items.
  • Feed building — assemble product feeds for marketplaces, comparison sites and ads.

🧠 How it works

The scraper reads each store's public product data and paginates through the whole catalog, so you don't have to click through category and product pages one by one. Prices are returned as clean decimal numbers in the store's currency, images and taxonomy come through structured, and everything is normalized into the same schema regardless of which store it came from — so a run across ten different shops still gives you one consistent dataset.

Because it works at the catalog level, a single store URL is enough to pull the entire product range; filters let you narrow to a search term, a category, or only on‑sale items when you don't need everything.


🎯 Tips for best results

  • The homepage URL is enough. You don't need to find a special page — paste the store's main URL and the scraper handles the rest.
  • Cap large catalogs. For very large stores, set maxProductsPerStore to keep runs quick while you test, then raise it.
  • Filter to focus. Use searchTerm or category to pull just the part of the catalog you care about.
  • Watch prices over time. Schedule the run to build a price and stock history for repricing and MAP checks.
  • Combine stores. Paste a list of competitor stores to benchmark an entire segment in one run.

📈 Scaling up

  • Paste many store URLs and raise concurrency to cover a whole segment in one run.
  • Raise Max products per store to pull full catalogs; lower it to sample quickly.
  • Schedule recurring runs to keep a fresh price, stock and catalog feed.

🧾 Prices, sales & variations explained

  • Regular vs. sale vs. current. regularPrice is the list price, salePrice is the discounted price when the product is on sale, and price is what a shopper pays right now. Compare regularPrice and price to compute the discount.
  • Variable products. A product with options (size, colour, …) has type: "variable", a variationsCount, and its attributes list the available options. Its priceMin/priceMax give the range across variations.
  • On‑sale filter. Set On sale only to return just the discounted products — handy for deal monitoring and MAP checks.
  • Currency‑aware. Every price carries the store's currency, so a multi‑store run stays correct even when shops use different currencies.
  • Stock at a glance. inStock, onBackorder, stockAvailability and lowStockRemaining tell you what's actually buyable.

🧩 What you can build with the data

  • A price‑and‑stock monitor — schedule the run across competitor stores and alert on price drops, new sales or out‑of‑stock items.
  • A repricing feed — pull competitor price/regularPrice/onSale and drive your own pricing rules.
  • A dropshipping importer — map name, sku, price, images, categories and description straight into your own store.
  • A market map — aggregate categories, price bands and ratings across a segment to spot gaps and opportunities.
  • A MAP‑compliance checker — flag products priced below your minimum advertised price across many resellers.
  • A catalog snapshot — keep dated exports to track how a store's assortment and prices evolve.

🔌 Run it your way

  • Apify Console — paste store URLs and click Start.
  • API — start runs and pull the dataset programmatically.
  • Scheduler — refresh prices and stock on a schedule.
  • Integrations — push results to Google Sheets, Zapier, Make, webhooks, S3 and more.

❓ FAQ

Does it work on any WooCommerce store? It works on the large majority of WooCommerce stores that expose their standard public product data. A few stores lock this down; those come back with a clear note that the product data wasn't available.

Do I need an API key or login? No. Just paste the store URL.

Are prices accurate and in the right currency? Yes — prices are returned as decimal numbers together with the store's currency code, exactly as the store publishes them.

Can I get only sale items, or one category? Yes. Use On sale only, or set a Category slug/ID, or a Search term to filter.

Do I get product variations? Each product includes its attributes, variationsCount and, for variable products, a priceMin/priceMax range.

How many products can I collect? Whole catalogs — set maxProductsPerStore and maxItems to control the totals.

In what format is the data? Structured JSON by default, exportable to CSV, Excel, HTML and more.

Can I run it on a schedule? Yes — use the Apify Scheduler, or start runs through the Apify API and its integrations.

Can I scrape several stores at once? Yes — paste a list of store URLs. Each product carries its storeUrl, so you can compare across shops in one dataset.

Why do some products have no SKU or attributes? Not every store fills in a SKU, and simple products often have no attributes — those fields come back empty for those products, which is normal.

Does it handle different currencies? Yes. Prices are decimal numbers and each product includes its store's currency code, so multi‑store, multi‑currency runs stay accurate.

What if a store is very large? Set maxProductsPerStore to sample or to cap big catalogs, and maxItems for the overall total. The scraper paginates the whole catalog otherwise.

What if a store blocks the product data? A small number of stores restrict access; those are reported clearly and skipped, so the rest of your run still completes.


This tool collects publicly available product information for legitimate business use such as price monitoring, market research and competitive analysis. You are responsible for how you use the data and for complying with all applicable laws and regulations, each store's terms, and data‑protection rules (including GDPR/CCPA where relevant). Do not use the output to infringe intellectual‑property rights or for any unlawful purpose. This scraper is not affiliated with WooCommerce, Automattic, or the stores whose catalogs you choose to process; all trademarks belong to their respective owners.


Tags

woocommerce · woocommerce scraper · ecommerce scraper · product scraper · price monitoring · price tracker · dropshipping · product data · catalog scraper · wordpress · stock monitoring · competitor prices · sku · product feed · repricing