Как уведомлять клиентов о снижении цен на избранные товары в 1С-Битрикс

от автора

Когда клиент откладывает покупку, ожидая скидки, важно не потерять его интерес. Уведомления о снижении цен на избранные товары помогают вовремя сообщать пользователям о выгодных предложениях, возвращая их на сайт и стимулируя продажи. В статье мы расскажем, как настроить такую функцию в 1С-Битрикс.

Автоматизация проверки цен на избранные товары

Проверку цен на избранные товары лучше автоматизировать. Варианты есть разные, рассмотрим основные. 

Логика обработки «избранных товаров»

Использование стандартных функций 1С-Битрикс для работы с «избранным»

В 1С-Битрикс встроена возможность работы с избранными товарами, так что настроить проверку достаточно просто. «Избранное» обычно создается на базе механизма пользовательских отложенных данных, которые остаются в корзине или заносятся в специальную пользовательскую таблицу.

Это позволяет легко сохранять и извлекать данные о товарах, которые пользователь отметил как интересные. Вам не нужно разрабатывать сложную логику с нуля — достаточно правильно настроить инструменты платформы.

Основные преимущества стандартного подхода:

  • Простая интеграция с корзиной и личным кабинетом.

  • Поддержка стандартных API для управления «избранным».

  • Возможность кастомизации отображения и обработки данных под нужды бизнеса.

Получение списка товаров, добавленных клиентами в «избранное»

Для получения списка товаров из «избранного» можно использовать встроенные методы и классы 1С-Битрикс, такие как `CSaleBasket::GetList` (если избранное связано с корзиной) или собственные таблицы данных, если реализована кастомная логика.

Пример алгоритма:

  1. Сначала определяем текущего авторизованного пользователя или используем идентификатор сессии для неавторизованных клиентов.

  2. С помощью методов API или SQL-запросов получаем список товаров, отмеченных клиентом как «избранное».

  3. Привязываем данные о товарах (например, ID, названия, текущую цену) к визуальному представлению в личном кабинете или на странице «избранного».

  4. Проверяем актуальность данных (например, наличие товара и его цену), чтобы пользователь видел только актуальные предложения.

Учитывайте, что важно настроить логику так, чтобы данные «избранного» были корректно связаны с личным кабинетом клиента и могли использоваться для последующих уведомлений о снижении цен.

Написание PHP-скрипта для проверки изменений цен

Обращение к базе данных каталога товаров

Первый шаг в разработке скрипта — это подключение к базе данных, где хранятся данные о товарах. В 1С-Битрикс стандартно используется модуль Инфоблоков, и информация о товарах доступна через методы API, например, `CIBlockElement::GetList`.

Пример запроса:

$arSelect = ["ID", "NAME", "CATALOG_GROUP_1"]; // Поля, которые нужно получить  $arFilter = ["IBLOCK_ID" => $catalogId, "ACTIVE" => "Y"];  $res = CIBlockElement::GetList([], $arFilter, false, false, $arSelect);  while ($item = $res->Fetch()) {  $products[$item['ID']] = [      'NAME' => $item['NAME'],      'PRICE' => $item['CATALOG_PRICE_1'], // Текущая цена  ];  }

Эти данные формируют базу для сравнения цен с предыдущими значениями.

Логика сравнения текущих цен с предыдущими значениями

Для отслеживания изменений необходимо сохранять данные о предыдущих ценах. Обычно эту информацию заносят в отдельную таблицу в базе данных или в кастомный инфоблок.

Пример логики:

  1. Запрашиваем актуальные цены товаров (как показано выше).

  2. Получаем данные из таблицы с историей цен и сравниваем текущую цену с сохраненной:

if ($currentPrice < $oldPrice) {  $changedPrices[] = [      'ID' => $productId,      'NAME' => $productName,      'OLD_PRICE' => $oldPrice,      'NEW_PRICE' => $currentPrice,      ];  } 

3.   Если цена изменилась, обновляем запись в таблице исторических цен.

Формирование списка товаров с измененными ценами для каждого пользователя

Чтобы уведомлять пользователей, необходимо сопоставить изменившиеся товары с их «избранным».

  1. Используем стандартные методы API или SQL-запрос для получения списка «избранных» товаров по каждому пользователю.

$userFavorites = getUserFavorites($userId); // Ваша функция для получения "избранного" 

2.   Проверяем на пересечение с измененными товарами.

foreach ($userFavorites as $productId) {  if (isset($changedPrices[$productId])) {      $userNotifications[] = $changedPrices[$productId];  }  } 

Формирование уведомлений.

