Product Guides

Установка push-уведомлений при API интеграции

Установка

Для запуска push-уведомлений вам необходимо добавить в корневую папку сайта следующие файлы:
rr.wpsw.import.js
rr.wpsw.empty.js

А также добавить в секцию <head> загрузку следующего скрипта:

<script src="https://cdn.retailrocket.net/content/javascript/retailrocket.webpush.js"></script>

После добавления файлов, вам необходимо обратиться в техническую поддержку Retail Rocket ([email protected]) для проверки интеграции и включения рассылок, либо сообщить вашему персональному менеджеру.

Подписка пользователя

После того, как все было провалидировано и включено, есть возможность запустить процесс подписки для пользователя.

Для этого необходимо вызвать следующую функцию:

<script type="text/javascript">
    retailrocket.modules.webPushSubscription.execute("<<name>>",function(subscription) {
  	// Код для отправки подписки
    })
</script>

Если пользователь согласился, то вызовется callback функция. Подписка пользователя передается в этот callback как объект PushSubscription. Далее, с подпиской можно совершать необходимые действия, например - передача подписки в Retail Rocket.

Пример обработки объекта subscription, для извлечения параметров, необходимых для метода передачи подписки:

retailrocket.modules.webPushSubscription.execute("<<name>>", function(subscription) {
    console.log('Endpoit: ', subscription.endpoint);
    navigator.serviceWorker.ready.then(function(registration) {
        registration.pushManager.getSubscription().then(function(subscription) {
            if (subscription) {
                const rawKey = subscription.getKey('p256dh');
                const key = rawKey ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawKey))) : null;

                const rawAuthSecret = subscription.getKey('auth');
                const authSecret = rawAuthSecret ? btoa(String.fromCharCode.apply(null, new Uint8Array(rawAuthSecret))) : null;

                console.log('Public Key: ', key);
                console.log('Auth Secret: ', authSecret);
            } else {
                console.log('No subscription found.');
            }
        }).catch(function(error) {
            console.error('Error getting subscription:', error);
        });
    }).catch(function(error) {
        console.error('Service Worker not ready:', error);
    });
   // Код для отправки подписки
})

На примере выше, после того, как пользователь нажмет на разрешение на получение web-push уведомлений, в консоль выведутся значения параметров, которые необходимо будет передать в соответствующий метод.

Подробнее API метод передачи подписки описан в соответствующем разделе.