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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування push-повідомлень мобільного додатка 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування push-сповіщень мобільного застосунку 1С-Бітрікс

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

Стандартне налаштування: 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

У панелі управління 1С-Бітрікс: Налаштування → Налаштування продукту → Мобільні застосунки → Push і Pull — вставляємо Server Key Firebase.

APNs (iOS):

  1. В Apple Developer: створюємо APNs Key (.p8 файл), запам'ятовуємо Key ID та Team ID
  2. В 1С-Бітрікс: вставляємо вміст .p8 файлу, Key ID, Team ID, Bundle ID

Після цього стандартні push-сповіщення 1С-Бітрікс (нове замовлення, зміна статусу через стандартні події) почнуть працювати.

Кастомні push-сповіщення через API

Для відправки нестандартних сповіщень (не зі стандартного функціоналу) використовується модуль pull 1С-Бітрікс:

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 оновлює екран замовлення.

Сповіщення про зниження ціни (вішліст)

Тригер — обробник події оновлення ціни в каталозі:

\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 через 1С-Бітрікс — через цикл за користувачами з обмеженням частоти. Важливо: користувачі можуть вимкнути сповіщення певного типу в налаштуваннях застосунку. 1С-Бітрікс зберігає device_token у таблиці b_pull_client, статус дозволів — у b_pull_push_settings.

Обмеження: не більше 1 push певного типу протягом N годин для одного користувача — логіка на PHP, перевірка перед відправкою.

if ($this->canSendPush($userId, 'price_drop', 24)) { // не частіше разу на добу
    MobileNotify::send($message);
    $this->recordPushSent($userId, 'price_drop');
}

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

FCM та APNs повертають статуси доставки. Недоставлені токени (застосунок видалено, пристрій замінено) потрібно деактивувати — інакше таблиця токенів засмічується. 1С-Бітрікс обробляє відповіді FCM автоматично при коректному налаштуванні. Для APNs при використанні кастомної відправки — перевіряйте статус 410 (токен недійсний) та видаляйте токен з b_pull_client.

Склад робіт

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

Терміни: стандартні сповіщення — 1–2 дні. Кастомні сценарії із сегментацією — 1–2 тижні.