Для каждого пользователя создаем список уведомлений и сохраняем его для дальнейшей отправки (например, по e-mail или через внутренние уведомления).

foreach ($userNotifications as $notification) {  echo "Товар {$notification['NAME']} подешевел с {$notification['OLD_PRICE']} до {$notification['NEW_PRICE']}.<br>";  } 

Этот скрипт станет основой для автоматизации процесса уведомления клиентов о снижении цен.

Настройка планировщика заданий (cron)

Регулярный запуск скрипта проверки цен

Чтобы уведомления о снижении цен работали автоматически, необходимо регулярно запускать скрипт проверки цен. Это можно сделать с помощью планировщика задач cron, который доступен на большинстве серверов с ОС Linux.

Оптимальная частота запуска скрипта зависит от особенностей вашего интернет-магазина. Если цены изменяются редко, достаточно запускать скрипт раз в месяц. Для более динамичных изменений (например, в период акций) запуск проводится ежедневно или еженедельно.

Выбирайте время, когда нагрузка на сервер минимальна, например, ночью.

Пример команды для настройки cron

Чтобы настроить cron, выполните следующие шаги:

  1. Создайте PHP-скрипт. Убедитесь, что ваш скрипт проверки цен доступен для выполнения, например, он находится по пути /var/www/html/scripts/check_prices.php.

  2. Откройте редактор cron. В терминале выполните команду: crontab -e

  3. Добавьте задание для cron. Укажите, как часто и какой скрипт нужно запускать. Например, для запуска скрипта раз в месяц:

0 3 1 * * /usr/bin/php /var/www/html/scripts/check_prices.php 

Здесь:

  • 0 3 1 * * — расписание выполнения задания: в 3:00 первого числа каждого месяца.

  • /usr/bin/php — путь к интерпретатору PHP на вашем сервере.

  • /var/www/html/scripts/check_prices.php — полный путь к вашему скрипту.

Сохраните изменения. После выхода из редактора cron задание появится в очереди.

Проверьте работу cron. Убедитесь, что задание выполняется корректно, например, настроив логирование результатов выполнения скрипта. Для этого можно добавить перенаправление вывода:

0 3 1 * * /usr/bin/php /var/www/html/scripts/check_prices.php >> /var/log/check_prices.log 2>&1

Работу скрипта проверяйте вручную. Перед добавлением задания в cron убедитесь, что скрипт выполняется без ошибок. Помните о контроле нагрузки. Регулярный запуск тяжёлого скрипта нагружает сервер, поэтому выбирайте подходящее время и частоту выполнения. Используйте логи. Они помогут проконтролировать, была ли выполнена задача, и выявить возможные ошибки.

Настройка отправки уведомлений

Проще всего рассылать уведомления через API-платформу МТС Exolve. В такой интеграции есть ряд очевидных плюсов:

  • Exolve объединяет различные каналы связи.

  • Платформа обеспечивает хранение клиентских данных на вашей стороне, исключая возможность их копирования сторонними сервисами, что повышает доверие клиентов.

  • С помощью Exolve можно создавать имя отправителя для отправки SMS,  настроить обращение к клиентам по имени, что усиливает лояльность и повышает вероятность покупки.

  • Платформа предоставляет детализированные отчёты по доставке сообщений, позволяя анализировать эффективность и своевременно реагировать на сбои.

  • В случае возникновения проблем с доставкой сообщений система продолжает попытки отправки, обеспечивая высокую вероятность того, что клиент получит уведомление.

Начните с регистрации на платформе, получите ключ доступа (токен). После этого можно продолжить настройку.

Интеграция МТС Exolve с 1С-Битрикс

Поскольку готового модуля нет, придётся написать собственный клиент для работы с API платформы Exolve. Для этого вам потребуется:

·         Изучить документацию Exolve для работы с API.

·         Использовать стандартные функции PHP для отправки запросов (`curl` или `file_get_contents`).

Пример настройки подключения с использованием токена для API

Для работы с API Exolve требуется авторизация с помощью токена. Пример кода для подключения:

<?php  // Токен, полученный в личном кабинете Exolve  $apiToken = "ваш_токен";    // URL для отправки запросов  $apiUrl = "https://api.exolve.ru/v1/messages";    // Данные для отправки сообщения  $data = [      "to" => "+79161234567",  // Номер получателя      "message" => "Цена на ваш избранный товар снижена! Проверьте наш сайт.",  ];    // Настройка cURL  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $apiUrl);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  curl_setopt($ch, CURLOPT_POST, true);  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));  curl_setopt($ch, CURLOPT_HTTPHEADER, [  "Authorization: Bearer $apiToken",  "Content-Type: application/json",  ]);    // Отправка запроса и получение ответа  $response = curl_exec($ch);  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);    curl_close($ch);    // Обработка ответа  if ($httpCode == 200) {      echo "Сообщение успешно отправлено!";  } else {      echo "Ошибка: $response";  }  ?>  

