🔄 Настройка и работа с МойСклад
Интеграция задумана для двух потоков: передавать заказы из магазина в МойСклад и получать остатки из МойСклад в магазин. Сейчас оба потока заблокированы техническими дефектами.
:::danger Интеграция сейчас не работает — это подтверждено живой проверкой
Клиент магазина отправляет МойСклад неверный заголовок Accept. Из-за этого API отклоняет все запросы, включая проверку правильных реквизитов, отправку заказов, отмены и загрузку остатков.
Кроме того, сопоставление построено по полю «Артикул». В проверенной живой базе значение есть примерно у 136 из 733 позиций (~19%), а четыре артикула повторяются. Поле «Код» заполнено у всех 733 позиций и уникально, но текущая версия его не использует.
Третье: клиент не умеет ждать при превышении лимита запросов к API (не обрабатывает ответ 429 и заголовок x-lognex-retry-after), а зашитый в него лимит не соответствует объявленному бюджету МойСклад. На текущем объёме каталога это ещё не проявлялось, но с ростом номенклатуры синхронизация остатков может терять часть позиций без сообщения об ошибке.
До исправления разработчиком:
- не считайте кнопку проверки подтверждением качества реквизитов;
- переносите заказы в МойСклад вручную;
- не полагайтесь на остатки МойСклад на витрине;
- отмены также отмечайте в МойСклад вручную. :::
🧭 Что должно работать после исправления
| Направление | Автоматически | Вручную сотрудником |
|---|---|---|
| Магазин → МойСклад | Создание заказа покупателя с позициями и ценами | Проверка документа, резерв, отгрузка и дальнейшая работа в МойСклад |
| МойСклад → магазин | Доступный остаток по сопоставленным вариантам | Исправление кодов и неоднозначных соответствий |
| Отмена → МойСклад | Допись ОТМЕНЁН в описание уже синхронизированного документа | Проверка и фактическая отмена по правилам учёта |
Далее описан интерфейс и предусмотренный рабочий процесс. Выполняйте настройку только после подтверждения разработчика, что три дефекта выше исправлены.
Шаг 1. Откройте раздел МойСклад
- Войдите в админку:
https://mirkrasok.termitsdigital.ru/app. - В левом меню откройте «МойСклад».
- На странице «Интеграция с МойСклад» посмотрите текущий статус.
🚦 Что означает статус подключения
| Статус | Значение | Действие |
|---|---|---|
| Не настроено | Реквизиты ещё не сохранены | После исправления интеграции заполните форму |
| Интеграция отключена | Реквизиты есть, но обмен выключен | Включайте только после проверки причины отключения |
| Реквизиты сохранены | Настройка активна, явной последней ошибки нет | Всё равно проверьте реальный заказ и остаток |
| Требует внимания | Последний заказ, отмена или обновление остатков завершились ошибкой | Прокрутите страницу интеграции и откройте журнал заказов |
| Статус недоступен | Админка не смогла получить состояние интеграции | Обновите страницу; если повторяется — к разработчику |
:::warning «Реквизиты сохранены» не доказывает полный обмен Статус говорит только о сохранённой настройке и известных ошибках. Он не проверяет, что все товары однозначно сопоставлены и остатки действительно обновились. :::
Шаг 2. Выберите способ входа
В форме доступны две вкладки:
| Вкладка | Поля |
|---|---|
| Токен | «Токен доступа» |
| Логин и пароль | «Логин» и «Пароль» |
- Выберите один способ.
- Заполните все поля выбранного способа.
- Нажмите «Проверить и сохранить».
Если поле пустое, форма показывает «Заполните реквизиты доступа.» Успешные реквизиты сохраняются в зашифрованном виде и повторно целиком не показываются.
:::danger Что происходит с кнопкой сейчас
Из-за неверного Accept МойСклад отклонит даже правильный токен или логин с паролем. Не меняйте рабочие реквизиты многократно и не создавайте новые токены только ради повторов. Перед настройкой получите от разработчика подтверждение, что исправление уже установлено.
:::
Шаг 3. Включите или отключите обмен
После сохранения доступен переключатель «Интеграция активна».
При отключении появляется окно «Отключить интеграцию?» с пояснением «Новые заказы и синхронизация остатков не будут передаваться в МойСклад.» Кнопки — «Отмена» и «Отключить».
Отключение приостанавливает и заказы, и остатки. Используйте его при аварии или работах, но помните: несинхронизированные операции придётся контролировать вручную.
🧾 Как должен передаваться заказ
После оформления заказ ставится в очередь. Интеграция должна:
| Данные | Поведение |
|---|---|
| Покупатель | Найти контрагента по email или создать физическое лицо с именем, email и телефоном |
| Позиции | Найти товар МойСклад по SKU варианта и добавить количество |
| Цена | Передать цену позиции из заказа магазина |
| Описание | Добавить Заказ Medusa … |
Адрес доставки в создаваемый документ этим обработчиком не передаётся. Резерв, отгрузка, платёж и статусы дальнейшего исполнения сотрудник оформляет в МойСклад самостоятельно.
Автоматические попытки
Первая попытка выполняется сразу, затем предусмотрено пять повторов:
| Повтор | Через сколько после предыдущей ошибки |
|---|---|
| 1 | 1 минута |
| 2 | 5 минут |
| 3 | 30 минут |
| 4 | 2 часа |
| 5 | 12 часов |
Фоновая проверка очереди запускается каждую минуту. Всего получается до шести попыток вместе с первой.
Шаг 4. Откройте журнал заказов
В разделе «МойСклад» откройте пункт меню «Синхронизация заказов». Заголовок открывшейся страницы — «Синхронизация заказов с МойСклад». Журнал показывает последние 50 записей.
| Фильтр | Что показывает |
|---|---|
| Ошибки | Неудачные синхронизации; выбран по умолчанию |
| Ожидают | Записи в очереди |
| Выполняются | Текущие попытки |
| Синхронизированы | Записи с полученным ID МойСклад |
| Все | Все последние записи |
В строке видны ссылка на заказ, статус, «Попыток: …» и последняя ошибка для неудачной записи.
:::note Повтора из самого журнала нет Нажмите на ID заказа, откройте его карточку и в виджете «МойСклад» используйте «Повторить вручную». :::
Шаг 5. Разберите ошибку заказа
- Откройте фильтр «Ошибки».
- Перейдите в карточку заказа.
- Прочитайте последнюю ошибку.
- Проверьте SKU каждой позиции и соответствие данным МойСклад.
- До исправления интеграции внесите заказ в МойСклад вручную.
- После подтверждённого исправления нажмите «Повторить вручную».
- Проверьте статус «Синхронизировано» и ссылку «Открыть заказ в МойСклад».
:::warning Ручной повтор не исправляет данные Он лишь снова запускает тот же обмен. Если заголовок API, SKU или сопоставление остались неверными, повтор завершится той же ошибкой. :::
❌ Что уходит при отмене
Если основная синхронизация уже завершилась, отмена заказа магазина должна обновить описание существующего документа на:
Заказ Medusa <ID заказа> — ОТМЕНЁН
Документ не удаляется, отдельный статус отмены МойСклад не устанавливается. Если основная отправка заказа не была успешной, отправлять отметку некуда — её нужно внести вручную.
При выключенном переключателе «Интеграция активна» отметка об отмене не ставится в очередь вовсе.
В карточке заказа статусы отмены называются «Ожидает отправки», «Отправляется», «Отмена отправлена» и «Ошибка отправки отмены».
📦 Как должны обновляться остатки
Задание запускается каждые 15 минут и работает с местом хранения магазина по умолчанию.
Вычитание заказов за 48 часов временно защищает от перепродажи: новый заказ мог ещё не отразиться в остатке МойСклад, но товар уже обещан покупателю.
Учитываются только неотменённые заказы, распознанные как оформленные через эту витрину. Вариант без SKU пропускается. Вариант без связанной складской позиции (обычно это варианты без управляемого складского учёта) тоже пропускается — обновлять там нечего.
Неоднозначные соответствия
Остаток обновляется только при связи один вариант магазина ↔ одна позиция МойСклад. Если SKU отсутствует, найдено несколько вариантов магазина или несколько позиций МойСклад, запись пропускается, чтобы не испортить чужой остаток.
:::danger Пропуски не перечислены в админке Отдельного списка несопоставленных товаров сейчас нет. Такие случаи остаются в техническом журнале сервера, поэтому «задача завершилась» не означает «обновлены все товары». :::
🔑 Артикул и код: текущая ошибка сопоставления
| Поле | Живая база | Текущая версия магазина |
|---|---|---|
| Артикул | Около 136 из 733 позиций (~19%); есть 4 повторяющихся значения | По нему ошибочно ищет товары |
| Код | 733 из 733; значения уникальны | Пока не использует |
| SKU варианта магазина | Совпадает с кодом МойСклад в проверенной базе | Должен стать ключом после исправления |
Не пытайтесь массово копировать коды в артикулы без согласованного плана: это меняет учётные данные. Исправление должно перевести интеграцию на однозначный код и проверить конфликты до включения обмена.
🚫 Что не синхронизируется
| Не передаётся автоматически | Где поддерживать вручную |
|---|---|
| Названия и описания товаров | В админке магазина |
| Цены каталога | В админке магазина |
| Изображения и документы | В админке магазина |
| Категории, коллекции и бренды | В админке магазина |
| Заказы, созданные вручную в МойСклад | Они не появляются обратно в магазине |
| Адрес доставки в создаваемом заказе МойСклад | Скопировать из карточки заказа при необходимости |
| Резервы и документы отгрузки | Оформить в МойСклад |
| Статусы оплаты и доставки МойСклад | Они не возвращаются в заказ магазина |
| Изменения контрагента из МойСклад | Они не обновляют покупателя магазина |
Интеграция остатков односторонняя: МойСклад → магазин. Товарные данные и статусы исполнения обратно не зеркалируются.
✅ Проверка после будущего исправления
- Попросите разработчика подтвердить исправление заголовка
Acceptи переход с артикула на код. - Проверьте реквизиты кнопкой «Проверить и сохранить».
- Включите «Интеграция активна».
- Создайте один безопасный тестовый заказ.
- Убедитесь, что статус стал «Синхронизировано», а ссылка открывает правильный документ.
- Отмените тестовый заказ и проверьте пометку
ОТМЕНЁН. - Сверьте один известный остаток после ближайшего 15-минутного цикла.
- Убедитесь, что в разделе интеграции появился список несопоставленных позиций и что неудачный прогон отмечается как ошибка, а не как успех.
- Проверьте технический журнал на пропущенные и неоднозначные соответствия.
:::danger Не включайте массовый обмен после одной зелёной проверки Нужно подтвердить три независимых сигнала: тестовый заказ, его отмену и контрольный остаток. Только после этого можно считать исправление пригодным для работы. :::
🆘 Если что-то не получилось
При статусе «Требует внимания» прокрутите страницу интеграции: под формой появятся блоки «Интеграция требует внимания» и «Ошибка синхронизации остатков» с текстом и строкой «Последняя попытка: …». Заказы разбирайте в журнале, а текст ошибки остатков передайте разработчику.
| Что видите | Что делать сейчас |
|---|---|
| Правильные реквизиты не проходят проверку | Не перевыпускайте их вслепую; сначала подтвердите установку исправления Accept |
| «Требует внимания» | Прокрутите страницу интеграции, прочитайте блоки под формой; заказы разберите в журнале, текст ошибки остатков передайте разработчику |
| Заказ в статусе ошибки | Создайте документ вручную, затем разберите SKU и техническую ошибку |
| Остаток не изменился через 15 минут | Не обещайте его покупателю; проверьте SKU, управляемый остаток и однозначность сопоставления |
| Отмена не появилась в МойСклад | Отметьте её вручную; автоматическая отметка сейчас использует неисправный API |
| В журнале нет кнопки повтора | Откройте карточку заказа и нажмите «Повторить вручную» в виджете |