Ограничения API МойСклад и как строить надёжный обмен

Содержание
Интеграция с МойСклад обычно начинается легко: открытый API, понятная документация, вебхуки. Проблемы появляются позже, когда растёт каталог, число заказов и количество подключённых систем. Тогда интеграция упирается в лимиты, начинает терять изменения или замедляется.
Эта статья для тех, кто уже столкнулся с такими проблемами или хочет избежать их на старте.
Какие ограничения встречаются
Лимиты на количество запросов
У API МойСклад есть ограничения на количество запросов за период и на число параллельных запросов. При превышении сервер отвечает ошибкой, и запрос нужно повторить позже. Актуальные значения лимитов указаны в документации API.
Объём данных в одном ответе
Списки возвращаются частями, и для полной выгрузки каталога нужно много последовательных запросов.
Вебхуки
Уведомления об изменениях помогают не опрашивать систему постоянно, но они не гарантируют доставку каждого события. Нужна резервная сверка.
Общие лимиты на аккаунт
Если к одному аккаунту МойСклад подключено несколько интеграций (сайт, портал, CRM, сервис доставки), они делят общий лимит. Одна «жадная» интеграция может мешать остальным.
Типичные симптомы
- остатки на портале обновляются с большой задержкой;
- часть изменений цен не доходит;
- интеграция периодически падает с ошибками превышения лимита;
- ночная полная выгрузка не успевает завершиться;
- после подключения новой интеграции старые начинают работать хуже.
Принципы надёжного обмена
- Передавать изменения, а не всё целиком. Полная выгрузка нужна только для первичной загрузки и редкой сверки.
- Использовать вебхуки плюс сверку. Вебхуки дают скорость, сверка даёт полноту.
- Хранить копию данных на своей стороне. Портал читает свою базу, а не МойСклад при каждом действии пользователя.
- Приоритизировать запросы. Создание заказа важнее обновления описаний.
- Повторять с паузой. При ошибке лимита не повторять сразу, а увеличивать задержку.
- Журналировать. Каждая операция записывается со статусом и ошибкой.
- Объединять интеграции. Не подключать каждую систему к МойСклад отдельно.
Когда это становится критичным
- каталог из десятков тысяч позиций с модификациями;
- сотни заказов в день;
- частые изменения цен и остатков;
- несколько каналов: портал, сайт, CRM, сервисы доставки.
Частые вопросы
Можно ли увеличить лимиты?
Условия зависят от МойСклад и тарифа. Но даже при больших лимитах правильная архитектура обмена остаётся необходимой.
Почему не приходят вебхуки?
Причины разные: недоступность обработчика, долгий ответ, ошибки на стороне сервиса. Поэтому вебхуки всегда дополняют сверкой.
Можно ли исправить существующую интеграцию?
Обычно да: переводят обмен на изменения, добавляют очередь, повторы и сверку.


