Push notifications module
Turn your PrestaShop store into an installable app and add web notifications: abandoned cart, back in stock, price drop, order status, and targeted campaigns. No need to ask for anyone's email address or hire any external services.
Compatible with PrestaShop 1.7.6 through 9.x.
Own channel
Your client leaves without leaving an email. And you never hear from them again.
Most visitors don't register or subscribe to the newsletter. RKR Push gives you a way to reconnect with them: a notification in their browser, with their permission, served from your own domain.
The permit is requested correctly, because it only needs to be requested once.
If someone denies the browser's native permission, they can never be asked again. Therefore, the module first displays its own notification—based on time, scrolling, when attempting to exit, after adding items to the cart, or after viewing several pages—and only displays the browser's notification once the user has granted permission. This is done with A/B testing and consent tracking.
/ Notices that arrive when they make sense
/ Do you know how much money it brings in?
Sent, displayed, clicked, closed, expired, and failed, with the entire funnel. And the number that matters: attributed revenue , with a configurable attribution window that imputes each order only once.
The list is yours
Complete one-click export—subscriptions, keys, segments, templates, and metrics. And if you're coming from PushOwl/Brevo, OneSignal, PushEngage, or Webpushr, the wizard imports your subscribers with their keys or retrieves them via silent resubscription.
What you should know. On iPhone, notifications only work with the website added to the home screen (a limitation of Safari; the module provides a guide for those who don't have it installed). HTTPS is required, and you need to schedule a cron job every five minutes; the URL for this cron job is provided in the settings screen. GDPR compliance: registered consent, cascading deletion, and integration with the official module.
Compatible with PrestaShop 1.7.6 to 9.x PHP 7.4 to 8.3
Developed and maintained by REKIRE
v1.0.1
Security fixes. An update is recommended.
- Every back-office action now checks profile permissions. PrestaShop only checks them for actions it recognizes (deleting from a list, saving a standard form); module-specific actions used to be accessible to any employee with access to the tab. A read-only profile could send a campaign to all subscribers , change the URL and relay keys, regenerate the VAPID pair, or delete notification variants. Now: view for exporting and reporting, add for creating and importing, edit for saving, scheduling, and testing, and delete for deleting.
- The export with keys is only downloaded by a SuperAdmin , and by default it is exported without them. This file contains the browser keys and the VAPID private key: with it, you can write to all subscribers from anywhere. Generating and rotating the VAPID pair is also only available to SuperAdmins.
- Tests can no longer be sent to a customer. They used to go to the last viewed subscriber, who in an open store is usually a customer: they would receive the campaign half-written. Now they only go to the test devices that the merchant selects in Settings from their own browser, with a button that reads that browser's subscription: you can't select someone else's.
- The back-to-stock notification only applies to the browser itself. It accepted one subscriber ID per parameter, so it was possible to subscribe another user to notifications they hadn't requested.
- The service worker no longer saves back-office pages. Its
/includes the administration folder, and pages containing customer data, orders, and tokens were previously stored in the employee's browser cache. Now, it doesn't save anything marked asno-storeorprivateby the server, which is how PrestaShop serves the back office. When the service worker version changes, it deletes the caches from version 1.0.0 , which also removes any existing cached data. - The configuration export no longer includes the cron token or the relay account key. It can be downloaded using a read-only profile, and the cron token is used to initiate transmissions.
v1.0.0
First version.
- Complete PWA: manifest generated from the configuration, icons in all sizes —including maskable ones— from the store logo, service worker with caching strategies by type and its own offline page.
- The service worker is served from the store's domain with the
Service-Worker-Allowedheader, and the settings screen checks the actual reach by looking at the headers that actually arrive, including the CDN in front. - Capture subscribers with your own notification in two steps and A/B testing, with triggers for time, scroll, exit, add to cart and number of views.
- Consent record with date, time, truncated IP address, displayed text, and version.
- Seven automations: abandoned cart in three steps with coupon, return to stock, price drop, order status, abandoned navigation, replenishment due to consumption and reactivation of inactive items.
- Campaigns with behavioral segmentation, scheduling,
topic, action buttons, preview, and real byte counter after encryption. - Complete metrics — sent, displayed, clicked, closed, expired — and attributed revenue with configurable window.
- Import from PushOwl/Brevo, OneSignal, PushEngage, Webpushr and generic CSV, with sample testing before accepting the batch, and silent resubscription progress panel.
- Complete export in one click, with keys and VAPID pair, in CSV and JSON.
- First-class standalone mode: the module handles delivery independently using
curl_multiand its VAPID partner. With the RKR Push Relay connected, it delegates bulk delivery, and if the relay fails to respond, critical transactions are sent from the store. - Frequency budget per subscriber, quiet hours in each subscriber's time zone, and deduplication.
- Rotation of the VAPID pair with a grace period.
- Multi-store and multi-language support, WCAG 2.2 AA accessibility in the notice, no inline JavaScript and no third-party dependencies.
Checked before publishing
Installed and run on PrestaShop 9.1.5 (multi-store, two stores). Four things came out of it that aren't visible when reading the code:
- A friendly URL ending in
.jsdoesn't work in PrestaShop. The server ignores routing for anything ending in.gif,.jpg,.png,.css,.js, or.ico. The service worker's path has no extension; the browser looks at theContent-Type. -
ObjectModelrejects a null date in eachUPDATEif the field is not declared withallow_null. It was triggered on the second save, that is, the second time someone subscribed using the same browser. -
Db::getValue()adds its ownLIMIT 1, so a query withLIMIT ... OFFSETends up asLIMIT 1 OFFSET 5000 LIMIT 1and MySQL rejects it. It only happened during daily cleanup: one error per day. - Google rejects
Urgency: very-lowwith a 400 error, even though RFC 8030 defines it; it only acceptshigh,normal, andlow. Without translation, the sample import test would have resulted in all Chrome subscriptions being terminated. Delivery was verified againstfcm.googleapis.com: a non-existent endpoint returns a 410 error, which proves that the service accepts the VAPID signature and encryption, and that the module interprets it as a permanent termination.
You might also like
Product Videos
Product Videos
Product Videos
Product Videos
Product Videos
Product Videos
Product Videos
Product Videos
4 other products in the same category
Product Videos
También podría interesarte
Questions and answers
Nobody has asked anything about this product yet.