Настройка push-уведомлений мобильного приложения 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка push-уведомлений мобильного приложения 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1165
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    563
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    743
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка push-уведомлений мобильного приложения 1С-Битрикс

Мобильное приложение на платформе 1С-Битрикс (Bitrix Mobile) имеет встроенный механизм push-уведомлений, но его нужно правильно настроить: получить ключи Firebase Cloud Messaging (Android) и APNs (iOS), зарегистрировать их в панели управления Битрикс, настроить шаблоны уведомлений. Без этого приложение собирается, но уведомления не приходят. Кроме стандартных уведомлений, нужны кастомные — например, «Ваш заказ отправлен» с трекинг-номером, «Снижение цены на товар из вишлиста».

Стандартная настройка: FCM и APNs

Firebase Cloud Messaging (Android):

  1. В Firebase Console создаём проект, добавляем Android-приложение с bundle ID
  2. Скачиваем google-services.json, кладём в проект Bitrix Mobile
  3. Копируем Server Key из Firebase Console → Cloud Messaging

В панели управления Битрикс: Настройки → Настройки продукта → Мобильные приложения → Push и Pull — вставляем Server Key Firebase.

APNs (iOS):

  1. В Apple Developer: создаём APNs Key (.p8 файл), запоминаем Key ID и Team ID
  2. В Битрикс: вставляем содержимое .p8 файла, Key ID, Team ID, Bundle ID

После этого стандартные push-уведомления Битрикс (новый заказ, смена статуса через стандартные события) начнут работать.

Кастомные push-уведомления через API

Для отправки нестандартных уведомлений (не из стандартного функционала) используется модуль pull Битрикс:

use Bitrix\Pull\MobileNotify;

// Уведомление о статусе заказа
public function sendOrderStatusPush(int $userId, array $order): void
{
    if (!\Bitrix\Main\Loader::includeModule('pull')) return;

    $message = [
        'module_id'   => 'local.shop',
        'command'     => 'orderStatusChanged',
        'expiry'      => 3600, // секунды
        'user_list'   => [$userId],
        'message'     => "Заказ #{$order['ID']}: статус изменён на «{$order['STATUS']}»",
        'params'      => [
            'orderId'   => $order['ID'],
            'status'    => $order['STATUS'],
            'trackCode' => $order['TRACK_CODE'] ?? '',
        ],
        'push'        => [
            'sound' => 'default',
            'badge' => 1,
        ],
    ];

    MobileNotify::send($message);
}

В мобильном приложении (если кастомное на React Native) — обработчик события module.local.shop.orderStatusChanged обновляет экран заказа.

Уведомления о снижении цены (wishlist)

Триггер — обработчик события обновления цены в каталоге:

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'catalog', 'OnPriceUpdate',
    function (\Bitrix\Main\Event $event) {
        $priceData = $event->getParameter('fields');
        $productId = $priceData['PRODUCT_ID'];
        $newPrice  = $priceData['PRICE'];

        // Находим пользователей, у которых товар в вишлисте
        $wishlistUsers = WishlistTable::getUsersByProduct($productId);

        foreach ($wishlistUsers as $userId) {
            $oldPrice = $this->getLastNotifiedPrice($userId, $productId);
            if ($newPrice < $oldPrice * 0.95) { // скидка более 5%
                $this->sendPricePush($userId, $productId, $oldPrice, $newPrice);
            }
        }
    }
);

Сегментация и ограничение частоты

Массовая рассылка push через Битрикс — через цикл по пользователям с ограничением частоты. Важно: пользователи могут отключить уведомления определённого типа в настройках приложения. Битрикс хранит device_token в таблице b_pull_client, статус разрешений — в b_pull_push_settings.

Ограничение: не более 1 push определённого типа в течение N часов для одного пользователя — логика на PHP, check перед отправкой.

if ($this->canSendPush($userId, 'price_drop', 24)) { // не чаще раза в сутки
    MobileNotify::send($message);
    $this->recordPushSent($userId, 'price_drop');
}

Мониторинг доставки

FCM и APNs возвращают статусы доставки. Недоставленные токены (приложение удалено, устройство заменено) нужно деактивировать — иначе таблица токенов засоряется. Битрикс обрабатывает ответы FCM автоматически при корректной настройке. Для APNs при использовании кастомной отправки — проверяйте статус 410 (токен недействителен) и удаляйте токен из b_pull_client.

Состав работ

  • Создание проектов Firebase и Apple Developer, получение ключей
  • Настройка FCM и APNs в панели управления Битрикс
  • Тестирование стандартных уведомлений (заказы, статусы)
  • Разработка кастомных push: снижение цены, новые акции, напоминания
  • Сегментация: отправка по группам пользователей
  • Ограничение частоты, деактивация устаревших токенов

Сроки: стандартные уведомления — 1–2 дня. Кастомные сценарии с сегментацией — 1–2 недели.