Інтеграція 1С-Бітрікс з Pushwoosh: push-сповіщення та теги

Коли push-сповіщення не приносять очікуваного зростання продажів, а сегментація аудиторії перетворюється на хаос, час переглянути підхід до інтеграції. Ми налаштовуємо зв'язку 1С-Бітрікс з Pushwoosh, щоб ви надсилали персоналізовані повідомлення без зайвих доопрацювань. Наша команда реалізує проєкт під ключ — від підключення API до налаштування тегів і сегментів, забезпечуючи стабільну роботу та подальшу підтримку.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція 1С-Бітрікс з Pushwoosh: push-сповіщення та теги
Середній
~1-2 тижні

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

Часті запитання

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1532
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1045
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    820
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    915
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    853
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1208

Інтеграція 1С-Бітрікс з Pushwoosh

Уявіть: у вашого інтернет-магазину на 1С-Бітрікс 50 000 зареєстрованих користувачів, але конверсія в повторні покупки — лише 12%. Ви впроваджуєте push-сповіщення через пряму інтеграцію з FCM — і вже через місяць розумієте: багато коду написано даремно. Сегментація не працює, немає аналітики, підтримка мобільних платформ потребує окремих рішень. Ми стикалися з цим не раз. Наприклад, для мережі магазинів електроніки інтеграція Pushwoosh замість чистого FCM скоротила час налаштування з 8 до 2 днів і дозволила відправляти персоналізовані сповіщення без доопрацювань. Економія бюджету склала до 40%, а результат — зростання повторних покупок на 30% за перший місяць. Замовте аудит — ми оцінимо ваш проєкт.

Pushwoosh — російський сервіс push-сповіщень, що працює поверх FCM та APNs. Він надає єдиний API для веб-пуша, Android, iOS та Huawei. Вбудовані сегменти, A/B-тести та аналітика економлять години розробки. Час завантаження SDK — менше 1 секунди. Наш досвід: інтегрували Pushwoosh з Бітрікс для 10+ проєктів, скоротивши трудозатрати в 3 рази порівняно з чистим FCM. Pushwoosh обробляє сповіщення швидше завдяки оптимізованій маршрутизації.

Як Pushwoosh спрощує відправку push-сповіщень?

На відміну від прямої роботи з FCM та APNs, Pushwoosh бере на себе маршрутизацію та управління пристроями. Вам потрібно лише зв'язати hwid (hardware ID) Pushwoosh з користувачем Бітрікс. Один користувач може мати кілька пристроїв. Схема взаємодії: Pushwoosh SDK отримує hwid і реєструє пристрій, потім через API прив'язуємо hwid до USER_ID. При настанні події (замовлення, акція) PHP-код відправляє запит до Pushwoosh API, який доставляє сповіщення на всі пристрої користувача. До 70% користувачів підписуються на push — вище, ніж у email-розсилок.

Ініціалізація Web SDK

Код нижче стандартний для будь-якого проєкту на Бітрікс. Зверніть увагу: autoSubscribe: false — підписку запитуємо вручну по кліку, це підвищує конверсію та відповідає вимогам 54-ФЗ (згода користувача). Також в корені сайту розмістіть service-worker файл /pushwoosh-service-worker.js з вмістом importScripts('https://cdn.pushwoosh.com/webpush/v3/pushwoosh-service-worker.js');.

