Заказы из Tilda и WordPress в МойСклад: трек, статусы, дубли
Заказы с Tilda, WordPress или самописного сайта уходят в МойСклад, а потом появляются дубли, пропадает трек-номер, не доезжает отмена. Разбираем, что с чем связывается по документации API, где связка ломается и как проверить её без тестового контура.
Заказ пришёл, а трека нет. Или пришёл дважды
По объявлениям на биржах фриланса в январе и октябре 2026 года такие связки заказывают постоянно. В одном заказ из Tilda уходит в МойСклад через стороннее решение, а трек-номер службы доставки по дороге теряется. В другом форму на WordPress нужно связать с МойСклад вместе с UTM-метками и полями менеджера. В сентябре 2026 на Хабре разобрали магазин на самописном движке: остаток «в наличии» брался со склада другого юрлица, а резерв вставал на родительскую карточку вместо размера. Заказы с маркетплейсов здесь не разбираю, это отдельная тема.
Что с чем связывается
В таблице сущности по документации JSON API 1.2 (dev.moysklad.ru, проверено 2026-10-02).
| Что | Сущность в МойСклад | На что смотреть |
|---|---|---|
| Покупатель | контрагент (counterparty), при создании обязательно name | есть phone и email, по ним работает фильтр, телефон приводите к одному формату |
| Заказ | customerorder, обязательны organization и agent | номер заказа сайта храните в externalCode |
| Позиции | positions: assortment, quantity, price, reserve | цена в копейках, ссылка на модификацию, резерв отдельным полем |
| Оплата | входящий платёж (paymentin), связь с заказом через operations | payedSum в заказе только для чтения |
| Статус | state из метаданных заказов (states) | сопоставляйте по id статуса, не по названию |
| Трек-номер | дополнительное поле заказа (attributes) | в стандартных атрибутах заказа трека я не нашёл, поле создаёте сами |
| Остаток | краткий отчёт об остатках | фильтр storeId, тип stock, reserve или quantity |
Способов передать заказ четыре. Первый, встроенный коннектор Tilda через CommerceML. Он загружает заказы, ставит товары в резерв, отдаёт остатки с выбранного склада и передаёт изменения обратно. По справке Tilda заказы уходят в статусах «Новый» (не оплачен) и «Подтверждён» (оплачен), а правило отправки выбирается: один раз, один раз с задержкой, повторно после смены статуса или только оплаченные. Второй, Webhook Tilda на ваш HTTPS-скрипт: POST, ответ 200 за пять секунд, затем ещё две попытки с интервалом в минуту, товары можно получать массивом вместе с externalid. Третий, WooCommerce на WordPress: у него есть вебхуки на заказы, и он отключает вебхук после более чем пяти подряд неудачных доставок. Четвёртый, свой код с запросами к API, как в статье про интеграцию API на заказ.
Где ломается чаще всего
Дубли. Повтор отправки Tilda, ретрай вашего скрипта, ручная кнопка «выгрузить ещё раз». Спасает правило из обсуждения на Хабре: перед созданием искать заказ по externalCode (в документации для него есть фильтр) и создавать документ, только когда ответ 200 и список пуст. Ответ 429 или 5xx пустым списком не считается. Если запись вернула 5xx, пользователи советуют не повторять её вслепую: документ мог создаться.
Отмена. По справке МойСклад, коннектор Tilda не выгружает статус отмены и статус отгрузки. Отмену придётся передавать отдельно. Резерв в справке снимается флажком в заказе или сценарием, а что делает с резервом смена статуса на «Отменён» именно у вас, не проверено: узнайте на тестовом заказе.
Оплата. Статус оплаты в заказе («Не оплачено», «Частично оплачено», «Оплачено») меняется, когда создан связанный входящий платёж. При оплате через приложение «Онлайн-оплата» статус не меняется, об этом сказано в справке. Платежа среди загружаемых из Tilda данных нет, его создаёт сценарий или ваш скрипт.
Остатки. Без фильтра остаток считается по всем складам и юрлицам аккаунта. В отчёте есть фильтр storeId, а в коннекторе Tilda можно выбрать склад. Краткий отчёт рассчитан на запросы раз в 5-15 минут, а полную сверку документация рекомендует делать раз в сутки.
Модификации. Если в коннекторе выключено «Создавать модификации товаров», заказ с неизвестной модификацией создаст отдельный товар. В своём коде позиция должна ссылаться на модификацию и нести reserve, иначе, по обсуждению на Хабре, товар остаётся свободным и продаётся повторно.
Трек. Среди загружаемых из Tilda данных его нет. Рабочая схема: создать дополнительное поле заказа, найти заказ по externalCode и записать значение через PUT с attributes. Откуда брать номер, зависит от службы доставки. API Яндекс GO для бизнеса я не открывал.
Как проверить без песочницы
Отдельной тестовой копии аккаунта в документации API я не нашёл, участники обсуждения на Хабре пишут, что её нет, и тест уходит в боевой учёт. Порядок, который я бы выбрал.
1. Скрипт по умолчанию только собирает документ и показывает его, запись включается отдельным флагом.
2. Тестовые заказы создаются с пометкой в комментарии, отдельным проектом или каналом продаж (в заказе есть project и salesChannel) и на тестового контрагента.
3. На время теста отключите вебхуки заголовком X-Lognex-WebHook-DisableByPrefix, а после удалите тестовые документы.
4. Прогоните пять заказов: две штуки одной позиции, скидка, модификация, оплата, отмена. Затем повторите отправку тех же заказов и убедитесь, что новых документов нет.
5. Раз в сутки сверяйте заказы сайта с МойСклад по чтению. Вебхук МойСклад ждёт ответа 1500 миллисекунд и повторяет доставку три раза, потом уведомление удаляется, поэтому одним вебхуком не обойтись. На бесплатном тарифе вебхуки не отправляются.
Связку с учётом шире описывает статья про МойСклад вместо 1С, общий чек-лист приёмки лежит здесь.
Что важно учесть
Подключение магазина в МойСклад доступно на тарифах от бесплатного, после пробных 7 дней нужна опция онлайн-торговли, цену я не проверял. Когда сайт на WordPress, готовые плагины живут своей жизнью: статус плагина в каталоге wordpress.org может поменяться, перед выбором откройте его страницу и посмотрите дату последнего обновления. Не проверено: числа лимитов запросов к API, поведение резерва при смене статуса, API службы доставки. Выбор платформы под такую связку разобран в статье Tilda или WordPress.
Частые вопросы
Хватит ли встроенного коннектора Tilda?
Для заказов, резерва и остатков хватает. Трек, отмену и оплату через платёж придётся делать отдельно, скриптом или сценарием МойСклад.
Почему заказ создался дважды?
Обычно повтор отправки без проверки по externalCode. Tilda повторяет запрос при сбое, а режим «повторно после смены статуса» отправляет заказ ещё раз.
Можно ли тестировать на живом аккаунте?
Можно, если пометить заказы, отключить вебхуки на время теста и удалить документы после. Без пометок тест попадёт в отчёты.
Коротко о главном
Заказ с сайта легко передать, сложнее с дублями, отменой, оплатой, остатками и модификациями. Номер заказа сайта кладите в externalCode, статусы сопоставляйте по id, а тест делайте на помеченных документах.
Хотите, чтобы я связал ваш сайт с МойСклад: заказы, оплата, трек, остатки без дублей? Напишите мне в Telegram слово «ЗАКАЗЫ». Подробнее на странице автоматизации бизнес-процессов.
Что я делаю для бизнеса
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


