Как стать автором
Обновить
97.54
Exolve
Конструктор омниканальных диалогов для бизнеса

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

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров153

Когда клиент откладывает покупку, ожидая скидки, важно не потерять его интерес. Уведомления о снижении цен на избранные товары помогают вовремя сообщать пользователям о выгодных предложениях, возвращая их на сайт и стимулируя продажи. В статье мы расскажем, как настроить такую функцию в 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: стильные рюкзаки, лонгсливы и мощные беспроводные зарядки. Победители прошлых розыгрышей и правила.

Теги:
Хабы:
+4
Комментарии0

Публикации

Информация

Сайт
exolve.ru
Дата основания
Численность
501–1 000 человек