<script src="https://cdn.pushwoosh.com/webpush/v3/pushwoosh-web-notifications.js"></script>
<script>
    var Pushwoosh = Pushwoosh || [];
    Pushwoosh.push(['init', {
        logLevel: 'error',
        applicationCode: 'XXXXX-YYYYY',
        safariWebsitePushID: 'web.com.example.shop',
        defaultNotificationTitle: 'Магазин Приклад',
        defaultNotificationImage: 'https://example.com/push-icon.png',
        autoSubscribe: false,
        serviceWorkerUrl: '/pushwoosh-service-worker.js',
    }]);
    Pushwoosh.push(function(api) {
        api.onReady(function() {
            api.getHWID().then(function(hwid) {
                if (hwid) {
                    registerPushwooshDevice(hwid);
                }
            });
        });
    });
    function registerPushwooshDevice(hwid) {
        fetch('/local/api/pushwoosh/register', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'X-Bitrix-Csrf-Token': BX.bitrix_sessid()
            },
            body: JSON.stringify({
                hwid: hwid,
                platform: 'web'
            })
        });
    }
    document.getElementById('subscribe-push').addEventListener('click', function() {
        Pushwoosh.push(function(api) {
            api.subscribe().then(function() {
                Pushwoosh.push(function(api) {
                    api.getHWID().then(registerPushwooshDevice);
                });
            });
        });
    });
</script>

Зберігання hwid та PHP-клієнт Pushwoosh API

Для зберігання відповідностей використовуємо HL-таблицю PushwooshDeviceTable. Приклад PHP-клієнта:

class PushwooshService {
    private string $appCode;
    private string $apiAccessToken;
    private string $apiUrl = 'https://cp.pushwoosh.com/json/1.3/';

    public function createMessage(array $recipientHwids, string $content, array $extra = []): array {
        $payload = [
            'request' => [
                'application' => $this->appCode,
                'auth' => $this->apiAccessToken,
                'notifications' => [[
                    'send_date' => 'now',
                    'ignore_user_timezone' => false,
                    'content' => $content,
                    'devices' => $recipientHwids,
                    'data' => $extra['data'] ?? [],
                    'ios_title' => $extra['title'] ?? '',
                    'android_header' => $extra['title'] ?? '',
                    'link' => $extra['url'] ?? '',
                ]],
            ],
        ];

        return $this->request('createMessage', $payload);
    }

    public function sendMessageToUser(int $userId, string $content, string $title = '', string $url = ''): void {
        $hwids = PushwooshDeviceTable::getHwidsByUserId($userId);
        if (empty($hwids)) return;

        $this->createMessage($hwids, $content, ['title' => $title, 'url' => $url]);
    }

    public function createMessageByTag(string $tagName, string $tagValue, string $content): array {
        $payload = [
            'request' => [
                'application' => $this->appCode,
                'auth' => $this->apiAccessToken,
                'notifications' => [[
                    'send_date' => 'now',
                    'content' => $content,
                    'conditions' => [[$tagName, 'EQ', $tagValue]],
                ]],
            ],
        ];

        return $this->request('createMessage', $payload);
    }

    private function request(string $method, array $data): array {
        $ch = curl_init($this->apiUrl . $method);
        curl_setopt_array($ch, [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => json_encode($data),
            CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
        ]);
        $response = json_decode(curl_exec($ch), true);
        curl_close($ch);

        return $response ?? [];
    }
}

Теги Pushwoosh для сегментації

Pushwoosh підтримує теги — користувацькі атрибути пристрою. Це дозволяє відправляти сповіщення по сегментах без передачі списку hwid.

public function setUserTags(string $hwid, int $userId): void
{
    $user = \Bitrix\Main\UserTable::getById($userId)->fetch();
    $tags = [];
    $groups = \CUser::GetUserGroup($userId);
    if (in_array(7, $groups)) {
        $tags[] = ['tagName' => 'loyalty_level', 'tagValue' => 'gold'];
    }
    if (!empty($user['PERSONAL_CITY'])) {
        $tags[] = ['tagName' => 'city', 'tagValue' => $user['PERSONAL_CITY']];
    }
    $totalOrders = $this->getUserOrdersTotal($userId);
    $tags[] = ['tagName' => 'orders_total', 'tagValue' => (int)$totalOrders];
    $this->request('setTags', [
        'request' => [
            'application' => $this->appCode,
            'auth' => $this->apiAccessToken,
            'tags' => $tags,
            'hwid' => $hwid,
        ],
    ]);
}

