Как настроить SMS о корзине и отменять их после заказа

Настройте повторную проверку корзины прямо перед отправкой SMS: если покупатель уже оформил заказ, система должна отменить напоминание. Одного таймера после ухода с сайта недостаточно, потому что за время ожидания статус покупки меняется. Ниже разберём, как связать события интернет-магазина с SMS API, убрать повторные сообщения и проверить сценарий до запуска. Начать можно с одной цепочки: клиент оставил товары, магазин запланировал напоминание, а перед отправкой проверил, нужен ли ещё этот текст.
Когда считать корзину брошенной?
Сначала опишите условие для своего магазина: в корзине есть товары, заказ ещё не создан, покупатель не менял её содержимое в течение выбранного периода. Такая отправная точка есть и в материале о SMS-цепочке для распродажи: товары в корзине сами по себе ещё не означают заказ (smska.by, «От анонса до доставки»).
Отсчёт лучше вести от последнего действия с корзиной. Если человек вернулся и изменил количество товара, прежний таймер нужно пересмотреть. Иначе напоминание придёт прямо во время покупки. Сам период ожидания подбирайте под процесс: заказ расходников и выбор мебели требуют разного времени на решение.
Для первого запуска ограничьтесь одним напоминанием. Так проще проверить связь между корзиной, заказом и отправкой. Более подробную схему подготовки события и текста можно посмотреть в сценарии SMS о брошенной корзине для магазина.
Сразу договоритесь, какое событие останавливает цепочку. Если текст предлагает завершить оформление, остановкой должно быть создание заказа, даже когда покупатель ещё не оплатил его. Напоминание об оплате относится к другому сценарию: у него свой повод и свой текст.
Как связать корзину с заказом и SMS API?
Передайте разработчику схему из пяти действий. API здесь означает способ, которым магазин автоматически передаёт сервису команду отправить сообщение. Решение о том, нужно ли напоминание, остаётся на стороне магазина или системы, которая управляет цепочкой.
- Присвоить корзине постоянный идентификатор, чтобы система узнавала её после возвращения покупателя.
- Запланировать напоминание после периода бездействия и связать задачу с этой корзиной.
- При создании заказа записать связь между заказом и исходной корзиной.
- Перед обращением к SMS API проверить актуальное состояние корзины и наличие заказа.
- Сохранить ответ SMS-сервиса, чтобы отличать принятую заявку от ошибки отправки.
Номер телефона помогает выбрать получателя, но для связи событий его недостаточно. У одного покупателя бывают разные корзины. Если отменять все напоминания только по номеру, заказ из одной корзины остановит сообщение о другой. Основная связь должна проходить через идентификатор корзины и заказ, который из неё появился.
Отдельно проверьте гостевое оформление. Если после входа в аккаунт магазин создаёт новую корзину, связь со старой нужно сохранить. Иначе очередь продолжит ждать по прежнему идентификатору и не увидит покупку. Это конкретный пункт задания на интеграцию: проследить путь корзины от первого товара до заказа, включая вход в аккаунт.
Для небольшой команды достаточно начать с одного магазина и одного события. При заказе интеграции SMS API полезно заранее описать, где живёт очередь задач и какая система сообщает о создании заказа. Именно на этой границе обычно и требуется согласовать логику отмены.
Как отменять напоминание прямо перед отправкой?
Используйте две проверки: отменяйте задачу при создании заказа и повторно проверяйте покупку перед отправкой. Первая проверка убирает лишнюю задачу из очереди. Вторая нужна на случай, если событие о заказе пришло с задержкой или обработчик не успел его принять.
Когда подходит время сообщения, система заново запрашивает состояние корзины. Если заказ уже существует, задача получает статус отмены. Если корзина пуста, отправлять тоже нечего. Когда магазин временно не отвечает и проверить покупку нельзя, отложите задачу до повторной проверки.
Задайте напоминанию срок актуальности. После длительного сбоя очередь не должна отправлять все старые сообщения подряд. При восстановлении связи система сначала проверяет заказ и возраст задачи, затем решает, осталось ли основание для SMS.
Есть и более узкий промежуток: проверка уже прошла, а покупатель оформляет заказ перед самой передачей сообщения в SMS API. Разработчику нужно согласовать обработку этих событий, чтобы создание заказа и разрешение на отправку не выполнялись независимо. Чем дальше очередь находится от магазина, тем важнее проверить этот случай отдельно.
Полной гарантии отмены после передачи сообщения провайдеру нет: возможность остановить отправку зависит от сервиса и текущего статуса. Поэтому контроль нужно завершить до вызова API. Если провайдер уже принял сообщение, последующая отмена задачи в магазине сама по себе его не отзовёт.
Защитите цепочку и от повторов. Для каждого напоминания заведите ключ, который объединяет корзину, тип события и версию сценария. Повторный запуск задачи должен находить прежнюю попытку. Если API не ответил вовремя, сначала выясните статус запроса доступным способом, иначе повторная команда рискует создать второе SMS.
Как проверить сценарий и понять, почему пришло SMS?
Пройдите путь покупателя на тестовой корзине и своём номере. Проверяйте отдельно решение магазина отправить сообщение, ответ API и отчёт о доставке. Статус доставки показывает путь сообщения до телефона, но сам по себе не объясняет, почему магазин разрешил отправку.
- Оставьте товары без заказа: после ожидания система должна разрешить одно напоминание.
- Оформите заказ во время ожидания: задача должна получить отмену до обращения к SMS API.
- Вернитесь и измените корзину: система должна пересчитать ожидание по принятому правилу.
- Повторите обработку одного события: второе сообщение не должно появиться.
- Сымитируйте недоступность магазина при проверке: задача должна отложиться без отправки.
В журнале сохраняйте причину решения: «заказ создан», «корзина пуста», «проверка недоступна» или «передано в SMS API». Рядом нужны идентификаторы корзины и задачи, время проверки и идентификатор сообщения у провайдера. Тогда разбор жалобы начнётся с конкретной цепочки событий.
Для мониторинга разделите отмены и технические ошибки. Отмена после покупки означает, что защита сработала. Ошибка API означает, что запрос не прошёл или его результат требует уточнения. Если смешать эти состояния, отчёт покажет «неотправленные SMS», но не подскажет, что исправлять.
Проверьте и ссылку в тексте. Она должна вести к нужной корзине или к понятному способу продолжить покупку. Если товары больше недоступны, страница должна объяснить это покупателю. Пример текста без обещаний скидки: «Вы оставили товары в корзине. Проверить состав и продолжить оформление: ссылка».
После создания заказа покупателю уже нужны сообщения о покупке. Для дальнейших коммуникаций пригодится отдельный сценарий SMS и email после первого заказа: его события не стоит смешивать с напоминанием о корзине.
Типичные ошибки при настройке SMS о корзине
- Проверять заказ только при запуске таймера. Исправление: повторить проверку непосредственно перед вызовом SMS API.
- Останавливать цепочку лишь после оплаты. Исправление: отменять предложение оформить покупку уже при создании заказа.
- Связывать события только по телефону. Исправление: сохранять связь заказа с исходной корзиной.
- Повторять запрос после любого сбоя. Исправление: различать отказ API и неизвестный результат, проверять предыдущую попытку.
- Считать отчёт о доставке проверкой всей цепочки. Исправление: отдельно фиксировать основание отправки и результат доставки.
Откройте настройки текущего напоминания и найдите условие «заказ из этой корзины ещё не создан»: оно должно проверяться непосредственно перед отправкой SMS.


