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

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування повідомлень про статус замовлення в WhatsApp 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

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

WhatsApp не надає публічного Bot API, як Telegram. Відправка повідомлень клієнтам у WhatsApp вимагає використання WhatsApp Business API (офіційний шлях через Meta) або неофіційних шлюзів. Вибір методу визначає вартість, надійність і відповідність правилам платформи — останнє важливо, бо якщо акаунт порушує TOS, його блокують без попередження.

Варіанти інтеграції

1. WhatsApp Business API (офіційний)

Доступ через Cloud API Meta або через BSP (Business Solution Provider): Twilio, MessageBird, WABA360, i2crm. Вимагає верифікації бізнесу в Meta, схвалення шаблонів повідомлень. Шаблони проходять модерацію, не всі формати дозволені. Вартість — за вихідне повідомлення.

2. Шлюзи на базі WhatsApp Web (неофіційні)

Chat-api.com, green-api.com та аналоги. Працюють через емуляцію WhatsApp Web із номером телефону, підключеним до акаунту. Ризик блокування вищий, але простіше в інтеграції та дешевше. Для повідомлень про замовлення з невеликим обсягом (<500 повідомлень/день) — робочий варіант.

Інтеграція через Green API (шлюз)

Green API надає REST API з мінімальним порогом входу. Для тестування — безкоштовний інстанс.

class WhatsAppService
{
    private string $apiUrl;
    private string $idInstance;
    private string $apiToken;

    public function __construct()
    {
        $settings = \Bitrix\Main\Config\Configuration::getValue('custom');
        $this->idInstance = $settings['whatsapp_instance_id'];
        $this->apiToken   = $settings['whatsapp_api_token'];
        $this->apiUrl     = "https://api.green-api.com/waInstance{$this->idInstance}";
    }

    public function sendMessage(string $phone, string $message): bool
    {
        // Приводимо номер до формату [email protected]
        $phone = preg_replace('/[^0-9]/', '', $phone);
        if (str_starts_with($phone, '8')) {
            $phone = '7' . substr($phone, 1);
        }
        $chatId = $phone . '@c.us';

        $url = "{$this->apiUrl}/sendMessage/{$this->apiToken}";
        $payload = json_encode([
            'chatId'  => $chatId,
            'message' => $message,
        ]);

        $ch = curl_init($url);
        curl_setopt_array($ch, [
            CURLOPT_POST           => true,
            CURLOPT_POSTFIELDS     => $payload,
            CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT        => 10,
        ]);
        $response = json_decode(curl_exec($ch), true);
        curl_close($ch);

        return isset($response['idMessage']);
    }
}

Обробник події замовлення

// /local/php_interface/init.php
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSaleOrderStatusChange',
    function (\Bitrix\Main\Event $event) {
        $order = $event->getParameter('ENTITY');
        $statusId = $order->getField('STATUS_ID');

        // Отримуємо телефон покупця з властивостей замовлення
        $propCollection = $order->getPropertyCollection();
        $phoneProp = $propCollection->getItemByOrderPropertyCode('PHONE');
        $phone = $phoneProp ? $phoneProp->getValue() : null;

        if (!$phone) {
            return;
        }

        $statusTexts = [
            'N' => 'Ваше замовлення #%d прийнято. Очікуйте підтвердження.',
            'P' => 'Замовлення #%d передано кур\'єру.',
            'D' => 'Замовлення #%d очікує вас у пункті видачі.',
            'F' => 'Замовлення #%d виконано. Дякуємо!',
            'X' => 'Замовлення #%d скасовано.',
        ];

        if (!isset($statusTexts[$statusId])) {
            return;
        }

        $message = sprintf($statusTexts[$statusId], $order->getId());

        $wa = new WhatsAppService();
        $wa->sendMessage($phone, $message);
    }
);

Важливі обмеження WhatsApp Business API

При використанні офіційного Meta API (Cloud API) повідомлення без попереднього opt-in від користувача заборонені. Шаблони повідомлень повинні бути схвалені Meta перед відправкою. Приклад структури шаблону:

{
  "name": "order_status_update",
  "language": { "code": "uk" },
  "components": [
    {
      "type": "body",
      "text": "Статус вашого замовлення №{{1}} змінено: {{2}}."
    }
  ]
}

Запит до Meta Cloud API:

$response = Http::post(
    "https://graph.facebook.com/v18.0/{$phoneNumberId}/messages",
    [
        'messaging_product' => 'whatsapp',
        'to'                => $recipientPhone,
        'type'              => 'template',
        'template'          => [
            'name'       => 'order_status_update',
            'language'   => ['code' => 'uk'],
            'components' => [[
                'type'       => 'body',
                'parameters' => [
                    ['type' => 'text', 'text' => $orderId],
                    ['type' => 'text', 'text' => $statusText],
                ],
            ]],
        ],
    ]
);

Терміни налаштування

Інтеграція через Green API або аналогічний шлюз, обробник подій, форматування повідомлень за статусами — 4–8 годин. Офіційний WhatsApp Business API з верифікацією Meta, шаблонами та тестуванням — 3–5 робочих днів.