Интеграция 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 для компании ТЕХНОТОРГКОМПЛЕКС
    1209

Интеграция 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 недели

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