Рекомендации по интеграции

  • Сохраняйте токен в конфигурационном файле или переменной среды для безопасности.

  • Реализуйте обработку ошибок для повторной отправки сообщений при сбоях.

  • Перед запуском на боевой сервер убедитесь, что API корректно обрабатывает ваши запросы.

Отправка SMS-уведомлений

SMS-уведомление – надёжный способ донести до клиента нужную информацию. Но важно, чтобы само сообщение автоматически составлялось правильно. Разберём основные моменты.

Генерация персонализированных сообщений с данными о снижении цен

Для привлечения внимания клиентов важно персонализировать сообщения. Например, можно указать название товара, старую и новую цену, а также добавить ссылку для быстрой покупки.

Пример структуры персонализированного сообщения:

Здравствуйте, {Имя}! Цена на {Название товара} снизилась с {Старая цена} до {Новая цена}. Успейте купить! Подробнее: {Ссылка} 

Персонализацию можно реализовать, подставляя данные из базы:

  • имя пользователя;

  • название товара из «избранного»;

  • разницу между старой и новой ценой;

  • ссылку на товар в интернет-магазине.

Пример кода для отправки SMS с использованием библиотеки cURL

Формирование API-запроса

Предположим, что вы используете API для отправки SMS (например, через МТС Exolve). Вот пример кода:

<?php  // Токен авторизации, предоставленный API  $apiToken = "ваш_токен";  // URL для отправки SMS  $apiUrl = "https://api.exolve.ru/v1/messages";  // Данные для SMS  $userPhone = "+79161234567";  $userName = "Иван";  $productName = "Смартфон X";  $oldPrice = "25,000 руб.";  $newPrice = "20,000 руб.";  $link = "https://example.com/product/123";  $message = "Здравствуйте, $userName! Цена на \"$productName\" снизилась с $oldPrice до $newPrice. Подробнее: $link";  // Формирование запроса  $data = [  "to" => $userPhone,  "message" => $message,  ];  // Настройка cURL  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $apiUrl);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  curl_setopt($ch, CURLOPT_POST, true);  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));  curl_setopt($ch, CURLOPT_HTTPHEADER, [  "Authorization: Bearer $apiToken",  "Content-Type: application/json",  ]);  // Отправка запроса и получение ответа  $response = curl_exec($ch);  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  curl_close($ch);  ?> 

Обработка ошибок при отправке

Чтобы обеспечить надёжность доставки, важно правильно обрабатывать возможные ошибки:

