Перейти к основному содержимому

🔄 Настройка и работа с МойСклад

Интеграция задумана для двух потоков: передавать заказы из магазина в МойСклад и получать остатки из МойСклад в магазин. Сейчас оба потока заблокированы техническими дефектами.

:::danger Интеграция сейчас не работает — это подтверждено живой проверкой Клиент магазина отправляет МойСклад неверный заголовок Accept. Из-за этого API отклоняет все запросы, включая проверку правильных реквизитов, отправку заказов, отмены и загрузку остатков.

Кроме того, сопоставление построено по полю «Артикул». В проверенной живой базе значение есть примерно у 136 из 733 позиций (~19%), а четыре артикула повторяются. Поле «Код» заполнено у всех 733 позиций и уникально, но текущая версия его не использует.

Третье: клиент не умеет ждать при превышении лимита запросов к API (не обрабатывает ответ 429 и заголовок x-lognex-retry-after), а зашитый в него лимит не соответствует объявленному бюджету МойСклад. На текущем объёме каталога это ещё не проявлялось, но с ростом номенклатуры синхронизация остатков может терять часть позиций без сообщения об ошибке.

До исправления разработчиком:

  • не считайте кнопку проверки подтверждением качества реквизитов;
  • переносите заказы в МойСклад вручную;
  • не полагайтесь на остатки МойСклад на витрине;
  • отмены также отмечайте в МойСклад вручную. :::

🧭 Что должно работать после исправления

НаправлениеАвтоматическиВручную сотрудником
Магазин → МойСкладСоздание заказа покупателя с позициями и ценамиПроверка документа, резерв, отгрузка и дальнейшая работа в МойСклад
МойСклад → магазинДоступный остаток по сопоставленным вариантамИсправление кодов и неоднозначных соответствий
Отмена → МойСкладДопись ОТМЕНЁН в описание уже синхронизированного документаПроверка и фактическая отмена по правилам учёта

Далее описан интерфейс и предусмотренный рабочий процесс. Выполняйте настройку только после подтверждения разработчика, что три дефекта выше исправлены.

Шаг 1. Откройте раздел МойСклад

  1. Войдите в админку: https://mirkrasok.termitsdigital.ru/app.
  2. В левом меню откройте «МойСклад».
  3. На странице «Интеграция с МойСклад» посмотрите текущий статус.

🚦 Что означает статус подключения

СтатусЗначениеДействие
Не настроеноРеквизиты ещё не сохраненыПосле исправления интеграции заполните форму
Интеграция отключенаРеквизиты есть, но обмен выключенВключайте только после проверки причины отключения
Реквизиты сохраненыНастройка активна, явной последней ошибки нетВсё равно проверьте реальный заказ и остаток
Требует вниманияПоследний заказ, отмена или обновление остатков завершились ошибкойПрокрутите страницу интеграции и откройте журнал заказов
Статус недоступенАдминка не смогла получить состояние интеграцииОбновите страницу; если повторяется — к разработчику

:::warning «Реквизиты сохранены» не доказывает полный обмен Статус говорит только о сохранённой настройке и известных ошибках. Он не проверяет, что все товары однозначно сопоставлены и остатки действительно обновились. :::

Шаг 2. Выберите способ входа

В форме доступны две вкладки:

ВкладкаПоля
Токен«Токен доступа»
Логин и пароль«Логин» и «Пароль»
  1. Выберите один способ.
  2. Заполните все поля выбранного способа.
  3. Нажмите «Проверить и сохранить».

Если поле пустое, форма показывает «Заполните реквизиты доступа.» Успешные реквизиты сохраняются в зашифрованном виде и повторно целиком не показываются.

:::danger Что происходит с кнопкой сейчас Из-за неверного Accept МойСклад отклонит даже правильный токен или логин с паролем. Не меняйте рабочие реквизиты многократно и не создавайте новые токены только ради повторов. Перед настройкой получите от разработчика подтверждение, что исправление уже установлено. :::

