OpenCart Catalog Scraper - Products & Images avatar

OpenCart Catalog Scraper - Products & Images

Pricing

from $0.25 / 1,000 opencart products

Go to Apify Store
OpenCart Catalog Scraper - Products & Images

OpenCart Catalog Scraper - Products & Images

Turn public OpenCart storefronts into a product catalog feed. Export JSON or CSV and monitor changes. $0.25 per 1,000 rows plus $0.001 per run.

Pricing

from $0.25 / 1,000 opencart products

Rating

0.0

(0)

Developer

Andy Besos

Andy Besos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

7 days ago

Last modified

Share

OpenCart Catalog Scraper - Products & Images helps you turn public OpenCart storefronts into a product catalog feed. Export product IDs, names, descriptions, images, categories, brands, prices and availability for assortment research, content audits or database enrichment.

Start with one public product URL, then use a category or storefront URL to discover more products. No OpenCart admin account or API key is required. Actor event charges at the default 256 MB memory are $0.001 per run plus $0.00025 per exported row: $0.251 for 1,000 rows.

Selected fields from a recent successful run; source values can change:

{
"productId": "51",
"name": "Product with special",
"price": 90,
"availability": "in_stock",
"categories": [],
"imageUrls": [
"https://demo.liveopencart.com/3/live_price_3/image/cache/catalog/t-shirt/1-228x228.jpg"
]
}

Why use this product catalog?

  • Build a reusable product catalog feed from several shops while retaining the product URL and the original source URL on every row.
  • Use stable product IDs to compare scheduled catalog snapshots.
  • Get a run summary with requested, successful, failed and incomplete targets, plus exported record counts.
  • Run several OpenCart targets in one job. If one target fails, other targets can still succeed.
  • Send the dataset to Apify schedules, webhooks or your own API client.

The Actor retries temporary network errors and logs failures per target. It does not invent exact stock counts when a shop only displays “In Stock.” A shop with customized themes may expose fewer fields than the default OpenCart layout.

Pricing

Pay per event: $0.001 per run plus $0.00025 per exported product. The example totals below are Actor event charges for 256 MB runs:

Exported recordsActor event charge
1$0.00125
100$0.026
1,000$0.251
10,000$2.501

The exact formula is $0.001 + (exported records × $0.00025). Apify platform storage or data transfer charges can be separate. A target that returns no matching records still incurs the run start event; choose a known product for your first test.

How to use this Actor

Paste a homepage such as https://demo.liveopencart.com/3/live_price_3/ to discover product links through OpenCart categories and pagination. A direct product URL such as https://demo.liveopencart.com/3/live_price_3/index.php?route=product/product&product_id=51 is faster and ideal for a focused check. Hostnames without a scheme are accepted and normalized to HTTPS.

Quick start with the prefilled public product:

{
"targets": [
"https://demo.liveopencart.com/3/live_price_3/index.php?route=product/product&product_id=51"
],
"maxItemsPerTarget": 1
}

Click Start, inspect the Dataset, then export JSON or CSV. Inspect names, descriptions and image URLs before scanning a whole storefront. Customized themes may expose fewer fields than the demo source.

For a store-wide scan, set the export cap to zero and raise page limits if your shop is large:

{
"targets": [
"https://demo.liveopencart.com/3/live_price_3/"
],
"maxItemsPerTarget": 0,
"maxListingPages": 0,
"maxProductPages": 0
}

The prefill requests one public demo product and exports one record. This example was checked on 8 October 2026; use your own shop URL for production runs. For a storefront scan, maxItemsPerTarget limits the Dataset output, while snapshots compare every record fetched within the listing and product page limits.

Monitor new, updated and removed products

Use the same monitorId and target URLs on repeated scheduled runs. The first run labels records “new”; later runs label them “updated,” “unchanged,” or “removed.” changedFields lists fields that changed. For product changes, oldValues and newValues show the before and after values; the price and stock Actor also emits eventType values such as price_drop and sold_out.

{
"targets": [
"https://demo.liveopencart.com/3/live_price_3/index.php?route=product/product&product_id=51"
],
"monitorId": "my-opencart-watch",
"maxItemsPerTarget": 0,
"onlyChangesSince": "2026-09-01T00:00:00.000Z"
}

