В шопскрипте нет хука на вход в личный кабинет, поэтому такое решение.

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

Итак приступим.

Шаг 1.

Скачайте наш плагин и залейте на сайт по пути wa-apps/shop/plugins/

Шаг 2.

Добавьте этот код в конец вашего index.html магазина. Примерный путь до файла такой wa-data/public/site/themes/<theme_id>/index.html

        
            {$userId = $wa->user()->getId()}
            
            {if $userId}
            <script>
                var userId = { $userId };
                
                document.addEventListener('DOMContentLoaded', function () {
            
                    // Функции для работы с cookies
                    function setCookie(name, value, days) {
                        var expires = "";
                        if (days) {
                            var date = new Date();
                            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                            expires = "; expires=" + date.toUTCString();
                        }
                        document.cookie = name + "=" + (value || "") + expires + "; path=/";
                    }
            
                    function getCookie(name) {
                        var nameEQ = name + "=";
                        var ca = document.cookie.split(';');
                        for (var i = 0; i < ca.length; i++) {
                            var c = ca[i];
                            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
                        }
                        return null;
                    }
            
                    if (!getCookie('first_visit')) {
                        setCookie('first_visit', '1', 1);
            
                        // Проверяем, авторизирован ли пользователь
                        if (userId) {
            
                            // Отправляем POST-запрос
                            var xhr = new XMLHttpRequest();
                            var baseUrl = window.location.origin;
                            xhr.open("POST", baseUrl + '/pushnotifylogin/', true);
                            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                            xhr.onload = function () {
                                window.location.href = "{$wa_app_url}";
                            };
                            xhr.onerror = function () {
                            };
                            xhr.send('id=' + encodeURIComponent(userId));
                        }
                    } 
                });
            </script>
            {else}
            <script>
                
                $(document).on('ready', function () {
                    function eraseCookie(name) {
                        document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
            
                    }
            
                    // Функции для работы с cookies
                    function setCookie(name, value, days) {
                        var expires = "";
                        if (days) {
                            var date = new Date();
                            date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                            expires = "; expires=" + date.toUTCString();
                        }
                        document.cookie = name + "=" + (value || "") + expires + "; path=/";
                    }
            
                    function getCookie(name) {
                        var nameEQ = name + "=";
                        var ca = document.cookie.split(';');
                        for (var i = 0; i < ca.length; i++) {
                            var c = ca[i];
                            while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
                        }
                        return null;
                    }
            
                    if (getCookie('first_visit')) {
                        eraseCookie('first_visit');
                    }
                })
            </script>
            {/if}
        
    

ВСЁ. Если что, обращайтесь!