Как уведомлять клиентов о снижении цен на избранные товары в 1С-Битрикс
Когда клиент откладывает покупку, ожидая скидки, важно не потерять его интерес. Уведомления о снижении цен на избранные товары помогают вовремя сообщать пользователям о выгодных предложениях, возвращая их на сайт и стимулируя продажи. В статье мы расскажем, как настроить такую функцию в 1С-Битрикс.
Автоматизация проверки цен на избранные товары
Проверку цен на избранные товары лучше автоматизировать. Варианты есть разные, рассмотрим основные.
Логика обработки «избранных товаров»
Использование стандартных функций 1С-Битрикс для работы с «избранным»
В 1С-Битрикс встроена возможность работы с избранными товарами, так что настроить проверку достаточно просто. «Избранное» обычно создается на базе механизма пользовательских отложенных данных, которые остаются в корзине или заносятся в специальную пользовательскую таблицу.
Это позволяет легко сохранять и извлекать данные о товарах, которые пользователь отметил как интересные. Вам не нужно разрабатывать сложную логику с нуля — достаточно правильно настроить инструменты платформы.
Основные преимущества стандартного подхода:
Простая интеграция с корзиной и личным кабинетом.
Поддержка стандартных API для управления «избранным».
Возможность кастомизации отображения и обработки данных под нужды бизнеса.
Получение списка товаров, добавленных клиентами в «избранное»
Для получения списка товаров из «избранного» можно использовать встроенные методы и классы 1С-Битрикс, такие как `CSaleBasket: GetList` (если избранное связано с корзиной) или собственные таблицы данных, если реализована кастомная логика.
Пример алгоритма:
Сначала определяем текущего авторизованного пользователя или используем идентификатор сессии для неавторизованных клиентов.
С помощью методов API или SQL-запросов получаем список товаров, отмеченных клиентом как «избранное».
Привязываем данные о товарах (например, ID, названия, текущую цену) к визуальному представлению в личном кабинете или на странице «избранного».
Проверяем актуальность данных (например, наличие товара и его цену), чтобы пользователь видел только актуальные предложения.
Учитывайте, что важно настроить логику так, чтобы данные «избранного» были корректно связаны с личным кабинетом клиента и могли использоваться для последующих уведомлений о снижении цен.
Написание 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'], // Текущая цена
];
}
Эти данные формируют базу для сравнения цен с предыдущими значениями.
Логика сравнения текущих цен с предыдущими значениями
Для отслеживания изменений необходимо сохранять данные о предыдущих ценах. Обычно эту информацию заносят в отдельную таблицу в базе данных или в кастомный инфоблок.
Пример логики:
Запрашиваем актуальные цены товаров (как показано выше).
Получаем данные из таблицы с историей цен и сравниваем текущую цену с сохраненной:
if ($currentPrice < $oldPrice) {
$changedPrices[] = [
'ID' => $productId,
'NAME' => $productName,
'OLD_PRICE' => $oldPrice,
'NEW_PRICE' => $currentPrice,
];
}
3. Если цена изменилась, обновляем запись в таблице исторических цен.
Формирование списка товаров с измененными ценами для каждого пользователя
Чтобы уведомлять пользователей, необходимо сопоставить изменившиеся товары с их «избранным».
Используем стандартные методы 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']}.
";
}
Этот скрипт станет основой для автоматизации процесса уведомления клиентов о снижении цен.
Настройка планировщика заданий (cron)
Регулярный запуск скрипта проверки цен
Чтобы уведомления о снижении цен работали автоматически, необходимо регулярно запускать скрипт проверки цен. Это можно сделать с помощью планировщика задач cron, который доступен на большинстве серверов с ОС Linux.
Оптимальная частота запуска скрипта зависит от особенностей вашего интернет-магазина. Если цены изменяются редко, достаточно запускать скрипт раз в месяц. Для более динамичных изменений (например, в период акций) запуск проводится ежедневно или еженедельно.
Выбирайте время, когда нагрузка на сервер минимальна, например, ночью.
Пример команды для настройки cron
Чтобы настроить cron, выполните следующие шаги:
Создайте PHP-скрипт. Убедитесь, что ваш скрипт проверки цен доступен для выполнения, например, он находится по пути /var/www/html/scripts/check_prices.php.
Откройте редактор cron. В терминале выполните команду: crontab -e
Добавьте задание для 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 требуется авторизация с помощью токена. Пример кода для подключения:
"+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). Вот пример кода:
$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С-Битрикс:
При каждом клике на ссылку с UTM-метками фиксируйте данные пользователя (например, номер телефона или ID) и товар, на который он перешел.
Используйте передачу данных через REST API 1С-Битрикс для создания лидов или обновления информации о клиенте. Пример кода для передачи данных:
[
"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:
Отслеживание конверсий по продажам товаров, упомянутых в уведомлениях
Чтобы понять, насколько эффективно уведомления стимулируют продажи, необходимо отслеживать конверсии — действия клиентов после получения 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: стильные рюкзаки, лонгсливы и мощные беспроводные зарядки. Победители прошлых розыгрышей и правила.