if ($httpCode == 200) {      echo "Сообщение успешно отправлено!";  } else {      // Логирование ошибки      error_log("Ошибка отправки SMS: Код ответа $httpCode. Ответ: $response");        // Уведомление администратора (при необходимости)      echo "Не удалось отправить сообщение. Пожалуйста, проверьте логи.";  } 

Интеграция с CRM для анализа результатов

Интегрировав систему уведомлений о снижении цен с CRM, можно быстро фиксировать и анализировать результаты взаимодействия с клиентами. Посмотрим, как интеграция может выглядеть на практике.

Передача данных о переходах и продажах

Использование UTM-меток в ссылках для отслеживания переходов

Чтобы отслеживать эффективность рассылок, стоит добавить UTM-метки к ссылкам на товары. Они покажут, откуда пришел пользователь, и какие действия он совершил.

Пример ссылки с UTM-метками:

https://example.com/product/123?utm_source=sms&utm_medium=notification&utm_campaign=price_drop

Каждая метка имеет свое назначение:

  • utm_source – источник трафика (например, SMS).

  • utm_medium – тип канала (например, notification).

  • utm_campaign – название кампании (например, price_drop).

Добавлять метки можно автоматически, если ссылки формируются скриптом. Это обеспечит точный учет переходов в Google Analytics и Яндекс.Метрике.

Автоматическая передача данных в CRM

Для анализа не только переходов, но и продаж, надо автоматически передавать данные в CRM. Это реализуется через REST API 1С-Битрикс:

  1. При каждом клике на ссылку с UTM-метками фиксируйте данные пользователя (например, номер телефона или ID) и товар, на который он перешел.

  1. Используйте передачу данных через REST API 1С-Битрикс для создания лидов или обновления информации о клиенте. Пример кода для передачи данных:

<?php  // Адрес вашего портала и токен доступа  $bitrixUrl = "https://example.bitrix24.ru/rest/1/your_webhook/";  $leadData = [      "fields" => [          "TITLE" => "Переход по уведомлению",          "NAME" => "Иван",      "PHONE" => [["VALUE" => "+79161234567", "VALUE_TYPE" => "MOBILE"]],      "UTM_SOURCE" => "sms",      "UTM_MEDIUM" => "notification",      "UTM_CAMPAIGN" => "price_drop",          "COMMENTS" => "Пользователь перешел по ссылке на товар 'Смартфон X'",      ]  ];  // Запрос к API  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $bitrixUrl . "crm.lead.add");  curl_setopt($ch, CURLOPT_POST, true);  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($leadData));  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  $response = curl_exec($ch);  curl_close($ch);  if ($response) {      echo "Данные успешно переданы в CRM!";  } else {      echo "Ошибка передачи данных.";  }  ?> 

В CRM будут отображаться данные о каждом переходе, что позволит отслеживать, какие уведомления привели к продажам.

Анализ статистики

Отчеты о количестве отправленных SMS и их доставке

Для оценки эффективности уведомлений важно регулярно анализировать статистику отправленных SMS. Основные метрики, на которые стоит обращать внимание:

  • Общее количество отправленных сообщений. Это позволяет понять охват аудитории.

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

Если вы используете платформу для отправки SMS, отчеты о доставке можно получить через API или в личном кабинете. Например, API может предоставить следующие данные:

  • Статус доставки сообщений (отправлено, доставлено).

  • Причины недоставки (если известны, например, неправильный номер).

  • Время отправки и доставки.

Пример формирования отчета через API:

<?php  $apiUrl = "https://api.exolve.ru/v1/reports";  $apiToken = "ваш_токен";  $ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $apiUrl);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  curl_setopt($ch, CURLOPT_HTTPHEADER, [  "Authorization: Bearer $apiToken",  "Content-Type: application/json",  ]);  $response = curl_exec($ch);  curl_close($ch);  $data = json_decode($response, true);  if ($data) {  foreach ($data['messages'] as $message) {      echo "Номер: " . $message['to'] . " - Статус: " . $message['status'] . "\n";  }  } else {  echo "Ошибка получения отчета.";  }  ?> 

Отслеживание конверсий по продажам товаров, упомянутых в уведомлениях

Чтобы понять, насколько эффективно уведомления стимулируют продажи, необходимо отслеживать конверсии — действия клиентов после получения SMS. Это можно сделать следующими способами:

Использование UTM-меток

Каждое уведомление должно содержать ссылку с уникальными UTM-метками. С помощью систем аналитики (Google Analytics, Яндекс.Метрика) можно отслеживать:

  • количество переходов по ссылкам;

  • долю пользователей, совершивших покупку;

  • средний чек после перехода по уведомлению.

Интеграция с CRM

Автоматическая передача данных о продажах из 1С-Битрикс в CRM позволяет напрямую связывать уведомления с их результатами. Например:

  • Создание лидов для клиентов, перешедших по ссылкам.

  • Отмечать статус лидов как «успешно закрыто» для завершенных сделок.

Пример передачи данных о конверсии:

$leadData = [      "fields" => [          "TITLE" => "Покупка после уведомления",          "STAGE_ID" => "WON", // Закрытая сделка          "AMOUNT" => "20000", // Сумма продажи          "COMMENTS" => "Продажа по уведомлению о снижении цены на товар X",      ]  ];  // Отправка данных через API  curl_setopt($ch, CURLOPT_URL, $bitrixUrl . "crm.deal.add");  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($leadData));  $response = curl_exec($ch);  curl_close($ch); 

Анализируйте статистику не реже одного раза в месяц, чтобы своевременно выявлять проблемы.

Создание системы уведомлений о снижении цен на избранные товары в 1С-Битрикс включает три ключевых этапа: автоматизацию проверки цен, использование МТС Exolve для отправки SMS и передачу данных в CRM для анализа. Эти инструменты работают в связке, помогая вам улучшить пользовательский опыт, увеличить продажи и точно оценить результаты маркетинговых кампаний. 


Подписывайтесь на наш Хаб, следите за новыми гайдами и получайте приз

Каждый понедельник мы случайным образом выбираем победителей среди новых подписчиков нашего Хабр-канала и дарим крутые призы от МТС Exolve: стильные рюкзаки, лонгсливы и мощные беспроводные зарядки. Победители прошлых розыгрышей и правила.


ссылка на оригинал статьи https://habr.com/ru/articles/873848/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *