Без сторонних сервисов
Свой Service Worker и ключи VAPID, подписки хранятся в базе магазина. Абонентской платы нет.
Модуль добавляет Web Push уведомления в OpenCart 3 без сторонних сервисов: подписка через собственный Service Worker и VAPID, хранение подписок в базе магазина, рассылка из админки и автоматические уведомления по событиям.
Свой Service Worker и ключи VAPID, подписки хранятся в базе магазина. Абонентской платы нет.
Позиция, цвета, тексты кнопок, задержка показа и повтор через заданное время.
Всем подписчикам, группе клиентов или конкретному Customer ID.
Отправлено, ошибки, клики; детальные логи с HTTP-статусами и причинами.
Смена статуса заказа покупателю и «поступление товара» по кнопке в карточке.
Подписки с ошибками endpoint (404/410) автоматически переводятся в неактивные.
Push-уведомления обычно подключают через внешний сервис с абонентской платой и чужой базой подписчиков. Здесь всё остаётся внутри магазина: подписка оформляется собственным Service Worker, ключи VAPID генерируются в админке, а сами подписки лежат в базе OpenCart.
Окно подписки настраивается под витрину: позиция, цвета из палитры, тексты кнопок, задержка показа, кнопка закрытия и повтор показа через заданное время. Для Safari на iPhone выводится отдельный текст с инструкцией — там Web Push работает только после добавления сайта на домашний экран, и это ограничение Apple, а не модуля.
Рассылка отправляется всем подписчикам, группе клиентов или конкретному Customer ID, со статистикой по отправленным, ошибкам и кликам и детальными логами с HTTP-статусами. Автоматические уведомления закрывают два сценария возврата: смена статуса заказа и «поступление товара» по кнопке в карточке. Подписки, которые отвечают ошибкой 404 или 410, переводятся в неактивные сами.
Да, начиная с iOS 16.4 и только после добавления сайта на экран «Домой» — это ограничение Apple для всех Web Push.
Витрина по HTTPS и включённое расширение OpenSSL. Проверено на PHP 7.4, обычно работает и на 8.0–8.2.
Опишите, что должно происходить в магазине. Часто задача решается настройкой готового модуля, иногда — небольшой доработкой под вашу сборку. Если решение существует и стоит дешевле разработки, скажу об этом прямо.
Достаточно пары строк: чем занимаетесь, что нужно и в какие сроки. Отвечаю в течение рабочего дня.