Skip to content

Requirements and install

Review Requests installs like every other extension sold here. Follow the shared procedure rather than a Review Requests-specific one:

What is specific to Review Requests

The permission entry to tick at step 3 of the shared procedure is:

extension/review_requests/module/review_requests

Tick it under both Access Permission and Modify Permission, for every user group that should be allowed to use Review Requests.

Two screens beside it have entries of their own:

extension/review_requests/customer/personal_data
extension/review_requests/customer/purge
  • Personal Data, under Customers, looks up, exports and erases what the extension holds about one address. Opening it needs Access on its entry; doing anything on it needs Modify on OpenCart's own customer/customer, the permission that already lets somebody edit a customer.
  • Remove everything held about a person, linked from the Settings tab, empties every request's address at once. It needs Access and Modify on its own entry, and the link is absent for a group that cannot open it.

Installing grants both to your own user group, the one you install with. Any other group has to be ticked by hand, once.

Nothing is sent until you have finished setting it up. Installing arms nothing: no order status is chosen, so no order is ever picked up. The Before anything is sent checklist at the top of the Settings tab is the whole of the setup, and it stays on screen until every line ticks.

Your back catalogue is left alone. Installing records where your order history had reached and starts reading from there, so the customers who bought before today are never emailed unless you deliberately start an initial collection and confirm the count. That is a button on the Settings tab, and it shows you the arithmetic before it sends anything.

What it adds to your store

  • Seven tables, all named oc_review_requests_*: the requests and their lines, the suppression list, a record of each pass, the reading mark, a copy of your settings, and your replies to reviews. None of them is ever dropped, including when you uninstall.
  • One hourly scheduled task, under Extensions → Cron Jobs. It only does anything when something on your host actually calls OpenCart's cron.php; how often that happens is your crontab, which is why the send limit is a rate per 24 hours rather than a batch per pass. On OpenCart 4.1.0.4 it never runs at all; see running the hourly pass yourself below.
  • Fourteen event rows, all under the code review_requests: the one that splices the verified-purchase badge, the disclosure line and your replies into your store's review list, the API's gateway, two that serve this extension's own strings in your store's language, two for the Personal Data screen and its menu entry, two that pay Loyalty points when you approve a review and save its reply, and six more for replies: one that adds the Reply box to core's review form, and five that save or remove a reply when a review is added or deleted. Most come in pairs, one per spelling OpenCart has used for that model call; only one of each pair ever fires.
  • A command-line entry point at extension/review_requests/review_requests.php, for a store that wants its own schedule, or for OpenCart 4.1.0.4, whose cron.php cannot run any scheduled task at all:
cd /path/to/store
php extension/review_requests/review_requests.php pass
php extension/review_requests/review_requests.php status

php extension/review_requests/review_requests.php help lists every command: pass, status and cron, plus discover (find what is due and send nothing), backfill (an initial collection over --days N, where 0 is everything, which sends nothing without --confirm) and passes (the newest passes). All but cron take --store N to act on one store rather than every one.

It exits 0 when the pass did what it was asked, 1 when it failed and 2 when it was held: the pass ran and deliberately sent nothing because the store is not finished being set up. Neither the command line nor the scheduled task can be reached over the web.

Running the hourly pass yourself

On OpenCart 4.1.0.4 the store's own scheduler cannot run. That release ships a cron.php that crashes inside OpenCart before any extension is reached, so every scheduled task on the store stops, Review Requests' hourly pass and everybody else's. Nothing an extension can do repairs it.

Review Requests does not need it. One line in your server's own crontab runs exactly what the scheduled task would have run:

10 * * * * cd /path/to/store && php extension/review_requests/review_requests.php cron

That is the same pass, through the same route, recorded the same way: the walk over every store, the run listed under Recent passes as a scheduled one rather than as yours, the same line in the diagnostic log. It prints nothing when it worked, because cron mails whatever a job prints.

cron differs from pass above in who it is for. pass is you, asking for a pass over the stores you named, now. cron is the schedule, and it is the one to put in a crontab.

The same line is the answer on any release if your host does not call cron.php, or if you would rather run one scheduler than two. The settings screen names your release and gives you this command when you are on 4.1.0.4.

Updating

Upload the new archive over the old one, as described under updating to a newer version.

OpenCart performs an update by uninstalling the old version first, which deletes the settings of every OpenCart extension for every store. Review Requests keeps its own copy and restores it underneath whatever is stored, so your statuses, delays, limits, retention windows and wording come back for each store, not just the default one. Whether the module is enabled is not put back, because that is OpenCart's to decide, and detailed logging comes back off.

Nothing else moves: requests, collected reviews, the suppression list and the reading mark are all still there, so an update does not re-ask anybody and does not start over from your back catalogue.

Uninstalling

Taking the module off removes the scheduled task and the event rows, and nothing else. Your data stays: the requests, the suppression list somebody asked to be on, the join that badges collected reviews, and your replies.

Your product pages change, though: the badge, the disclosure line and your replies are spliced by an event row that has just gone, so the reviews stay and the marking and the replies do not. Install again and the replies print again. See limits and guarantees.