Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/al-nemirov/woocommerce-moysklad-sync/archive/refs/heads/main.zipПлагин для синхронизации заказов WooCommerce с МойСклад по JSON API 1.2:
- создание заказов покупателя в МС из заказов WooCommerce;
- двусторонняя синхронизация статусов (WP ↔ МС);
- ручной и автоматический запуск выгрузки;
- предпросмотр выгрузки в интерфейсе, близком к списку заказов МойСклад.
Основные возможности
- Экспорт заказов WooCommerce в МойСклад (customerorder).
- Гибкие триггеры выгрузки:
- по статусу;
- сразу после checkout + по статусу;
- только по cron;
- статус + cron;
- только вручную.
- Ручная отправка:
- из карточки заказа;
- из отдельной страницы предпросмотра.
- Сопоставление товаров по SKU, поддержка fallback-товара (UUID).
- Опциональная строка доставки в заказе МС (как услуга по UUID).
- Режимы контрагента:
- по покупателю (поиск по email/телефону, создание при необходимости);
- фиксированный контрагент для всех заказов (по UUID, как маркетплейс).
- Шаблоны:
- названия заказа в МС;
- комментария с плейсхолдерами.
- Сопоставление статусов WP ↔ МС через таблицу пар (с добавлением строк по кнопке
+). - Вебхук МС → сайт для автоматического обновления статуса WooCommerce.
- Колонка «МС» в списке заказов WooCommerce (статус синка).
- Поддержка HPOS.
- Диагностика API и debug-лог.
Установка
- Скачайте ZIP из Releases.
- WordPress →
Плагины→Добавить новый→Загрузить плагин. - Активируйте плагин.
- Перейдите в
WooCommerce → МойСклад. - Введите логин/пароль МойСклад и нажмите
Проверить подключение. - На вкладке
КомпаниянажмитеЗагрузить из МойСклади выберите организацию/склад/статусы.
Быстрый старт (рекомендуемый порядок)
- Подключение: логин + пароль + тест связи.
- Компания: выбрать организацию и склад.
- Выгрузка: выбрать режим запуска и статус WooCommerce для экспорта.
- Товары: задать fallback-товар (если нужен), проверить настройку доставки.
- Вид в МС: настроить контрагента, название заказа и комментарий.
- МС → магазин:
- заполнить таблицу сопоставления статусов WP ↔ МС;
- создать вебхук.
- Сохранить настройки.
- Проверить на одном тестовом заказе через
Предпросмотр.
Вкладки настроек
1) Подключение
| Поле | Назначение |
|---|---|
| Включить синхронизацию | Глобальный переключатель отправки заказов |
| Логин | Обычно email аккаунта МойСклад |
| Пароль | Пароль аккаунта МойСклад |
| Проверить подключение | AJAX-тест доступа к API |
Если поле пароля оставить пустым при сохранении, текущий пароль не перезаписывается.
2) Компания
| Поле | Назначение |
|---|---|
| Организация | Организация МС в документе заказа |
| Склад | Склад МС (обязательно для резерва) |
| Загрузить из МойСклад | Подтягивает организации, склады, статусы |
3) Выгрузка
| Поле | Назначение |
|---|---|
| Как запускать выгрузку | Режим старта синхронизации |
| Статус WooCommerce для автовыгрузки | Фильтр для режимов со статусом и cron |
| С каким статусом создать заказ в МС | Начальный status customerorder |
| Интервал cron | Для режимов cron и status_and_cron |
4) Товары
| Поле | Назначение |
|---|---|
| Товар-заглушка (UUID) | Используется, если SKU не найден в МС |
| Добавлять доставку как услугу | Добавляет строку доставки в заказ МС |
| UUID услуги доставки | Обязателен при включенной опции доставки |
5) Вид в МС
| Поле | Назначение |
|---|---|
| Контрагент в заказе | По покупателю или фиксированный UUID |
| UUID контрагента | Для режима фиксированного контрагента |
| Название заказа в МС | Шаблон поля name |
| Имя нового контрагента | Формат ФИО при создании |
| Комментарий к заказу | Многострочный шаблон |
6) МС → магазин
Сопоставление статусов WP ↔ МС
Таблица построена как список пар:
Статус WooCommerce(слева);Статус МойСклад(справа);- кнопка
+ Добавить сопоставление; ×для удаления строки.
Пары сохраняются в маппинг вида ms_state_id => wc_status и используются:
- в вебхуке МС → WP (когда статус изменили в МС);
- в обработчике WP → МС (когда статус изменили в WooCommerce, если заказ уже создан в МС).
Вебхук
Кнопка Создать вебхук в МойСклад:
- создает secret;
- регистрирует webhook
customerorder/UPDATEв МС; - включает обратную синхронизацию статусов.
Endpoint: /wp-json/moysklad/v1/webhook
Без корректного secret запрос отклоняется (403).
7) Учёт
| Поле | Назначение |
|---|---|
| Подпись в примечаниях | Префикс в заметках к заказу WC |
| Резерв на складе | Резервирует количество по строкам |
| Проведённый заказ без резерва | Делает документ applicable без резерва |
| Отладка | Пишет обращения к API в лог |
Предпросмотр выгрузки
Раздел WooCommerce → Предпросмотр показывает:
- строку заказа в стиле списка МС;
- расчетные поля выгрузки (организация, контрагент, сумма, статус, комментарий);
- позиции заказа;
- предупреждения о недонастроенных параметрах;
- кнопку тестовой отправки.
Особенности:
- в комментарии по умолчанию используется домен сайта (
{site_host}), а не словоWooCommerce; - колонка
Отгруженов предпросмотре отображается какне указанодо фактических операций в МС; Зарезервированопоказывается как ожидаемая сумма только при включенном резерве, иначене указано.
Шаблоны и плейсхолдеры
Поддерживаются плейсхолдеры:
Заказ:
{site_host}— домен сайта{order_number}— номер заказа WC{order_id}— ID заказа WC (число){order_date}— дата заказа (d.m.Y){order_time}— время заказа (H:i){order_total}— общая сумма + валюта{order_subtotal}— сумма товаров (без доставки){order_discount}— скидка{order_shipping_total}— стоимость доставки{order_tax_total}— сумма налогов{order_currency}— валюта заказа (код){items_count}— количество позиций
Покупатель:
{first_name},{last_name},{company}{email},{email_local},{phone}{customer_id}— ID пользователя WP
Billing-адрес:
{billing_address}— полный адрес оплаты{billing_city},{billing_state},{billing_postcode},{billing_country}
Shipping-адрес:
{shipping_address}— полный адрес доставки{shipping_address_1},{shipping_city},{shipping_state},{shipping_postcode},{shipping_country}
Доставка и оплата:
{shipping_method},{payment_method},{payment_method_title}
Прочее:
{customer_note},{line_items}
В разделе Предпросмотр доступен интерактивный справочник переменных с живыми значениями из конкретного заказа.
Логика синхронизации статусов
WooCommerce → МойСклад
Если заказ уже связан с МС (ms_id сохранен в meta), то при смене статуса в WooCommerce плагин:
- читает маппинг статусов;
- инвертирует его в
wc_status => ms_state_id; - нормализует ключи (
wc-processingиprocessing); - отправляет в МС обновление
state.
МойСклад → WooCommerce
При событии webhook customerorder UPDATE плагин:
- валидирует secret;
- находит связанный WC-заказ по
ms_id; - получает текущий
stateзаказа в МС; - находит пару
ms_state_id => wc_statusв маппинге; - обновляет статус заказа WooCommerce и пишет служебную заметку.
Мета-бокс в карточке заказа
В карточке заказа WooCommerce доступен блок «МойСклад»:
- не выгружен — кнопка отправки;
- выгружен — ссылка на заказ в МС + пересоздание;
- ошибка — текст ошибки + повторная отправка.
Колонка «МС» в списке заказов
| Значок | Значение |
|---|---|
✓ |
Заказ успешно связан с МС |
✗ |
Ошибка синхронизации |
— |
Синхронизация не запускалась |
Диагностика
Вкладка Учёт → Диагностика:
Связь с МСЗагрузить сущностиТестовый заказ в МС
При включенном debug журнал пишется в стандартный лог WordPress (WP_DEBUG_LOG).
Требования
- WordPress 5.8+
- WooCommerce 5.0+
- PHP 7.4+
- Доступ к API в аккаунте МойСклад
Автор
Лицензия
GPLv2 or later
Releases
1 release.
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.