Двусторонний обмен с МойСклад
Этот модуль входит в нашу Подписку.
Оформите подписку — и пользуйтесь всеми модулями без ограничений.
Двусторонний обмен с МойСклад помогает держать магазин и учётную систему в одном потоке данных. Товары, вариации, комплекты, остатки, заказы, оплаты, доставки и статусы не приходится переносить вручную.
Для чего нужен
Модуль нужен, когда продажи ведутся в CS-Cart, а учёт и складской контур живут в МойСклад. Он помогает синхронизировать данные в обе стороны и уменьшает количество ручных правок.
Основные возможности
Импорт и экспорт товаров, вариаций и комплектов. Обмен заказами, статусами заказов, способами оплаты и доставки. Синхронизация остатков по складам и по выбранным правилам. Работа с вебхуками и очередями, чтобы разгружать витрину и админку. Сопоставление категорий, групп товаров и вариаций. Поддержка Multi-Vendor и разных витрин. Отображение результатов последней синхронизации в админке. Отдельные режимы только импорта или только экспорта.
Как работает
Рабочие настройки собраны в разделе синхронизации данных. Там выбирают режим обмена, настраивают импорт и экспорт, сопоставляют сущности и включают нужные сценарии обмена.
При необходимости модуль принимает события через вебхуки, ставит их в очередь и обрабатывает фоном. Для заказов доступна отдельная асинхронная синхронизация.
Остались вопросы по работе модуля?
- Store Builder
- Store Builder Ultimate
- Multi-Vendor
- Multi-Vendor Plus
- Multi-Vendor Ultimate
- Владельцам
- English
- Русский
- 4.20.X
- 4.19.X
- 4.18.X
- 4.17.X
- 4.16.X
- 4.15.X
- 4.14.X
- 4.13.X
- 4.12.X
Инструкция к модулю «Двусторонний обмен с МойСклад»
Модуль синхронизирует данные между CS-Cart и МойСклад в обе стороны. Он работает с товарами, вариациями, комплектами, остатками, заказами, статусами, способами оплаты и доставки, категориями и вебхуками.
Что делает модуль
Модуль передаёт и получает данные по выбранному режиму обмена. Можно включить только импорт, только экспорт или двусторонний обмен. Для заказов предусмотрена фоновая синхронизация, а для событий из МойСклад есть обработка через очередь.
Дополнительно модуль поддерживает сопоставление категорий и групп товаров, работу с вариациями, управление остатками по складам и отображение результата последней синхронизации в админке.
Где находится модуль
Рабочие настройки находятся в разделе Администрирование → Синхронизация данных → MS: Двусторонний обмен с МойСклад. Там доступны вкладки Общие, Настройки импорта, Настройки экспорта, Вебхуки, Категории и Вариации.
На странице настроек аддона есть навигационная ссылка на раздел синхронизации данных и на статус заказов, чтобы быстро перейти к рабочим экранам.
Как настроить обмен
Вкладка Общие используется для подключения к МойСклад и выбора режима обмена. Здесь же задаются базовые параметры синхронизации.
Во вкладках Настройки импорта и Настройки экспорта включают нужные сценарии для товаров и заказов, выбирают, что именно обновлять, и настраивают поведение при создании и изменении объектов.
Во вкладке Категории сопоставляют группы товаров МойСклад с категориями сайта. Можно использовать категорию по умолчанию или создавать категорию при синхронизации.
Во вкладке Вариации настраивают сопоставление характеристик сайта и характеристик МойСклад.
Во вкладке Вебхуки создают и переключают вебхуки для событий из МойСклад. Если вебхуки больше не нужны, их можно удалить по одному или сразу все.
Для заказов можно включить передачу номеров, добавление номера в комментарий, резервирование позиций и создание статусов в МойСклад, если нужный статус ещё не заведён.
Для остатков проверьте, что активны нужные склады и корректно настроен тип отчёта остатков. Если используется отдельная логика складов, заранее задайте сопоставление складов МойСклад и склада сайта.
Как проверить работу
После сохранения настроек запустите синхронизацию товаров или заказов и убедитесь, что в карточке объекта появился результат последней синхронизации без ошибки.
Проверьте раздел синхронизации данных, там должны обновляться статус, прогресс и журнал обмена. Если что-то не прошло, причина обычно видна в карточке товара, заказа или в логах.
Для вебхуков проверьте список подключённых вебхуков в МойСклад и убедитесь, что события доходят до очереди без ошибок.
История изменений
v2.11.1
[+] Добавлена поддержка складов для поставок и резервирования заказов в МойСклад.
[+] Добавлены недостающие служебные поля очереди вебхуков в миграции базы данных.
[*] Повышена стабильность и надёжность синхронизации с МойСклад.
[*] Обновлен шаблон модуля.
v2.11.0 от 2026-05-06
[+] Улучшены настройки синхронизации и сопоставления данных.
[+] Добавлена более понятная информация об обмене товарами и заказами в админке.
[+] Расширена поддержка обмена с МойСклад для товаров, остатков, комплектов и контрагентов.
[!] Повышена стабильность синхронизации товаров, заказов, изображений и остатков.
[!] Улучшено отображение логов, статистики и причин ошибок при обмене.
[!] Обновлена служебная часть модуля для актуальных требований CS-Cart.
v2.10.0 от 2026-03-03
[+] Добавлена вкладка «Атрибуты контрагента» в настройках синхронизации: задание значений по умолчанию для обязательных атрибутов контрагента (Документооборот, ЭДО и др.) при создании контрагента в МойСклад.
[+] Вкладка отображается только при включённом экспорте заказов, галочке «Создавать пользователя» и наличии обязательных атрибутов у контрагента в МойСклад.
[+] В разделе «Импорт отгрузок» настроек синхронизации добавлена настройка «Цена товара для партий»: выбор типа цены из МойСклад (цена из позиции заказа, minPrice, buyPrice или тип из справочника цен) для использования при импорте заказов поставщиков в партии.
[+] При импорте заказов поставщиков в партии цена позиции берётся согласно выбранной настройке: из позиции заказа, из полей товара/вариации МойСклад (minPrice, buyPrice) или из типа цены продажи (salePrices).
[+] Добавлена асинхронная синхронизация статусов заказов: смена статуса в админке теперь занимает 3-5 сек вместо 30-60 сек, синхронизация с МойСклад происходит в фоне через AJAX.
[+] Создан класс StatusSyncQueue для управления очередью задач синхронизации статусов с повторными попытками при ошибках.
[+] Добавлен класс BackgroundProcessor для фоновой обработки через fastcgi_finish_request() без блокировки UI.
[+] Реализована автоматическая обработка очереди через JavaScript с уведомлениями в реальном времени о завершении синхронизации.
[+] Оптимизирована массовая синхронизация остатков: время синхронизации 4500 товаров сокращено с 34 минут до ~10 минут.
[+] Создан класс StockBulkSync с bulk загрузкой маппингов (1 запрос вместо 9000) и batch обновлением остатков (9 запросов вместо 4500).
[+] Добавлено структурированное логирование в формате "дата | событие | сущность | id | результат | время | детали".
[+] Реализованы методы logStructured(), logWebhook(), logStockSync(), logOrderStatus() для читаемых логов с таймингами.
[+] Добавлен CLI прогресс-бар для синхронизации остатков с отображением процента выполнения в реальном времени.
[*] В шаблоне вкладки «Импорт отгрузок» добавлен selectbox с вариантами цен, получаемыми из API МойСклад (get_pricetypes), с пунктом «Цена товара из партии» по умолчанию.
[!] Исправлена ошибка 3000 при создании контрагента: обязательные атрибуты заполняются из настроек, убраны жёстко заданные значения.
[!] При работе с заказами и товарами storefront_id и company_id (только в Multi-Vendor) берутся из заказа/товара и используются для корректной работы в multi-storefront и Multi-Vendor.
[!] При работе с партиями (заказы поставщиков) storefront_id и company_id берутся из партии: связывание партии с заказом поставщика, обновление заказа поставщика, удаление из карты соответствий.
[!] fn_ms_moysklad_get_company_and_storefront_ids: всегда проверяет Registry первым (в т.ч. в админке) для корректного контекста при вызовах из обработчиков.
[!] Исправлена инвертированная логика в update_purchaseorder: обработка выполняется при наличии moysklad_id.
[!] Исправлена ошибка 3007 «Код "0" должен быть уникальным» при создании контрагента для гостевых заказов (user_id=0): теперь используется уникальный код вида guest_{order_id}.
[!] Исправлена ошибка 2016 «значение поля meta не соответствует типу объект»: во все запросы к API МойСклад передаётся только валидный meta (объект с href), пустые строки и массивы исключены.
[!] Исправлена ошибка записи поля s_address в атрибуты заказа: использовался $order вместо $result.
[!] Исправлено дублирование номера заказа в комментарии при многократной смене статусов: номер добавляется только при первом экспорте, при обновлении используется существующий комментарий из МойСклад если он уже содержит номер.
[!] Исправлены deprecated warnings в методе set_notification_log для совместимости с PHP 8.0+.
v2.9.0 от 2026-01-22
[*] Обновлен шаблон модуля.
[!] Исправлена проблема с trailing comma (запятая после последнего аргумента) в вызовах функций для обеспечения совместимости с различными версиями PHP.
v2.8.0 от 2026-01-19
[+] Добавлена настройка, позволяющая включать отображения настроек синхронизации для администраторов маркетплейсов.
[+] Добавлена возможность импорта отгрузок из МойСклад в партии на сайте, для это нужен модуль "Партии".
[*] Обновлены файлы лицензирования.
v2.7.0 от 2025-11-12
[!] Исправлена ошибка поиска поля event_id при постановке в очередь.
v2.6.0 от 2025-10-09
[+] Добавлено кэширование настроек модуля для повышения производительности.
[+] Добавлена асинхронная обработка вебхуков через очередь.
[+] Добавлены индексы базы данных для оптимизации запросов.
[*] Оптимизированы запросы в МойСклад.
[*] Изменена обработка вэбхуков, теперь за обработки вэбхуков необходимо запустить крон ссылку обработчика вэбхуков.
v2.5.0 от 2025-08-02
[+] Добавлена возможность в настройках синхронизации при настройке импорта товаров выбирать импорт поля описание из МС в краткое описание на сайте и в подробное описание.
[+] Добавлена проверка наличия методов у объектов модуля warehouses, так как на старых версиях вызывало ошибку.
[+] Уменьшено время ответа на вэбхук.
v2.4.0 от 2025-07-03
[+] Добавлена настройка импорта налогов для товаров.
[+] Добавлена возможность настройки выбора поиска контрагента по ИНН при включенном модуле ms_invoicing.
[+] Добавлена возможность импорта изображений товаров.
[+] Добавлена возможность просмотра логов записи остатков во вкладке количество на странице редактирования товара.
[+] Добавлена возможность обновления остатков во время отработки вэбхука по созданию/обновлению остатков.
[*] Классы API разбиты на несколько отдельных файлов.
[!] Исправлена ошибка при создании вариаций.
v2.3.0 от 2025-04-09
[+] Добавлена возможность выбрать определенный тип цен для разных складов.
[+] Добавлена возможность в настройках модуля задавать время ожидания перед повторным запросом и количество повторных запросов в случае если от сервера придет ответ о превышении лимита запросов.
[+] Добавлена передача с cs-cart в МС информации о доставки в заказе служб доставки, встроенных в cs-cart.
[*] Изменение языковых переменных.
[*] Изменение таблиц в базе данных реализовано через миграции.
[*] Изменено сопоставление складов для импорта.
[*] Исправлена ошибка при экспорте товара не экспортировались остатки по складам.
[*] Исправлена ошибка при экспорте заказа с одинаковым названием на сайте и в МС заказ не создавался на стороне МС.
[*] Изменена отправка запросов в МС, добавлена обработка ответа и повторная отправка запросов после ожидания.
[*] Актуализированы файлы лицензий.
[*] Изменена работа по вэбхуку, теперь сперва возвращается ответ серверу с которого пришел вэбхук, потом идет обработка данных из него.
[*] Добавлена возможность выгружать остатки товаров по складам через один запрос (до 1000 товаров за один запрос).
[*] Добавлена возможность импортировать "Остатки в поле 'остаток в МойСклад'" независимо от настройки "Импортировать поля при обновлении товара".
[*] Изменены настройки: "Префикс номера заказа" перенесена во вкладку настройки экспорта, "Не синхронизировать номера заказа" изменена на "Передавать номера заказов", если включена галочка "Передавать номера заказов", то потом проверяется префикс.
[*] Изменен алгоритм обновления остатков товаров по вэбхуку с учетом складов.
[-] Удалена настройка для импорта товаров "Импортировать остатки" вместо этого проверяется настройка "Импортировать поля при обновлении товара".
v2.2.2 от 2024-08-13
[*] Исправлена запись цен товара по всем витринам, если такая настройка включена.
[*] Изменен вызов функции array_key_first, заменено на внутреннюю функцию.
[-] Из модуля удален экспорт товаров, так как в старой версии он не работал с вариациями.
v2.2.1 от 2024-05-15
[+] Добавлена возможность использование цен одной витрины для всех витрин.
[+] Добавлена проверка и извлечение значения из массива при передаче штрихкода из МойСклад.
[+] Расширенный поиск у товаров который имеется или отсутствует id MoySklad.
[+] Добавлена передача ПЗВ в поле "Адрес доставки" МойСклад.
[+] Добавлена функция обнуления отрицательных остатков.
[*] Исправлена передача external_id при обновлении товара.
[*] Исправлен шаблон по отрисовке синхронизации данных.
[*] Изменена ссылка на выгрузку всех остатков с учетом настроек синхронизации.
[*] Подправлено извлечение сопоставлений с использованием company_id и storefront_id.
[*] Подправлено обновление заказа.
[*] Исправлено создание вариаций.
[*] Изменено название модуля.
[*] Изменено описание модуля.
[*] Изменена языковая переменная.
v2.2.0 от 2023-11-22
[+] Добавлены кнопки "Удалить из карты сопоставлений", "Перепривязать" и "Связать товар с товаром в МойСклад" на странице редактирования товара.
[+] Добавлены недостающие методы в класс MoySklad2 для того, чтобы можно было удалить класс MoySklad.
[*] Изменена ссылка на главный домен при обращении к АПИ МойСклада, согласно документации. Старый домен прекратит свою работу 01.12.2023.
[*] Изменен тип кодирования/декодирования запросов и ответов, согласно новой документации на gzip.
[*] Исправлена сборка external_id для вариаций.
[*] Исправлены орфографические ошибки в языковых переменных.
[-] Удален старый файл с классом MoySklad.
v2.1.1 от 2023-11-02
[!] Исправлена ошибка при создании заказа с префиксом в названии.
v2.1.0 от 2023-10-20
[+] Добавлено сопоставление налогов.
[+] Добавлено сохранение и вывод ошибок при обновлении/создании заказа на странице редактирования заказа.
[+] Добавлена проверка типов данных полей заказа, обрабатываться будут только строчные типы данных.
[+] Добавлено сопоставление способов доставки.
[+] Добавлена проверка дополнительных полей заказа (допускаются только типы string, text, url), так же добавлено преобразование массивов и болевых в текстовую информацию. Добавлено преобразование company_id в название компании или витрины и issuer_id в ФИ менеджера.
[+] Добавлена проверка типа выгружаемых остатков во вкладке "Выгрузки" с типами импортируемых остатков во складке "Настройки импорта" и блокировка ссылки для выгрузки при их несовпадении.
[*] Исправлена установка склада по умолчанию при создании заказа.
[*] Стандартизация модуля.
[*] Изменена иконка модуля.
[!] Исправлены баги.
[!] Исправлена ошибка при создании заказа от лица инкогнито и прикрепление не того пользователя в системе МойСклад по причине пустого номера телефона.
v2.0.0 от 2023-07-29
[+] Добавлена возможность сохранять настройки и сопоставления данных для разных витрин и разных компаний.
[+] Добавлена возможность отдельно включать и отключать импорт и экспорт.
[+] Добавлена возможность подключения к сервису МойСклад через токен.
[+] Добавлена возможность выбора периода времени создания заказов для экспорта и импорта.
[+] Добавлена возможность выбора полей для создания и обновления товара.
[+] Добавлена возможность выбора данных для использования в качестве кода товара.
[+] Добавлена работа с вариациями в частности сопоставления характеристик для вариаций.
[+] Добавлена возможность сопоставления цен сайта с ценами сервиса МойСклад.
[+] Добавлена возможность сопоставления статусов заказа сайта со статусами сервиса МойСклад.
[*] Настройки модуля и сопоставления данных перенесены на страницы 'Синхронизация данных'.
[*] Управление вэбхуками стало удобней (добавлена возможность отключать, включать и удалять каждый вэбхук по отдельности), а так же возможность удалить разом все вэбхуки.
[*] Более удобной стало работа с выгрузками (добавлено динамическое составление ссылки для cron в зависимости от выбранных настроек).
v1.11.31 от 2023-05-16
[+] Добавлено создание товара, если соответствующая галочка в настройках включена.
[+] Добавлена настройка для управления удаления заказов.
[*] Изменена работа модуля: модуль может работать независимо от модулей commerceml.
[*] Изменен поиск товаров и заказов и сохранение их external_id.
v1.11.30 от 2023-05-05
[+] Добавлена проверка директории и ее создание в случае отсутствия.
v1.11.29 от 2023-05-03
[+] Добавлено сопоставление характеристик для передачи их на сайт.
[*] Изменена структура логирования.
v1.11.28 от 2022-12-30
[*] Минусовые остатки теперь отображаются как ноль.
v1.11.27 от 2022-10-09
[+] Стандартизация модуля.
v1.11.26 от 2022-12-13
[+] Из остатков теперь вычитается резерв.
[!] Остатки выгружаются по складу указанному в настройках.
v1.11.25 от 2022-12-09
[+] Добавлен функционал импорта остатков по web-хуку.
[+] Добавлен функционал импорта всех остатков по нажатию на кнопку.
[+] Для импорта товаров и остатков добавлена возможность использования внешнего кода нового cml.
[+] Добавлены настройки.
[*] Настройки логичнее сгруппированы.
v1.10.25 от 2022-10-09
[+] Стандартизация модуля.
v1.10.24 от 2022-09-17
[*] Изменён и оптимизирован функционал смены статуса и резервирования товаров.
v1.9.24 от 2022-09-16
[+] Добавлена возможность присутствия в заказе более 100 позиций.
[+] Добавлены пре-контроллеры для старого и нового CommerceML (теперь не нужно прописывать код).
[+] Добавлено обновление информации о покупателе.
[*] Изменена логика присвоения номеров заказов.
[*] Изменены запись и просмотор логов.
[*] Изменены настройки по умолчанию.
[!] Исправлена ошибка в настройках при выключенном модуле.
[!] Исправлено добавление товаров в заказ при загрузке в cs-cart.
[!] Исправлено множество багов и нотисов.
v1.8.24 от 2022-02-22
[!] Исправлен баг при смене статуса заказа.
v1.8.23 от 2022-02-16
[+] Добавлено размещение заказа, даже если не найден товар.
[!] Исправлена логика поиска товара в МойСклад.
v1.8.21 от 2022-01-20
[!] Исправлен баг.
v1.8.20 от 2022-01-20
[+] Добавлена возможность обновления некоторых характеристик товара в cs-cart.
v1.7.20 от 2022-01-14
[!] Устранён баг при изменении статуса.
v1.7.18 от 2021-11-29
[*] Изменена иконка модуля.
v1.7.17 от 2021-11-04
[!] Устранён баг привязки заказов к своим витринам.
v1.7.16 от 2021-10-28
[+] Добавлена возможность частичного обновления данных товара в cs-cart.
[!] Устранён баг c удалением информации о гарантии.
[!] Устранены баги связанные с товарами в заказе.
[!] Устранены баги с адресами в заказе.
v1.6.16 от 2021-10-21
[+] Добавлена настройка отключения создания новых заказов в cs-cart.
[!] Устранён баг c исчезновением скидки при двустороннем обмене.
v1.6.15 от 2021-10-18
[!] Устранён баг с удалением цен из МойСклад при массовом редактировании товара.
[!] Устранён баг с ошибкой при создании заказа в МойСклад (атомат. создание услуги доставки).
[!] Устранён баг с неверным вычислением скидки заказа.
v1.6.14 от 2021-10-08
[!] Устранён баг с удалением артикула из МойСклад при массовом редактировании товара.
v1.6.13 от 2021-09-29
[*] Изменены языковые переменные.
v1.4.9 от 2021-03-23
[+] Добавлены языковые переменные.
v1.4.8 от 2021-03-02
[!] Исправлен баг.
v1.4.5 от 2021-03-02
[+] Добавлен en lang.
[!] Изменен налог.
v1.4.3 от 2021-02-15
[+] Добавлены функции.
v1.4.1 от 2021-02-04
[*] Обновления и доработки.
v1.4.0 от 2021-01-25
[+] Сохранение external_id при создании товара модулем в МойСклад.
[+] Добавлена таблица для сохранения настроек склада и организации по умолчанию.
[+] Добавлен выбор организации по умолчанию.
[!] Исправлен сброс настроек склада по неясным причинам.
v1.3.8 от 2020-12-15
[!] Исправление бага.
v1.3.7 от 2020-12-15
[!] Исправлены обновления продукта.
v1.3.6 от 2020-12-11
[+] Отключение нумерации заказов со стороны CS CART.
[+] Отключение обновления доп. полей.
[!] Исправлен первый статус заказа - "Незавершенный".
v1.3.5 от 2020-12-09
[!] Исправлены пользовательские справочники.
v1.3.0 от 2020-11-26
[+] Добавлена возможность модификаций.
[+] Добавлено поле order_id в комментарий к заказу.
v1.2.5 от 2020-10-20
[+] Добавлены настройки для не обновляемых заказов.
v1.2.4 от 2020-10-14
[+] Добавлены приоритеты.
v1.2.3 от 2020-10-14
[+] Добавлена поддержка API МойСклад.
v1.2.2 от 2020-10-06
[!] Исправлены баги.
v1.2.1 от 2020-10-01
[!] Исправлены баги.
v1.2.0 от 2020-09-30
[+] Добавлены дополнительные поля.
[+] Добавлен учет налога.
[+] Добавлена учет скидок от промоакций.
[+] Добавлена поддержка юридических лиц.
v1.0.0 от 2020-03-15
[+] Первый выпуск.
[+] — добавлено.
[-] — удалено.
[*] — изменено или улучшено.
[!] — исправлена ошибка.
Обозначения:
[+] Добавлено
[-] Удалено
[*] Изменено
[!] Исправлена ошибка