Шаг 3. Включите или отключите обмен

После сохранения доступен переключатель «Интеграция активна».

При отключении появляется окно «Отключить интеграцию?» с пояснением «Новые заказы и синхронизация остатков не будут передаваться в МойСклад.» Кнопки — «Отмена» и «Отключить».

Отключение приостанавливает и заказы, и остатки. Используйте его при аварии или работах, но помните: несинхронизированные операции придётся контролировать вручную.

🧾 Как должен передаваться заказ

После оформления заказ ставится в очередь. Интеграция должна:

ДанныеПоведение
ПокупательНайти контрагента по email или создать физическое лицо с именем, email и телефоном
ПозицииНайти товар МойСклад по SKU варианта и добавить количество
ЦенаПередать цену позиции из заказа магазина
ОписаниеДобавить Заказ Medusa …

Адрес доставки в создаваемый документ этим обработчиком не передаётся. Резерв, отгрузка, платёж и статусы дальнейшего исполнения сотрудник оформляет в МойСклад самостоятельно.

Автоматические попытки

Первая попытка выполняется сразу, затем предусмотрено пять повторов:

ПовторЧерез сколько после предыдущей ошибки
11 минута
25 минут
330 минут
42 часа
512 часов

Фоновая проверка очереди запускается каждую минуту. Всего получается до шести попыток вместе с первой.

Шаг 4. Откройте журнал заказов

В разделе «МойСклад» откройте пункт меню «Синхронизация заказов». Заголовок открывшейся страницы — «Синхронизация заказов с МойСклад». Журнал показывает последние 50 записей.

ФильтрЧто показывает
ОшибкиНеудачные синхронизации; выбран по умолчанию
ОжидаютЗаписи в очереди
ВыполняютсяТекущие попытки
СинхронизированыЗаписи с полученным ID МойСклад
ВсеВсе последние записи

В строке видны ссылка на заказ, статус, «Попыток: …» и последняя ошибка для неудачной записи.

:::note Повтора из самого журнала нет Нажмите на ID заказа, откройте его карточку и в виджете «МойСклад» используйте «Повторить вручную». :::

Шаг 5. Разберите ошибку заказа

  1. Откройте фильтр «Ошибки».
  2. Перейдите в карточку заказа.
  3. Прочитайте последнюю ошибку.
  4. Проверьте SKU каждой позиции и соответствие данным МойСклад.
  5. До исправления интеграции внесите заказ в МойСклад вручную.
  6. После подтверждённого исправления нажмите «Повторить вручную».
  7. Проверьте статус «Синхронизировано» и ссылку «Открыть заказ в МойСклад».

:::warning Ручной повтор не исправляет данные Он лишь снова запускает тот же обмен. Если заголовок API, SKU или сопоставление остались неверными, повтор завершится той же ошибкой. :::

❌ Что уходит при отмене

Если основная синхронизация уже завершилась, отмена заказа магазина должна обновить описание существующего документа на:

Заказ Medusa <ID заказа> — ОТМЕНЁН

Документ не удаляется, отдельный статус отмены МойСклад не устанавливается. Если основная отправка заказа не была успешной, отправлять отметку некуда — её нужно внести вручную.

При выключенном переключателе «Интеграция активна» отметка об отмене не ставится в очередь вовсе.

В карточке заказа статусы отмены называются «Ожидает отправки», «Отправляется», «Отмена отправлена» и «Ошибка отправки отмены».

📦 Как должны обновляться остатки

Задание запускается каждые 15 минут и работает с местом хранения магазина по умолчанию.

Вычитание заказов за 48 часов временно защищает от перепродажи: новый заказ мог ещё не отразиться в остатке МойСклад, но товар уже обещан покупателю.

Учитываются только неотменённые заказы, распознанные как оформленные через эту витрину. Вариант без SKU пропускается. Вариант без связанной складской позиции (обычно это варианты без управляемого складского учёта) тоже пропускается — обновлять там нечего.

