Когда клиент откладывает покупку, ожидая скидки, важно не потерять его интерес. Уведомления о снижении цен на избранные товары помогают вовремя сообщать пользователям о выгодных предложениях, возвращая их на сайт и стимулируя продажи. В статье мы расскажем, как настроить такую функцию в 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']}.<br>"; }
Этот скрипт станет основой для автоматизации процесса уведомления клиентов о снижении цен.
Настройка планировщика заданий (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 требуется авторизация с помощью токена. Пример кода для подключения:
<?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С-Битрикс:
-
При каждом клике на ссылку с UTM-метками фиксируйте данные пользователя (например, номер телефона или ID) и товар, на который он перешел.
-
Используйте передачу данных через 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/
Добавить комментарий