Обробка подій з Бітрікс

AddEventHandler('sale', 'OnSaleStatusOrder', function(string $statusId, \Bitrix\Sale\Order $order) {
    $userId = (int)$order->getUserId();
    $notifications = [
        'O' => ['Замовлення #' . $order->getField('ACCOUNT_NUMBER'), 'Замовлення прийнято, передаємо в обробку'],
        'D' => ['Замовлення відправлено', 'Посилка вже в дорозі — відстежуйте доставку'],
        'F' => ['Замовлення виконано', 'Дякуємо за покупку! Залиште відгук — нам важливий ваш досвід'],
    ];
    if (!isset($notifications[$statusId])) return;
    [$title, $content] = $notifications[$statusId];
    $url = '/personal/order/detail/' . $order->getField('ACCOUNT_NUMBER') . '/';
    (new PushwooshService())->sendMessageToUser($userId, $content, $title, $url);
});

Статистика та Inbox

Pushwoosh надає API для отримання статистики (getStats) та inbox-сповіщень (getInboxMessages) — список останніх push, які користувач міг пропустити. Inbox відображається в особистому кабінеті. JavaScript-код для отримання inbox:

Pushwoosh.push(function(api) { api.getInboxMessages().then(function(messages) { renderInbox(messages); }); }); 

Які переваги дає Pushwoosh перед прямою інтеграцією з FCM?

Критерій Пряма FCM Pushwoosh
Єдиний API для всіх платформ Ні (окремо Web, Android, iOS) Так
Вбудована сегментація Ні Так (теги, групи)
A/B-тести Ні Так
Inbox-сповіщення Ні Так
Час на налаштування (людино-дні) 5–7 1–2

Типові помилки при інтеграції

  • Не зберігати hwid для неавторизованих користувачів — сповіщення не дійдуть після реєстрації.
  • Відправляти сповіщення без перевірки згоди (вимога 54-ФЗ). Використовуйте autoSubscribe: false.
  • Ігнорувати теги: без них сегментація неможлива, всі користувачі отримують однакові повідомлення.
  • Забути про service worker для веб-пуша — сповіщення не приходять на закритий браузер.

Зв'яжіться з нами для отримання консультації з інтеграції — ми допоможемо уникнути цих помилок.

Що входить в роботу

  • Аудит поточної архітектури Бітрікс (інфоблоки, події, користувачі)
  • Документація API та схем даних
  • Налаштування Pushwoosh SDK (Web, Android, iOS)
  • Реалізація PHP-клієнта з повним покриттям методів (sendMessage, setTags, getStats)
  • Інтеграція з подіями (замовлення, реєстрації, кошик)
  • Тегування користувачів та створення сегментів
  • Налаштування inbox та відображення в особистому кабінеті
  • Навчання команди (1–2 години)
  • Технічна підтримка 1 місяць після релізу

Як ми впроваджуємо Pushwoosh в Бітрікс?

Процес інтеграції вибудований поетапно:

  1. Аналітика: вивчаємо схему даних, події, групи користувачів.
  2. Проектування: визначаємо структуру зберігання hwid, тегів, сценарії відправки.
  3. Реалізація: пишемо PHP-клієнт, JS-код, налаштовуємо SDK.
  4. Тестування: перевіряємо доставку на всіх платформах, сегментацію, сценарії.
  5. Деплой: розгортаємо на продакшн, оновлюємо service worker.

Терміни орієнтовно

Завдання Термін
SDK ініціалізація, збереження hwid 2–3 дні
PHP-клієнт API, таблиця пристроїв 2–3 дні
Відправка за подіями замовлень 2–3 дні
Теги та сегментація 2–3 дні
Inbox, статистика, управління з ОК 3–5 днів
Повний комплекс (web + mobile) 3–4 тижні

Отримайте консультацію — ми оцінимо ваш проєкт і запропонуємо точні терміни під вашу архітектуру. Залиште заявку, і ми зв'яжемося з вами.