Requirements and install¶
Abandoned Cart Recovery installs like every other extension sold here. Follow the shared procedure rather than one of its own:
- Requirements: check these first.
- Installing an extension: upload, enable, grant permission. All three steps are required.
- Troubleshooting an install: if it did not work.
Check your OpenCart version before you buy¶
It needs OpenCart 4.0.2.0 or newer, and every release from 4.0.2.0 to 4.1.0.4 has been through a full pass. Below 4.0.2.0 it declines to install: it creates nothing, and its screen says which version you have and which you need.
On 4.1.0.4 it installs and works, but OpenCart's own scheduler does not, so the hourly pass never runs from it. The banner above the tabs names the release, and the command line is the way round it.
What is specific to Abandoned Cart Recovery¶
The permission entry to tick at step 3 of the shared procedure is:
extension/abandoned_carts/module/abandoned_carts
Tick it under both Access Permission and Modify Permission, for every user group that should be allowed to use Abandoned Cart Recovery. Access alone lets somebody read the Episodes tab and the funnel; the buttons on it, and saving the settings, need Modify.
Two screens beside it have entries of their own:
extension/abandoned_carts/customer/personal_data
extension/abandoned_carts/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 Data & privacy tab, blanks every abandonment at once. It needs Modify on its own entry, and the link is absent for a group that cannot open it.
Installing grants all three to your own user group, the one you install with. Any other group has to be ticked by hand, once.
What it adds to your store¶
- Seven tables, all named
oc_abandoned_carts_*: the abandonments and the orders behind them, the emails sent, the suppression list, a record of each pass, the reading position, and a copy of your settings. None is ever dropped, including when you uninstall. - One hourly scheduled task, Abandoned Cart Recovery: sends the reminders
that are due, under Extensions → Cron Jobs. It only runs when
something on your host calls OpenCart's
cron.php; how often that is, is your crontab. - Five event rows, none of them on the checkout: the Personal Data menu entry and its lookup, the extension's language files, and the door for its JSON API. Nothing it adds runs while a shopper is on your storefront.
- A command-line entry point at
extension/abandoned_carts/abandoned_carts.php.
Neither the scheduled task nor the command line can be reached over the web. Opening either in a browser answers Not found and does nothing.
Once it is installed¶
It installs with Status off and nothing chosen, and sends nothing in that state. Open Extensions → Extensions → Modules → Abandoned Cart Recovery, turn Status on, choose How this extension may email your shoppers, and press Save. Quick start walks the rest.
It sends through your store's own mail settings, so choose a mail engine under System → Settings → Mail first if you have not. The emails come from your store's email address and name, and carry the postal address on System → Settings → Store.
Your existing abandoned checkouts are left alone. Installing records where your order history had reached and reads on from there; reaching back is a backfill, up to seven days, which you start deliberately and which shows you the count first.
Running the pass yourself¶
One line in your server's own crontab runs the same pass the scheduled task
runs, without going through cron.php:
10 * * * * cd /path/to/store && php extension/abandoned_carts/abandoned_carts.php > /dev/null
That is the fix on 4.1.0.4, and the answer on any release whose host does not
call cron.php. It prints one line per store on every run, which cron would mail
you, hence the > /dev/null; drop it if you want the mail. Run it by hand to see
a pass happen:
cd /path/to/store
php extension/abandoned_carts/abandoned_carts.php
php extension/abandoned_carts/abandoned_carts.php pass --store 2
Without --store it runs every store. It exits 0 when the pass did what it
was asked, 1 when it failed and 2 when it was held: it ran and deliberately
sent nothing, because the store has no position chosen, no mail engine, or no
web address to link to. Over several stores, the worst result wins.
Only one pass runs per store at a time, so the crontab line and OpenCart's scheduler can both be on without sending anything twice. A pass that finds another one running steps aside.
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 every extension's settings for every store. Abandoned Cart Recovery keeps its own copy and puts yours back for each store, including the position you chose and whether its scheduled task was on. Two things come back off: Status, because whether the module is on is OpenCart's to decide, and detailed logging.
Switch Status back on straight after an update. A checkout abandoned while it is off is never emailed. Nothing else moves: the abandonments, the emails sent, the suppression list and the reading position all stay, so an update does not start again from your order history. What an update keeps lists every setting.
Uninstalling¶
Taking the module off removes the scheduled task and the five event rows, and OpenCart deletes the settings. The seven tables stay, and so do the coupons it created under Marketing → Coupons, the permissions it granted and its lines in the log. To remove what it holds about people, use Remove everything held about a person on the Data & privacy tab first.