Действия при нажатии на push

По умолчанию нажатие на push просто открывает приложение — на том экране, где покупатель был в прошлый раз. Чтобы push вёл на карточку товара, в раздел каталога или на карту лояльности, к уведомлению добавляют команду.

Команда — короткая строка вида catalog.openProduct('123'). Это тот же язык, что и в интерактивных HTML-блоках, поэтому один и тот же переход можно переиспользовать и в баннере, и в рассылке.

Как это работает

Приложение читает из уведомления параметр command и выполняет его сразу после открытия. Работает во всех состояниях: приложение закрыто, свёрнуто или открыто. Если приложение было закрыто, переход произойдёт после загрузки.

Диплинки (myshop://...) для push не используются. Поле Launch URL в OneSignal приложение не обрабатывает — ссылку открывает сам OneSignal, и для переходов по экранам это ненадёжно, о чём предупреждает и его документация. Для перехода на экран всегда используйте команду.

Где задать команду

В личном кабинете

В боковом меню откройте «Push-рассылки» → «Рассылки» и создайте рассылку. В блоке сообщения есть поле «Переход по нажатию на push» — впишите туда строку команды.

Раздел недоступен, если данные приложения берутся из 1С-Битрикс. В этом случае отправляйте push из OneSignal.

В OneSignal

Push можно отправить напрямую из панели OneSignal — это удобно для разовых акций.

  1. Откройте OneSignal и создайте сообщение: MessagesNew Push.
  2. Заполните заголовок и текст.
  3. Пролистайте до блока Additional Data (в некоторых версиях панели он спрятан под Advanced Settings).
  4. Добавьте пару ключ-значение:
Key Value
command catalog.openProduct('123')

Ключ пишется строчными буквами и точно как command — иначе приложение не увидит команду. Значение — строка команды целиком.

Тот же ключ работает и при отправке через REST API OneSignal: положите его в объект data.

JSON
{ "headings": { "ru": "Скидка на наушники" }, "contents": { "ru": "Только сегодня" }, "data": { "command": "catalog.openProduct('123')" } }

Синтаксис команды

Имя команды, а за ним — данные в скобках.

TEXT
loyalty.openCard catalog.openProduct('123') catalog.openSection('12', 'Новинки')

Значения перечисляются в том порядке, в котором они описаны в справочнике команд. Строки — в одинарных кавычках.

Если значений много или среди них есть вложенные данные, передайте их объектом. Внутри объекта кавычки двойные:

TEXT
catalog.openSectionFiltered({"id":"12","title":"Со скидкой","filter":{"sale":"Y"}})

Готовые примеры

Разобранные примеры под типовые рассылки — на отдельной странице: Примеры команд для push.

Как проверить

В карточке рассылки есть блок «Тестовая отправка»: push уйдёт только на указанный аккаунт, минуя тихие часы и ограничения частоты. Отправьте себе, нажмите на уведомление и убедитесь, что открылся нужный экран.

Проверяйте на телефоне, где приложение свёрнуто, и на телефоне, где оно полностью закрыто, — это два разных сценария.

Ограничения и нюансы

  • Если команды нет, push просто открывает приложение. Это нормальный сценарий для информационных рассылок.
  • Опечатка в имени команды не ломает приложение: оно откроется, но никуда не перейдёт. Ошибку покупатель не увидит, поэтому обязательно проверяйте тестовой отправкой.
  • Длина команды в личном кабинете — до 512 символов.
  • Команда loyalty.openCard сработает, только если карта лояльности включена в приложении и доступна по тарифу.
  • Идентификаторы товаров и разделов — те же числа, что в адресной строке админ-панели: /products/item/123123.

Связанные разделы

Обновлено 10.07.2026 09:33