Почему именно вебхук
У Тильды нет API заказов. Её API — только на тарифе Business и с лимитом 150 запросов в час — умеет отдавать проекты и страницы, но методов для заказов в нём нет. Статусы заказов в самой Тильде меняются вручную и с внешними системами не синхронизируются.
Поэтому единственный автоматический способ узнать об оплаченном заказе — подключить внешний адрес как «сервис приёма данных», то есть вебхук. Корзина ST100 — это форма, и её данные Тильда умеет отправлять на такой адрес вместе с почтой, CRM и другими приёмниками.
У этого есть важное следствие: обратного канала нет. Статусы Ozon в заказ Тильды не вернуть, а отмену заказа в Тильде сервис не увидит. Поэтому статусы, отмены и возвраты живут в кабинете сервиса.
Как Тильда отправляет вебхук
По справке Тильды:
| Что | Как устроено |
|---|---|
| Где настраивается | «Настройки сайта → Формы → Webhook», затем подключается в настройках конкретного блока |
| Протокол | POST-запрос, только на адрес с HTTPS |
| Проверка при подключении | Тильда присылает тестовый запрос, и адрес должен ответить «ok» |
| Время на ответ | 5 секунд; в старом разделе ответов Тильды встречается 7 секунд — ориентируемся на 5 |
| Повторы при ошибке | Ещё две попытки с интервалом в минуту |
| Где видны ошибки | «Заявки → Журнал ошибок» |
| Какие поля приходят | Переменные полей формы — имя, почта, телефон, свои и скрытые поля, плюс номер заявки и номер формы |
| Дополнительные опции | Отправка cookie, товары массивом, внешний идентификатор, формат JSON |
Только после оплаты
Для доставки важно, чтобы отправление создавалось только по оплаченному заказу. В Тильде за это отвечает галочка в настройках платёжной системы: «Отправлять данные в сервисы приёма данных только после оплаты». По справке Тильды она включена по умолчанию и важнее настроек отдельных приёмников.
Проверьте, что галочка стоит. Тогда заказ, который покупатель оформил, но не оплатил, до сервиса не дойдёт, и в Ozon ничего не создастся. Отправление уходит в Ozon только после оплаты — так же, как у встроенных служб Тильды.
Как защищён вебхук
У вебхука Тильды нет подписи запроса и нет официального списка IP-адресов, с которых он приходит. Есть только общий секрет — API-ключ. В настройках вебхука три поля:
- API Method — где передавать ключ: в заголовке или в теле POST-запроса;
- API Name — имя заголовка или поля;
- API Key — сам секрет.
Сервис выдаёт каждому магазину свой секрет и сравнивает его с пришедшим так, чтобы по времени ответа нельзя было подобрать ключ. Публичный идентификатор магазина в адресе вебхука доступа не даёт: без секрета запрос не примут. Если секрет мог попасть не в те руки, выпустите новый в разделе «Установка» кабинета сервиса — старый сразу перестанет работать, и его нужно будет заменить в Тильде.
Секрет вебхука не пересылайте в чатах и не публикуйте на сайте. В коде в head его нет и быть не должно: браузер покупателя знает только публичный идентификатор магазина.
Настройка по шагам
- В кабинете сервиса откройте раздел «Установка»: там адрес вебхука вашего магазина и кнопка «Показать секрет».
- В Тильде откройте Настройки сайта → Формы → Webhook и вставьте адрес.
- Заполните API-ключ: «API Method» — в заголовке, «API Name» и «API Key» — как в кабинете сервиса.
- Сохраните. Тильда отправит проверочный запрос, сервис ответит «ok».
- Откройте настройки блока корзины ST100 → «Контент» → «Приём данных» и отметьте этот вебхук.
- В настройках платёжной системы проверьте галочку «Отправлять данные в сервисы приёма данных только после оплаты».
Новый блок ST100 сам подключается ко всем приёмникам данных проекта. Проверьте «Приём данных» у блока корзины, особенно если вебхук добавлен после блока.
Что сервис делает с заказом
Тильда ждёт ответа не больше 5 секунд, а Ozon иногда отвечает дольше. Поэтому внутри вебхука сервис не обращается к Ozon вообще:
- Проверяет секрет магазина.
- Смотрит, выбран ли вариант Ozon. Обычные формы и заказы с другими способами доставки сервис не сохраняет и просто отвечает «ok».
- Сохраняет заказ и сразу отвечает «ok» — обычно меньше чем за секунду.
- Решает, что делать дальше: если пункт есть в справочнике, расчёт цены найден и сделан для того же пункта, а оплачено не меньше расчёта, заказ ждёт передачи в Ozon. Иначе — статус «Нужно ваше решение» с причиной.
- Фоновая задача раз в минуту создаёт отправления в Ozon по ждущим заказам.
Повторный вебхук по тому же заказу второго отправления не создаст. Если сервис не смог сохранить заказ, он отвечает ошибкой — и Тильда сама повторит отправку через минуту.
Какие данные нужны сервису
Из вебхука сервис берёт:
- имя, телефон и почту покупателя — для отправления в Ozon и писем;
- поле «Доставка» — название варианта и оплаченную цену в виде «Название = цена»;
- скрытые поля пункта —
ozon_point_id,ozon_point_addressиozon_quote_id; - данные оплаты и товары — сумму и состав заказа для объявленной стоимости посылки.
Сервис разбирает данные корзины и строкой JSON, и вложенным массивом, а товары — и объектами, и строками. Если скрытые поля не придут, сервис найдёт расчёт по номеру заказа, который виджет передал после оформления.
Если заказ оплачен, а в кабинете его нет
- Откройте «Заявки → Журнал ошибок» в Тильде: там видно, отвечал ли адрес вебхука и что именно.
- Проверьте, что вебхук отмечен в «Приёме данных» именно у блока корзины.
- Проверьте секрет: после выпуска нового его нужно заменить и в Тильде.
- Проверьте, что в заказе выбран вариант, название которого начинается со слова из настроек сервиса.
Если всё настроено, а заказа нет, ответьте на любое письмо сервиса — разберёмся.
Вопросы
Можно ли подключить вебхук сервиса вместе с CRM и почтой?
Да. У формы может быть несколько приёмников данных: заказ уйдёт и в CRM, и на почту, и в сервис.
Придёт ли в сервис заказ, который покупатель не оплатил?
Нет, если в платёжной системе включена отправка данных только после оплаты. Именно поэтому отправление в Ozon создаётся только для оплаченных заказов.
Что будет, если сервис в момент вебхука недоступен?
Тильда повторит отправку ещё два раза с интервалом в минуту. Ошибки будут видны в журнале ошибок заявок.
Читайте дальше
- Как подключить: инструкция по шагамКабинет Ozon, вариант в корзине ST100, код в head, проверка цены, вебхук и тестовый заказ.
- Кабинет: заказы, «Собрано», этикеткиСтатусы Ozon, «Собрано», этикетка PDF, отмена отправления, возвраты, штрихкод и письма.
- Уровень проверки цены доставкиЗачем Тильда сверяет цену доставки и какой уровень поставить, чтобы цена Ozon не мешала заказу.
- Какой тариф Тильды нуженПочему на бесплатном тарифе не работают оплата и передача заказов и что нужно от Personal и Business.
- Свой способ доставки: как устроеноПоле «Доставка», цена в итоге корзины, скрытые поля и перехват оформления — без секретов.