WP Manifestindependent plugin directory
manifest / ecommerce / woocommerce-moysklad-sync

WooCommerce МойСклад Sync

WooCommerce + MoySklad JSON API sync: orders, counterparties, line items by SKU. Auto-create in MoySklad when WC order is placed.

★ 0stars
v3.2.0latest · 6mo ago

Install

Download source zip No release zip yet

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
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Плагин для синхронизации заказов WooCommerce с МойСклад по JSON API 1.2:

  • создание заказов покупателя в МС из заказов WooCommerce;
  • двусторонняя синхронизация статусов (WP ↔ МС);
  • ручной и автоматический запуск выгрузки;
  • предпросмотр выгрузки в интерфейсе, близком к списку заказов МойСклад.

Основные возможности

  • Экспорт заказов WooCommerce в МойСклад (customerorder).
  • Гибкие триггеры выгрузки:
    • по статусу;
    • сразу после checkout + по статусу;
    • только по cron;
    • статус + cron;
    • только вручную.
  • Ручная отправка:
    • из карточки заказа;
    • из отдельной страницы предпросмотра.
  • Сопоставление товаров по SKU, поддержка fallback-товара (UUID).
  • Опциональная строка доставки в заказе МС (как услуга по UUID).
  • Режимы контрагента:
    • по покупателю (поиск по email/телефону, создание при необходимости);
    • фиксированный контрагент для всех заказов (по UUID, как маркетплейс).
  • Шаблоны:
    • названия заказа в МС;
    • комментария с плейсхолдерами.
  • Сопоставление статусов WP ↔ МС через таблицу пар (с добавлением строк по кнопке +).
  • Вебхук МС → сайт для автоматического обновления статуса WooCommerce.
  • Колонка «МС» в списке заказов WooCommerce (статус синка).
  • Поддержка HPOS.
  • Диагностика API и debug-лог.

Установка

  1. Скачайте ZIP из Releases.
  2. WordPress → Плагины → Добавить новый → Загрузить плагин.
  3. Активируйте плагин.
  4. Перейдите в WooCommerce → МойСклад.
  5. Введите логин/пароль МойСклад и нажмите Проверить подключение.
  6. На вкладке Компания нажмите Загрузить из МойСклад и выберите организацию/склад/статусы.

Быстрый старт (рекомендуемый порядок)

  1. Подключение: логин + пароль + тест связи.
  2. Компания: выбрать организацию и склад.
  3. Выгрузка: выбрать режим запуска и статус WooCommerce для экспорта.
  4. Товары: задать fallback-товар (если нужен), проверить настройку доставки.
  5. Вид в МС: настроить контрагента, название заказа и комментарий.
  6. МС → магазин:
    • заполнить таблицу сопоставления статусов WP ↔ МС;
    • создать вебхук.
  7. Сохранить настройки.
  8. Проверить на одном тестовом заказе через Предпросмотр.

Вкладки настроек

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 плагин:

  1. читает маппинг статусов;
  2. инвертирует его в wc_status => ms_state_id;
  3. нормализует ключи (wc-processing и processing);
  4. отправляет в МС обновление state.

МойСклад → WooCommerce

При событии webhook customerorder UPDATE плагин:

  1. валидирует secret;
  2. находит связанный WC-заказ по ms_id;
  3. получает текущий state заказа в МС;
  4. находит пару ms_state_id => wc_status в маппинге;
  5. обновляет статус заказа WooCommerce и пишет служебную заметку.

Мета-бокс в карточке заказа

В карточке заказа WooCommerce доступен блок «МойСклад»:

  • не выгружен — кнопка отправки;
  • выгружен — ссылка на заказ в МС + пересоздание;
  • ошибка — текст ошибки + повторная отправка.

Колонка «МС» в списке заказов

Значок Значение
✓ Заказ успешно связан с МС
✗ Ошибка синхронизации
— Синхронизация не запускалась

Диагностика

Вкладка Учёт → Диагностика:

  • Связь с МС
  • Загрузить сущности
  • Тестовый заказ в МС

При включенном debug журнал пишется в стандартный лог WordPress (WP_DEBUG_LOG).


Требования

  • WordPress 5.8+
  • WooCommerce 5.0+
  • PHP 7.4+
  • Доступ к API в аккаунте МойСклад

Автор

Al Nemirov

Лицензия

GPLv2 or later

Releases

1 release.

Tag
Published
v3.2.0 latest
Apr 18, 2026 6mo ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.