Действия при нажатии на push
По умолчанию нажатие на push просто открывает приложение — на том экране, где покупатель был в прошлый раз. Чтобы push вёл на карточку товара, в раздел каталога или на карту лояльности, к уведомлению добавляют команду.
Команда — короткая строка вида catalog.openProduct('123'). Это тот же язык, что и в интерактивных HTML-блоках, поэтому один и тот же переход можно переиспользовать и в баннере, и в рассылке.
Как это работает
Приложение читает из уведомления параметр command и выполняет его сразу после открытия. Работает во всех состояниях: приложение закрыто, свёрнуто или открыто. Если приложение было закрыто, переход произойдёт после загрузки.
Диплинки (myshop://...) для push не используются. Поле Launch URL в OneSignal приложение не обрабатывает — ссылку открывает сам OneSignal, и для переходов по экранам это ненадёжно, о чём предупреждает и его документация. Для перехода на экран всегда используйте команду.
Где задать команду
В личном кабинете
В боковом меню откройте «Push-рассылки» → «Рассылки» и создайте рассылку. В блоке сообщения есть поле «Переход по нажатию на push» — впишите туда строку команды.
Раздел недоступен, если данные приложения берутся из 1С-Битрикс. В этом случае отправляйте push из OneSignal.
В OneSignal
Push можно отправить напрямую из панели OneSignal — это удобно для разовых акций.
- Откройте OneSignal и создайте сообщение: Messages → New Push.
- Заполните заголовок и текст.
- Пролистайте до блока Additional Data (в некоторых версиях панели он спрятан под Advanced Settings).
- Добавьте пару ключ-значение:
| Key | Value |
|---|---|
command |
catalog.openProduct('123') |
Ключ пишется строчными буквами и точно как command — иначе приложение не увидит команду. Значение — строка команды целиком.
Тот же ключ работает и при отправке через REST API OneSignal: положите его в объект data.
{
"headings": { "ru": "Скидка на наушники" },
"contents": { "ru": "Только сегодня" },
"data": { "command": "catalog.openProduct('123')" }
}
Синтаксис команды
Имя команды, а за ним — данные в скобках.
loyalty.openCard
catalog.openProduct('123')
catalog.openSection('12', 'Новинки')
Значения перечисляются в том порядке, в котором они описаны в справочнике команд. Строки — в одинарных кавычках.
Если значений много или среди них есть вложенные данные, передайте их объектом. Внутри объекта кавычки двойные:
catalog.openSectionFiltered({"id":"12","title":"Со скидкой","filter":{"sale":"Y"}})
Готовые примеры
Разобранные примеры под типовые рассылки — на отдельной странице: Примеры команд для push.
Как проверить
В карточке рассылки есть блок «Тестовая отправка»: push уйдёт только на указанный аккаунт, минуя тихие часы и ограничения частоты. Отправьте себе, нажмите на уведомление и убедитесь, что открылся нужный экран.
Проверяйте на телефоне, где приложение свёрнуто, и на телефоне, где оно полностью закрыто, — это два разных сценария.
Ограничения и нюансы
- Если команды нет, push просто открывает приложение. Это нормальный сценарий для информационных рассылок.
- Опечатка в имени команды не ломает приложение: оно откроется, но никуда не перейдёт. Ошибку покупатель не увидит, поэтому обязательно проверяйте тестовой отправкой.
- Длина команды в личном кабинете — до 512 символов.
- Команда
loyalty.openCardсработает, только если карта лояльности включена в приложении и доступна по тарифу. - Идентификаторы товаров и разделов — те же числа, что в адресной строке админ-панели:
/products/item/123→123.
Связанные разделы
- Примеры команд для push — готовые строки под типовые рассылки
- Справочник команд — полный список команд и их параметров
- Диплинки — ссылки в приложение с сайта, из письма или QR-кода