Skip to content

Requirements and install

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

What is specific to Wishlist

Enabling the module is what creates everything. Under Extensions → Extensions → Modules → Wishlist, the extension list's own + button creates Wishlist's five tables, its settings, its two scheduled jobs, the Most Wishlisted report, and the events that put the extension in front of your store's wishlist. That press is the whole of enabling it. There is no second switch on the module's own screen, which holds settings and nothing else, and taking the module off hands the wishlist back to OpenCart.

The report needs no second install. OpenCart normally makes a report extension a separate install under Extensions → Extensions → Reports; Wishlist does that for you when the module is enabled, so Reports → Reports → Most Wishlisted is there on the first look.

Three permission entries to tick, not one. Under System → Users → User Groups, tick each of these under both Access Permission and Modify Permission, for every group that should be allowed to use Wishlist:

extension/wishlist/module/wishlist
extension/wishlist/customer/wishlist
extension/wishlist/report/wishlist

They are separate on purpose. The first is the settings screen. The second is the Wishlist tab on a customer's record, which shows what a named person saved. The third is the demand report, which shows products and counts and names nobody, so you can hand somebody the demand figures without handing them customer records. The group that installed the extension is granted all three automatically; every other group is granted them here.

Two more entries belong to the data-protection screens:

extension/wishlist/customer/personal_data
extension/wishlist/customer/purge
  • Customers → Personal Data looks up, exports and erases what Wishlist holds about one person, by an account's email address or a guest's own token. Opening it needs Access Permission on its entry; doing anything on it needs Modify Permission on OpenCart's own customer/customer, which already lets somebody edit a customer.
  • Remove everything held about a person, linked from Wishlist's settings screen, needs both columns on its own entry, so you can withhold it from somebody who has the other screens. See limits and guarantees for what it removes.

The installing group is given Access on the first and both on the second; any other group has to be ticked by hand, once.

Nothing has to be done to your theme. The wishlist links your theme already draws keep working and start reaching Wishlist instead of OpenCart's own page. That includes bookmarks and third-party themes, because what changes is the page behind the link rather than the link.

Two scheduled jobs, and three ways to run them

Wishlist has two jobs on a schedule: the sweep, hourly, which emails the price-drop and back-in-stock alerts your shoppers asked for, and the purge, nightly, which removes guest wishlists once their retention window has run out. There is one piece of work behind all three doors below; pick the one your host actually gives you and use it, and do not set up two.

1. OpenCart's own scheduler. Nothing to do: enabling the module registers both jobs under Extensions → Cron Jobs, one hourly and one daily. It needs the store's own cron entry to be running, which most hosts either offer or already run. On OpenCart 4.1.0.4 this door does not work at all. That release cannot run any scheduled task (cron.php fails inside OpenCart itself, for every extension on the store), so use one of the other two. See limits and guarantees.

2. Two web addresses, for a host that gives you a cron panel or where you use a third-party cron service, and no shell. Wishlist's settings screen shows them under Running the scheduled jobs, as Sweep address and Purge address; copy them and have the first fetched hourly and the second once a day. One secret covers both, and it is the only thing that admits the caller, so treat it as a password. If you ever paste it somewhere you would rather you had not, press New addresses on that screen and paste the new ones in their place. Anything using the old addresses stops working the moment you do, which is why that button asks you to confirm. Uninstalling and installing Wishlist again does not change the secret: an update is exactly that, so it is remembered across one.

3. Two commands, for a host that gives you a shell. From your store's directory:

php extension/wishlist/wishlist.php sweep
php extension/wishlist/wishlist.php purge

Each exits 0 when the pass ran and 1 when it did not, so a cron line, a deploy script or a monitoring check can act on the result. Crontab lines running the sweep hourly and the purge at four in the morning:

0 * * * * cd /path/to/store && php extension/wishlist/wishlist.php sweep
0 4 * * * cd /path/to/store && php extension/wishlist/wishlist.php purge

A store where none of the three runs loses those two jobs and nothing else. Everything a shopper touches works, and the alerts customers ask for are still recorded, and they go out on the first sweep that happens.

A store below OpenCart 4.0.2.0 is refused and says so on the screen rather than half-installing: no tables, no settings, no events.

What Wishlist stores

Five tables of its own, all behind your store's table prefix: the guest wishlists and their saved products, the share links, the alert subscriptions, and one small table Wishlist uses to remember your settings across an update. They are named in full on limits and guarantees.

OpenCart's own customer_wishlist table is never created, altered or dropped. A logged-in customer's saved products stay exactly where core keeps them, which is what makes uninstalling Wishlist a return to OpenCart's own wishlist rather than a loss.

Nothing identifying is stored about a guest: a random token in a cookie, the products under it, and when it was last looked at or added to.

Updating to a newer version

Follow updating to a newer version in the order it gives. An update is an uninstall followed by an install as far as OpenCart is concerned, and Wishlist is built for that:

  • No wishlist is lost. Guest lists, share links and alert subscriptions all live in tables nothing this extension does will drop.
  • Your settings come back, including both alert master switches. A store that had price-drop alerts switched off does not resume emailing its customers because it took a point release.
  • Share links keep working. The tokens are not regenerated.
  • Unsubscribe links keep working. The key they are signed with is kept in Wishlist's own table rather than in OpenCart's settings, so an update cannot invalidate every link the store has ever sent.
  • The two scheduled jobs are re-created and enabled. A job you had switched off in Extensions → Cron Jobs comes back on, because the rows are cleared and written fresh so that an upgrade cannot leave two of each. Switch it off again after an update, or turn the alerts off on the settings screen instead, since Wishlist remembers that setting.