Уведомления о заказах Shopify, которые доходят до телефона за секунды

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

Обновлено

Содержание

Письма Shopify о заказах приходят тогда, когда почтовый клиент решит синхронизироваться, попадают в папку, на которую у вас настроен фильтр, и выглядят одинаково — что заказ на 12 €, что на 1200 €. Если магазин ведёте вы сами, это неправильная форма сигнала.

Вебхук это чинит. Shopify отправит каждый заказ POST-запросом на выбранный вами URL, а Echobell превратит этот POST в уведомление, громкость которого выбираете вы.

Выберите топики, которые вправе вас отвлекать

Типы событий вебхуков Shopify называет топиками. Этих четырёх хватает большинству магазинов, которые ведёт один человек:

ТопикЧто это значитСрочность
orders/createЗаказ оформлен.Обычная
orders/paidОплата прошла. Берите этот, если важны только реально пришедшие деньги.Обычная
orders/cancelledПокупатель отменил. Полезно узнать до упаковки.Срочная
refunds/createОформлен возврат.Срочная

Подписывайтесь на orders/create или на orders/paid, но не на оба — если только вам правда не нужны два уведомления на одну продажу. Для большинства магазинов честнее orders/paid.

Шаг 1 — Создайте канал

Создайте в Echobell канал с названием вроде «Заказы Shopify», скопируйте его webhook-URL и включите Только POST. Shopify всегда отправляет POST.

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

Шаг 2 — Добавьте вебхук в Shopify

В админке Shopify откройте Настройки → Уведомления → Вебхуки → Создать вебхук. Выберите топик, формат — JSON, вставьте URL канала.

При сохранении Shopify отправляет тестовый payload. Если телефон завибрировал, путь работает.

Шаг 3 — Вынесите в шаблон только те поля, которые вы читаете

Payload заказа в Shopify длинный — больше сотни полей на заказ. Вам нужны единицы:

Заголовок

Заказ #{{order_number}} · {{total_price}} {{currency}}

Текст

{{customer.first_name}} {{customer.last_name}}
{{line_items[0].title}}

line_items — массив, поэтому line_items[0] это первая позиция. Шаблоны Echobell умеют обращаться по индексу, но цикла нет: заказ из трёх позиций покажет первую и ничего больше. Если это важно, поставьте рядом количество:

{{line_items[0].title}} · всего {{line_items.length}} позиций

В отличие от Stripe, Shopify присылает total_price десятичной строкой — "49.00", а не 4900 — так что читается правильно без всякой арифметики.

Шаг 4 — Маршрутизируйте по топику условием

Если направить несколько топиков в один канал, Shopify сообщит в заголовке, какой именно пришёл:

header["x-shopify-topic"] == "orders/paid"

Это самый чистый способ развести поведение, не создавая в админке по вебхуку на канал.

Будите меня только ради крупных заказов

Схема, которой на самом деле хотят почти все владельцы магазинов: все заказы идут в тихий канал, и только те, что выше порога, — в громкий.

Создайте второй канал, переведите в срочный режим, направьте на него ещё один вебхук orders/paid и задайте условие:

total_price > 500

Теперь обычный день — фоновый гул, а заказ на 900 € — то, что вы почувствуете.

Чего это не делает

Без проверки HMAC. Shopify подписывает каждый вебхук заголовком X-Shopify-Hmac-Sha256. Echobell его не проверяет, поэтому URL канала — единственное, что не пускает посторонних. Держите его в секрете, оставьте Только POST включённым, а если поддельное уведомление о заказе нанесёт реальный ущерб, поставьте впереди собственный эндпоинт, проверяйте HMAC там и вызывайте Echobell уже оттуда.

Shopify может доставить один и тот же вебхук дважды. Он повторяет попытки при сбое, и повторы не дедуплицируются. Считайте уведомление поводом посмотреть заказ, а не счётчиком заказов. Источник истины — админка Shopify.

Инвентарные топики быстро становятся шумными. inventory_levels/update срабатывает на любое движение остатков, включая ваши собственные правки. Нужны оповещения о низком остатке — фильтруйте жёстко, иначе пожалеете ещё до обеда.

Частые вопросы

Нужно ли для этого приложение Shopify?

Нет. Вебхуки в разделе Настройки → Уведомления встроены в админку и не требуют ни приложения, ни партнёрского аккаунта, ни кода.

Может ли склад видеть заказы, не видя моей админки Shopify?

Да. Поделитесь с ними каналом. Они получат уведомления и ничего больше — без доступа в админку и без данных покупателей сверх того, что вы включили в шаблон.

Стоит ли класть имена покупателей в уведомление?

Это ваш выбор, и его стоит сделать осознанно. Всё, что попало в шаблон, показывается на заблокированном экране. Номера заказа и суммы обычно достаточно, чтобы решить, реагировать ли.

Можно получить звонок при чарджбэке?

Споры в Shopify Payments приходят топиком disputes/create в магазинах, использующих Shopify Payments. Направьте его в канал со звонком — это единственное заказное событие со сроком.

Итог

Один вебхук, один шаблон и условие, если нужна громкая версия. Занимает минут пять и заменяет обновление страницы заказов.

Скачайте Echobell для iPhone или возьмите в Google Play, затем оформите тестовый заказ и посмотрите, как он придёт раньше письма-подтверждения.


Связанные материалы