Неоднозначные соответствия

Остаток обновляется только при связи один вариант магазина ↔ одна позиция МойСклад. Если SKU отсутствует, найдено несколько вариантов магазина или несколько позиций МойСклад, запись пропускается, чтобы не испортить чужой остаток.

:::danger Пропуски не перечислены в админке Отдельного списка несопоставленных товаров сейчас нет. Такие случаи остаются в техническом журнале сервера, поэтому «задача завершилась» не означает «обновлены все товары». :::

🔑 Артикул и код: текущая ошибка сопоставления

ПолеЖивая базаТекущая версия магазина
АртикулОколо 136 из 733 позиций (~19%); есть 4 повторяющихся значенияПо нему ошибочно ищет товары
Код733 из 733; значения уникальныПока не использует
SKU варианта магазинаСовпадает с кодом МойСклад в проверенной базеДолжен стать ключом после исправления

Не пытайтесь массово копировать коды в артикулы без согласованного плана: это меняет учётные данные. Исправление должно перевести интеграцию на однозначный код и проверить конфликты до включения обмена.

🚫 Что не синхронизируется

Не передаётся автоматическиГде поддерживать вручную
Названия и описания товаровВ админке магазина
Цены каталогаВ админке магазина
Изображения и документыВ админке магазина
Категории, коллекции и брендыВ админке магазина
Заказы, созданные вручную в МойСкладОни не появляются обратно в магазине
Адрес доставки в создаваемом заказе МойСкладСкопировать из карточки заказа при необходимости
Резервы и документы отгрузкиОформить в МойСклад
Статусы оплаты и доставки МойСкладОни не возвращаются в заказ магазина
Изменения контрагента из МойСкладОни не обновляют покупателя магазина

Интеграция остатков односторонняя: МойСклад → магазин. Товарные данные и статусы исполнения обратно не зеркалируются.

✅ Проверка после будущего исправления

  1. Попросите разработчика подтвердить исправление заголовка Accept и переход с артикула на код.
  2. Проверьте реквизиты кнопкой «Проверить и сохранить».
  3. Включите «Интеграция активна».
  4. Создайте один безопасный тестовый заказ.
  5. Убедитесь, что статус стал «Синхронизировано», а ссылка открывает правильный документ.
  6. Отмените тестовый заказ и проверьте пометку ОТМЕНЁН.
  7. Сверьте один известный остаток после ближайшего 15-минутного цикла.
  8. Убедитесь, что в разделе интеграции появился список несопоставленных позиций и что неудачный прогон отмечается как ошибка, а не как успех.
  9. Проверьте технический журнал на пропущенные и неоднозначные соответствия.

:::danger Не включайте массовый обмен после одной зелёной проверки Нужно подтвердить три независимых сигнала: тестовый заказ, его отмену и контрольный остаток. Только после этого можно считать исправление пригодным для работы. :::

🆘 Если что-то не получилось

При статусе «Требует внимания» прокрутите страницу интеграции: под формой появятся блоки «Интеграция требует внимания» и «Ошибка синхронизации остатков» с текстом и строкой «Последняя попытка: …». Заказы разбирайте в журнале, а текст ошибки остатков передайте разработчику.

Что видитеЧто делать сейчас
Правильные реквизиты не проходят проверкуНе перевыпускайте их вслепую; сначала подтвердите установку исправления Accept
«Требует внимания»Прокрутите страницу интеграции, прочитайте блоки под формой; заказы разберите в журнале, текст ошибки остатков передайте разработчику
Заказ в статусе ошибкиСоздайте документ вручную, затем разберите SKU и техническую ошибку
Остаток не изменился через 15 минутНе обещайте его покупателю; проверьте SKU, управляемый остаток и однозначность сопоставления
Отмена не появилась в МойСкладОтметьте её вручную; автоматическая отметка сейчас использует неисправный API
В журнале нет кнопки повтораОткройте карточку заказа и нажмите «Повторить вручную» в виджете