Интеграции
МойСклад: Гибкий обмен заказами по API
Двусторонний обмен заказами между интернет-магазином на 1С-Битрикс и МойСклад по JSON API 1.2: статусы, корзина, контрагенты, оплаты, отгрузки и свойства заказа — с веб-хуками для мгновенной передачи изменений.
- МойСклад
- Интернет-магазин
- Заказы
- Веб-хуки
- Интеграция
- rbs.moysklad
-
Демо-период 14 дней
Полный функционал до оплаты — проверьте на своём каталоге.
-
Бессрочная лицензия
Платите один раз — модуль остаётся на сайте без подписки.
-
Поддержка от автора
Отвечает разработчик модуля. Входит в стоимость лицензии.
-
Доработка под задачу
Нужен свой сценарий — сделаю на заказ.
Описание
Модуль связывает интернет-магазин на 1С-Битрикс и МойСклад в одну базу заказов. Покупатель оформляет заказ на сайте — в МойСкладе появляется заказ покупателя: с контрагентом, корзиной, ценами и скидками, доставкой, оплатой и нужными свойствами. Менеджер меняет статус, состав или комментарий в МойСкладе — изменение возвращается в заказ на сайте. Обмен идёт напрямую по JSON API 1.2, без файлов выгрузки и стандартного обмена.
Почти каждый кусок обмена настраивается отдельно: какие поля уходят, в какую сторону передаётся свойство, как ищется контрагент, когда создаётся отгрузка, какие статусы не трогать. Поэтому модуль подстраивается под уже сложившиеся процессы магазина, а не наоборот.
Что синхронизируется
Заказы — создание и обновление в обе стороны, включая импорт заказов, созданных в МойСкладе.
Статусы — по таблице соответствий, с флагом отмены заказа и защитой завершённых заказов от повторной смены статуса.
Корзина — состав, количество, цены и скидки позиций, модификации, раскрытие комплектов, стоимость доставки.
Контрагенты — поиск существующих и создание новых: физлица по телефону или email, юрлица и ИП по ИНН.
Оплаты — входящие платежи и приходные ордера.
Отгрузки — документы отгрузок, их статусы, склад, НДС и трек-номера.
Свойства заказа — дополнительные поля с направлением обмена для каждого свойства.
Способы доставки и оплаты, канал продаж, ответственный менеджер, комментарии менеджера и покупателя.
Как это выглядит в работе
Покупатель оформляет заказ на сайте. Модуль ставит агента выгрузки, и тот по расписанию отправляет заказ в МойСклад: находит или создаёт контрагента, собирает корзину, проставляет организацию, склад и статус. Если нужно, выгрузку можно отложить до определённого статуса или настроить моментальную — сразу после оформления.
В обратную сторону работают веб-хуки: МойСклад сам сообщает сайту об изменении заказа, платежа, приходного ордера или отгрузки. Обрабатывать их можно сразу, через очередь или в смешанном режиме — очередь спасает сайт при массовом редактировании заказов в МойСкладе.
Ключевые возможности
Гибкий поиск контрагентов. Правила поиска задаются отдельно для каждого типа плательщика, поэтому повторный покупатель находится, а не дублируется. При создании — теги, группы, формат телефона, запись свойств заказа в поля контрагента.
Два режима оплат. «По сумме» — состояние оплаты определяется суммой документов; «полное соответствие» — каждый документ оплаты дублируется между системами. Платёжные системы, организация, счёт и статус документа сопоставляются в настройках.
Два режима отгрузок. Отгрузка создаётся при достижении статуса или полностью дублируется. Стоимость доставки уходит полем отгрузки или отдельной позицией-услугой.
Резервы. Резерв при создании заказа, перерезервирование при изменении корзины, снятие резерва по статусу и при отмене.
Свойства любого типа. Строка, число, флажок, дата, перечисление, файл, местоположение — для каждого свойства своё направление: на сайт, в МойСклад или в обе стороны.
Импорт заказов из МойСклад. Заказ создаётся на сайте по веб-хуку создания или по флажку в заказе МойСклад; есть разовый импорт заказов за период.
Профили обмена. Несколько профилей — для разных аккаунтов МойСклад или разных сайтов многосайтовой конфигурации.
Фильтры и исключения. Обмен по сайту, блокировка конкретного заказа полем-флагом, порог по ID — старые заказы не трогаются.
Диагностика. Лог операций с фильтрами по заказу и типу события, режим отладки, уведомления об ошибках на почту и в админке.
Для разработчиков. События модуля для заказов, контрагентов, корзины, веб-хуков и настроек — доработки без потери обновлений.
Требования
1С-Битрикс: Управление сайтом с модулем «Интернет-магазин».
PHP 8.
Платный тариф МойСклад — на бесплатном нет веб-хуков.
Доступ к JSON API 1.2: токен или логин и пароль администратора МойСклад.
Агенты на cron и доступный снаружи адрес веб-хука на сайте.
Что модуль не делает
Не работает на бесплатном тарифе МойСклад: без веб-хуков изменения из МойСклад на сайт не придут.
Не гарантирует совпадение суммы корзины до копейки при скидках: МойСклад считает скидку в процентах, Битрикс хранит конечную цену. Опция пересчёта помогает, но 100% совпадения не обещает.
Не угадывает соответствия статусов: если статус МойСклад не сопоставлен, его нужно добавить в соответствия или в игнорируемые, иначе сайт может вернуть прежний статус.
Не работает в паре со стандартным обменом заказами Битрикс и МойСклад — стандартный обмен нужно отключить.
Частые вопросы
Обмен односторонний или двусторонний?
Двусторонний. Заказы с сайта выгружаются в МойСклад агентом, а изменения из МойСклад — статусы, корзина, комментарии, оплаты, отгрузки — приходят на сайт через веб-хуки. Для свойств заказа направление задаётся отдельно: на сайт, в МойСклад или в обе стороны.
Работает ли модуль на бесплатном тарифе МойСклад?
Нет. Модуль работает только с платными тарифами МойСклад: на бесплатном тарифе нет веб-хуков, а без них изменения из МойСклад не передаются на сайт.
Как быстро заказ попадает в МойСклад?
По умолчанию заказ выгружает агент — обычно через 1–5 минут, в зависимости от настроек cron. Начиная с версии 1.7.2 можно настроить моментальную выгрузку сразу после оформления: для этого в шаблон страницы успешного оформления заказа вставляется небольшой фрагмент кода. Также можно отложить выгрузку до определённого статуса.
Нужен ли стандартный обмен заказами Битрикс с МойСклад?
Нет, его нужно отключить. Модуль обменивает заказы только сам, напрямую по JSON API 1.2 МойСклад, а стандартный обмен в этом случае устаревший и приведёт к двойной обработке.
Можно ли загружать на сайт заказы, созданные в МойСклад?
Да. Заказ создаётся на сайте по веб-хуку создания заказа покупателя (customerorder / CREATE). Если этот веб-хук по какой-то причине не сработал, можно включить импорт по обновлению: менеджер ставит в заказе МойСклад доп. поле-флажок, и модуль импортирует заказ при следующем сохранении. Для исторических заказов есть разовый импорт за период.
Не будут ли создаваться дубли контрагентов?
Перед созданием модуль ищет существующего контрагента. Поиск настраивается отдельно для каждого типа плательщика: физлиц — по телефону или email, юрлиц и ИП — по ИНН. Важно, чтобы поля, участвующие в поиске, также заполнялись при создании контрагента — тогда при следующем заказе он найдётся.
Почему статус заказа на сайте «откатывается» после смены в МойСклад?
Чаще всего потому, что статусы сайта и МойСклад сопоставлены не один к одному. Если в МойСклад поставили статус, которого нет в соответствиях, на сайте он не меняется, и при следующем изменении заказа на сайте модуль отправит в МойСклад прежний статус. Решение — добавить такие статусы в соответствия или в игнорируемые на вкладке «Экспорт заказа» (с версии 1.9.0).
Почему сумма корзины на сайте и в МойСклад может различаться на копейки?
МойСклад хранит скидку позиции в процентах, а Битрикс — конечную цену. Модуль пересчитывает цену сам, но Битрикс округляет её до копеек, и при большом количестве товара набегает разница. Опция «Пересчитывать корзину при несовпадении стоимости» подбирает более точный процент скидки в МойСклад, но 100% совпадения не гарантирует.
Передаётся ли НДС позиций корзины?
Да. Нужно указать правила работы НДС для заказа и включить в модуле опцию брать ставку НДС из каждой позиции корзины. У каждой позиции в Битриксе должна быть проставлена ставка — модуль передаст её в соответствующую позицию МойСклад.
Как передать адрес доставки в МойСклад?
Через соответствие свойств. Адрес типа «Местоположение» можно передать цельной строкой (в поле «[Адрес] Другое» МойСклад) или по частям — страна, регион, город сопоставляются с соответствующими полями адреса МойСклад.
Можно ли выгружать заказы с префиксом в номере?
Да. Включите шаблон номера с префиксом в настройках нумерации заказов интернет-магазина, а в настройках модуля выберите ACCOUNT_NUMBER в качестве выгружаемого номера заказа.
Не начнёт ли модуль обменивать все старые заказы сразу после включения?
Это настраивается. В исключениях задаётся порог по ID — заказы с номером ниже указанного не обрабатываются. Кроме того, обмен можно ограничить сайтом или заблокировать для конкретного заказа полем-флагом.
Заказ не выгружается в МойСклад — что проверить?
По порядку: включён ли обмен на вкладке «Настройки → Работа модуля»; выполняются ли агенты на cron; нет ли ошибок в логе модуля; больше ли ID заказа порога в исключениях. Заказ можно выгрузить и принудительно — вызовом агента выгрузки из командной PHP-строки.
Выдержит ли сайт массовое редактирование заказов в МойСклад?
Для этого есть ограничения веб-хуков: максимальное число сущностей за один веб-хук и, с версии 3.0.0, очередь задач — агент обрабатывает заданное количество задач за один запуск. Остальное ждёт следующего шага, а не нагружает сайт разом.
Можно ли доработать логику обмена под свой магазин?
Да. Модуль предоставляет события для заказов, контрагентов, корзины, веб-хуков и настроек: через них можно менять передаваемые данные, блокировать отдельные операции и подключать свою логику поиска и сопоставления — без правки кода модуля и без потери обновлений.
Не нашли ответ?
Напишите — отвечу лично и подскажу, подойдёт ли модуль под вашу задачу.
Установка
Установка модуля
Модуль ставится как любое решение Маркетплейс — из карточки решения или из каталога решений на вашем сайте. Общая инструкция: Установка модуля.
Настройки модуля находятся в административной части сайта, в параметрах модуля «Гибкий обмен заказами с МойСклад». Видеоинструкция по быстрому старту есть в разделе Быстрый старт.
Подключение к МойСклад
На вкладке «Настройки» укажите данные доступа и сохраните настройки — должно появиться сообщение об установленном подключении. Поддерживаются два способа:
- Токен — выпускается в МойСклад, инструкция: Создание токена.
- Логин и пароль администратора аккаунта МойСклад с максимальными правами.
Если заполнено поле токена, модуль авторизуется по нему. Подробнее — Авторизация.
Первая настройка
- Веб-хуки. Создайте веб-хук для заказа покупателя customerorder / UPDATE. Файл обработчика по умолчанию лежит по адресу
https://site.ru/mshooks/hook.phpи должен открываться без редиректов, с кодом 200. - Экспорт заказа. Настройте поля заказа и при необходимости отключите обмен старыми заказами в исключениях.
- Свойства, статусы, корзина. Сопоставьте свойства (например, адрес доставки) и статусы, отметьте нужные опции корзины, настройте передачу доставки.
- Контрагенты. Пройдите быструю настройку выгрузки контрагента: поиск физлиц по телефону и email, юрлиц по ИНН.
Проверка: заработал ли обмен
- Убедитесь, что агенты выполняются на cron: Настройка агентов на cron.
- Отключите стандартный обмен заказами с МойСклад.
- Включите обмен галочкой на первой вкладке модуля.
- Оформите тестовый заказ в публичной части сайта.
- В списке агентов (
/bitrix/admin/agent_list.php?lang=ru) должен появиться агент\Rbs\Moysklad\Agent::createOrderApi. - Через 1–5 минут заказ должен появиться в МойСклад.
- Смените статус заказа в МойСклад и проверьте, что он изменился на сайте.
Если заказ не выгрузился — проверьте лог модуля. Если не меняется статус из МойСклад — проверьте веб-хук. Частые причины собраны в FAQ, все настройки описаны в разделе Описание настроек модуля.
Другие модули
МойСклад: Интеграция с Битрикс24
Двусторонний обмен Битрикс24 (коробка) и МойСклад: сделки ↔ заказы покупателя и поставщику, контакты и компании ↔ контрагенты с реквизитами, товарные строки ↔ позиции документа.
- Интеграции
- Новинка
- Демо 14 дней
- Партнёрская скидка
МойСклад: Обмен контрагентами по API
Двусторонний обмен пользователями 1С-Битрикс и контрагентами МойСклад по API: стандартные и дополнительные поля, группы, тип контрагента и персональные скидки. Работает даже на редакции «Старт».
- Интеграции
- Новинка
- Демо 14 дней
Нужно расширить функционал модуля?
Смогу доработать как текущий модуль, так и сделать кастомный модуль под ваш обмен.