nopCommerce Reviews Scraper & Change Monitor
Pricing
from $0.60 / 1,000 product reviews
nopCommerce Reviews Scraper & Change Monitor
Build a review dataset from public nopCommerce product pages. Export JSON or CSV and monitor changes. $0.6 per 1,000 rows plus $0.001 per run.
Pricing
from $0.60 / 1,000 product reviews
Rating
0.0
(0)
Developer
Andy Besos
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
nopCommerce Reviews Scraper & Change Monitor helps you build a review dataset from public nopCommerce product pages. Export reviewer nicknames, star ratings, review titles, text, original dates and product links for feedback analysis, rating reports and recurring review checks.
Paste a public product URL to start. The Actor supports recognized inline and public review endpoints without a merchant login; coverage depends on the shop theme and review setup. Actor event charges at the default 256 MB memory are $0.001 per run plus $0.0006 per exported row: $0.601 for 1,000 rows.
Selected fields from a recent successful run; source values can change:
{"productId": "178","productName": "Divoký losos keta steak - 1000 g","starRating": 5,"reviewDate": "2016-06-30","language": "cs","productUrl": "https://www.bonfood.cz/losos-keta-steak-volny-lov"}
Why use this nopCommerce review extractor?
- Review rows with product context. Nickname, rating, title, text and date stay attached to the correct product ID and store. An aggregate rating is never expanded into invented reviews.
- Public review tab and page coverage. The Actor probes the public review tab and falls back to recognized product-page or legacy review-page HTML.
- Inputs from an existing catalog. Paste product URLs or objects containing
url,idandname, including exports from the nopCommerce Product Catalog Scraper & Monitor. - Review change monitoring. Repeated runs identify new, edited, unchanged and removed reviews using persistent product-scoped snapshots.
- Source-aware dates and language. Original date strings are preserved. Unambiguous dates become
YYYY-MM-DD; uncertain interpretations remain null. Language is the storefront's public HTML language tag. Isolated review URLs are enriched from the product detail page when the review layout omits that tag. - Bounded discovery. Start from a category, storefront or sitemap when individual product URLs are unavailable. Product, discovery-page, review-page and request caps let you control scope.
Temporary rate limits and server errors receive retries with backoff. Requests run sequentially, respect robots rules and use a configurable delay. Product failures are isolated, and the run can succeed when another target works. A failed or capped review scan retains previously seen reviews rather than reporting them as removed. Check the run summary for individual errors and completeness.
Pricing
Pay per event: $0.001 per run plus $0.0006 per exported review row at the default 256 MB memory allocation, equivalent to $0.60 per 1,000 review rows plus the start event.
| Exported review rows | Estimated event charge for one run |
|---|---|
| 1 | $0.0016 |
| 100 | $0.061 |
| 1,000 | $0.601 |
| 10,000 | $6.001 |
The exact formula is $0.001 + exported rows × $0.0006. An unchanged review exported on a normal repeat run is also a billed row, as is a removal event. The summary is stored separately and is not a dataset row. Compute is included in these event prices; the Actor does not use a proxy. Increasing memory above 1 GB increases the number of start events. The Pricing tab is the authority for the current charges.
How to use this Actor
For a quick first run, use a direct product URL. The following public BonFood product had 19 reviews when checked on 17 October 2026:
{"targets": ["https://www.bonfood.cz/losos-keta-steak-volny-lov"],"maxItemsPerProduct": 1}
Click Start, inspect the Dataset, then export JSON or CSV. Inspect starRating, reviewDate and the product link. Empty products produce no review rows, and the source date text is preserved separately from the normalized calendar date.
The output cap limits exported rows after review scanning. It does not truncate the monitoring snapshot. Products with no published reviews produce no review rows.
Full product URLs, bare hostnames, legacy review URLs, public AJAX URLs and catalog product objects are accepted. A numeric product ID needs a base store URL:
{"storeUrl": "https://www.bonfood.cz","targets": ["178",{"url": "https://www.bonfood.cz/losos-keta-steak-volny-lov", "id": "178", "name": "Divoký losos keta steak - 1000 g"}],"maxItemsPerProduct": 0,"monitorId": "bonfood-reviews"}
Duplicate product scopes within one run are exported once. For broader discovery, provide a category URL such as https://www.bonfood.cz/ryby, a shop homepage, or the store's public sitemap. A sitemap can contain informational pages as well as products, so inspect discovery counts before increasing limits.
{"targets": ["https://www.bonfood.cz/sitemap.xml"],"maxProducts": 10,"maxDiscoveryPages": 40,"maxReviewPages": 10,"maxRequests": 100,"requestDelayMillis": 500,"maxItemsPerProduct": 50}
Monitor new, updated, and removed records
Keep the same monitorId and product scope for repeated checks. The first successful scan creates a baseline; later runs compare the fetched reviews with it.
| changeType | Meaning |
|---|---|
new | Review identity was not present in the prior snapshot. |
updated | One or more observed review fields changed; see changedFields. |
unchanged | Review fields match the previous observation. |
removed | A complete review scan no longer returned a previously observed review. |
Create an Apify schedule using the same input and monitor ID to run daily. Add "onlyChangesSince": "2026-10-17T00:00:00Z" to export recent changes only. The cutoff applies to when the Actor detected a change, rather than the review's written-on date. Rating filters and output limits apply after monitoring, so filtered-out reviews do not become false removals.
Native review IDs provide the strongest identity. When a theme hides them, the Actor derives identity from store, product, nickname and original date. Identical nickname/date combinations need occurrence suffixes; changes to those identifying fields or their ordering can affect continuity. Removal events describe visibility in a completed public scan, not a verified moderation action. Discovery does not emit removals for entire products absent from the current discovery scope.
API example
Use your Apify token to run the Actor from another application. No merchant API key is needed:
curl -X POST 'https://api.apify.com/v2/acts/Clintsa~nopcommerce-product-review-extractor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"targets":["https://www.bonfood.cz/losos-keta-steak-volny-lov"],"maxItemsPerProduct":1}'
Input options
| Field | Purpose |
|---|---|
targets | Required array of public URLs, numeric IDs as strings, or catalog objects with url, id, name and optionally storeUrl. |
storeUrl | Optional base URL for numeric IDs or relative paths; include any store installation or locale prefix. |
maxItemsPerProduct | Export limit per product; default 100, prefill 1, 0 exports all fetched rows. Removal events count toward this limit. |
maxProducts | Maximum discovered products per target; default 20. |
maxDiscoveryPages | Maximum pages inspected during discovery, including product pages; default 30. |
maxReviewPages | Maximum review pages per product; default 20. Capped scopes are incomplete. |
maxRequests | Maximum HTTP operations per target; default 200, including robots and redirects. Retries may add network attempts. |
requestDelayMillis | Request delay; default 250 milliseconds, with robots crawl delays also respected. |
minRating | Minimum exported rating; default 0 includes unknown ratings. |
maxRating | Maximum exported rating; default 5. |
monitorId | Persistent review monitoring namespace; default default. |
onlyChangesSince | Optional ISO timestamp for changes detected on or after the cutoff. |
Output
A review captured from the BonFood product illustrates the fields; observation and monitoring timestamps vary per run:
{"itemId": "a2aeb87089201ea516718ced:hash:19ae5ea0e1fb5d9a1759af86","reviewId": null,"identityType": "derived","reviewerNickname": "Julien Labrieux","starRating": 5,"reviewTitle": "Naprosto vynikající!","reviewText": "Nejdřív trochu namastit olejem, osolit a grilovat max 4 minuty na každé straně. Opepřit a servirovat.","reviewDate": "2016-06-30","reviewDateRaw": "30.06.2016 17:42","productId": "178","productName": "Divoký losos keta steak - 1000 g","productUrl": "https://www.bonfood.cz/losos-keta-steak-volny-lov","storeUrl": "https://www.bonfood.cz","language": "cs","storeId": null,"languageId": null,"target": "https://www.bonfood.cz/losos-keta-steak-volny-lov","sourceUrl": "https://www.bonfood.cz/producttab/productreviewstab/178","scrapedAt": "2026-10-17T12:00:00.000Z","changeType": "new","changeDetectedAt": "2026-10-17T12:00:00.000Z","firstSeenAt": "2026-10-17T12:00:00.000Z","lastSeenAt": "2026-10-17T12:00:00.000Z"}
The dataset offers Reviews and Changes table views. The SUMMARY key-value record reports requested and successful targets, product successes and failures, fetched review counts, exported rows, request counts, review-scan completeness, warnings and change totals. Nullable fields are present even when a store does not publish a value.
Use cases
- Compare product-level reputation across public nopCommerce merchants.
- Feed a reputation-monitoring agency's daily review report.
- Identify recurring complaints or praise in a niche marketplace.
- Join review rows to product catalog exports using store URL and product ID.
- Track newly visible reviews and changes to existing public review text.
FAQ
Does this extract reviews from every nopCommerce store? It supports public stores with recognized review markup or the supported public tab. Custom themes, disabled reviews, robots restrictions and access controls can prevent extraction. Store coverage counts are not a tested compatibility guarantee.
Is ProductReviewsTab a standard nopCommerce API? It is associated with themes/plugins and is not present on every installation. Core stores may expose standalone review pages or embed the list on the product detail page. The Actor attempts the supported public paths without signing in.
Do I need a nopCommerce API key, login or proxy? No. Reading public reviews does not require the credentials sometimes needed to submit a review. The Actor never submits forms or votes. Stores that block direct requests are reported in the summary.
Does language identify what language the customer wrote? It identifies the storefront's HTML language tag. It does not translate or classify individual review texts. storeId and languageId are null unless public metadata exposes them; neither is guessed.
How does review pagination work? The Actor follows links and numeric page markers found in recognized review pagers. It stops at the configured cap and detects repeated pages. Custom JavaScript-only loaders without usable page markers may need an additional adapter.
Why is reviewDate null? The source date was absent, invalid, or could not be interpreted confidently. reviewDateRaw retains the original public label. Normalized dates have no assumed timezone.
Can I extract only negative reviews? Set maxRating to 2 and minRating to 1. All fetched reviews still participate in monitoring, while the dataset contains only matching review events up to the output cap.
Limitations and responsible use
The Actor extracts public product review rows. It does not retrieve account emails, private profiles, unapproved reviews, login-only content or third-party widgets such as Trustpilot unless they expose the supported nopCommerce markup. Aggregate star ratings alone do not produce review records. Product names can be null for isolated AJAX tabs without accessible product context. A review is a public claim, not proof of a verified purchase or an independent authenticity check.
Respect each store's terms and rate limits and use personal information lawfully. The Actor honors robots.txt, uses public GET requests and does not bypass login walls or CAPTCHA challenges. Review and discovery caps bound the scan; inspect the summary before treating an export as complete.
Support
Open the Issues tab with the run ID, input and a public example product URL. For a missing field, include the expected visible value and the storefront language so the theme variation can be reproduced.
Related tools: nopCommerce Product Scraper & Catalog Monitor.