Omit onlyChangesSince to include unchanged rows. A removed event is emitted only when a complete crawl confirms the record disappeared. If a listing, product or review page limit truncates the crawl, the Actor keeps prior records and reports the target as incomplete in SUMMARY to avoid false removal alerts.

API example

curl -X POST "https://api.apify.com/v2/acts/Clintsa~opencart-product-catalog-extractor/run-sync-get-dataset-items" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"targets":["https://demo.liveopencart.com/3/live_price_3/index.php?route=product/product&product_id=51"],"maxItemsPerTarget":1}'

For larger shops, start the run asynchronously and read its Dataset when it finishes.

Input options

FieldTypePurpose
targetsURL listOne or more OpenCart shop homepages, category pages or product pages.
maxItemsPerTargetintegerExport cap per target; 0 exports all scanned records. The prefill is 1.
maxListingPagesintegerMaximum category and pagination pages per storefront; 0 removes the cap.
maxProductPagesintegerMaximum product detail pages per storefront; 0 removes the cap.
monitorIdstringPersistent name for snapshots across scheduled runs.
onlyChangesSinceISO timestampEmit only changes detected since the given time.
requestDelayMillisintegerOptional pause between requests.
useApifyProxybooleanOptional Apify Proxy fallback for blocked storefronts.
proxyConfigurationobjectProxy settings when the fallback is enabled.

Output

Selected fields from an illustrative product after a repeat run (unchanged records appear when onlyChangesSince is omitted):

{
"target": "https://demo.liveopencart.com/3/live_price_3/index.php?route=product/product&product_id=51",
"itemId": "51",
"productId": "51",
"name": "Product with special",
"price": 90,
"regularPrice": 100,
"availability": "in_stock",
"inStock": true,
"productUrl": "https://demo.liveopencart.com/3/live_price_3/index.php?route=product/product&language=en-gb&product_id=40",
"sourceUrl": "https://demo.liveopencart.com/3/live_price_3/index.php?route=product/product&product_id=51",
"scrapedAt": "2026-09-30T12:05:00.000Z",
"changeType": "unchanged",
"eventType": "unchanged",
"changedFields": [],
"oldValues": {},
"newValues": {},
"changeDetectedAt": "2026-09-30T12:00:00.000Z",
"firstSeenAt": "2026-09-30T12:00:00.000Z",
"lastSeenAt": "2026-09-30T12:05:00.000Z"
}

Every run also writes a SUMMARY record in its default key-value store. It includes scan counts, change counts, completion time and whether Apify Proxy was used.

Use cases

  • Product catalog extraction is useful for assortment research, content audits, price checks and enrichment of an internal product database.
  • Create a repeatable feed from several OpenCart shops without logging in to their administration panels.
  • Compare public product information between two scheduled observations.
  • Export a small focused sample for a spreadsheet or an automated downstream job.

FAQ

Does this need an OpenCart API key?

No. It requests public storefront and product pages. An Apify account is needed to run the Actor itself.

Can it scan a whole OpenCart shop?

Yes, when public category and product links are discoverable. Set page limits to zero for complete coverage and use a modest request delay on large shops.

Why can a result have no exact inventory count?

Most OpenCart storefronts publish only an availability label. The Actor leaves inventoryLevel empty unless a public count is available.

What happens when a shop blocks requests?

The target is logged as failed. You can enable Apify Proxy as a network fallback and retry. A shop's own policies still apply.

How are removals decided?

A record must have appeared in a prior snapshot and be absent from a complete later scan using the same monitorId and target scope.

Limitations and responsible use

Only public storefront content is returned. Store themes, extensions, language settings, cookie requirements and site defenses vary, so a customized shop may need adaptation. Prices are displayed shopper prices; tax, shipping and variant-specific totals may differ. Review dates are preserved as displayed, without inventing a timezone. Follow each shop's robots.txt, terms and applicable law, and avoid excessive request rates.

Support

Use the Issues tab on this Actor's Store page. Include the run ID, the target URL and the fields you expected so a failing theme or route can be reproduced.

Related tools: OpenCart Price & Stock Scraper and Monitor, OpenCart Catalog Change Monitor - Product Diffs, OpenCart Reviews Scraper & New Review Monitor.