Подключение МойСклад: цены, остатки и каталог в обе стороны
Интеграция с МойСклад закрывает главный вопрос: «посчитали цены — а дальше?». После каждой переоценки PriceBridge сам передаёт цены и остатки в ваш МойСклад, а заодно умеет синхронизировать поля карточек, забирать остатки вашего склада из МойСклад обратно и — для нового клиента — затянуть весь каталог из МойСклад одной кнопкой. В этой статье настроим всё по шагам.
Шаг 1. Получите API-токен в МойСклад
В личном кабинете МойСклад откройте Настройки → Обмен данными → Токены и создайте новый токен. Это строка-ключ, по которой PriceBridge будет обращаться к вашему аккаунту. Токен даёт доступ к данным — не публикуйте его и не пересылайте в открытых чатах.
Шаг 2. Подключите интеграцию
В PriceBridge откройте Ещё → Настройки → вкладка МойСклад и раскройте карточку Интеграция с МойСклад. Внизу карточки — блок Настройки подключения:

- API токен — вставьте токен из шага 1. После сохранения интерфейс будет показывать только маску (последние символы) — целиком токен никогда не отображается. Чтобы заменить токен, просто введите новый; пустое поле означает «оставить прежний».
- Аккаунт МойСклад — имя вашего аккаунта (субдомен из адреса личного кабинета).
- Склад-источник остатков (source_store_id) и Склад назначения (target_store_id) — UUID складов в МойСклад: с первого система читает ваши остатки, во второй пишет. UUID можно взять из адресной строки, открыв склад в МойСклад. Если работаете с одним складом — укажите его в обоих полях.
- Что считать артикулом карточки из МойСклад — «Артикул, а если он пуст — Код» (по умолчанию), «Код» или «Только артикул». Код в МойСклад есть у каждой карточки, он ставится автоматически; артикул заполняется вручную и бывает пустым. Если ваш учёт живёт на кодах, выберите «Код», чтобы все карточки в PriceBridge были опознаны одинаково. Смена выбора применяется при следующем переносе (шаг 4) и не меняет ничего в самом МойСклад.
- Поставьте галочку Включить синхронизацию с МойСклад — это главный выключатель всей интеграции — и нажмите Сохранить.
Шаг 3. Выберите, какие поля выгружать
В карточке МойСклад — что выгружать галочками отмечается, какие поля карточек PriceBridge будет обновлять в МойСклад: название, цена, остаток, закупочная цена, описание, вес, ТНВЭД, штрихкод. Снимете галочку — поле перестанет приходить в карточки при следующем обновлении.

- Артикул синхронизируется всегда — это ключ привязки. При этом МойСклад идентифицирует товар по внутреннему UUID, поэтому артикул в главном каталоге можно спокойно править: связь не потеряется, новое значение просто уедет в МС как обычное поле.
- Описание. В МойСклад одно поле «Описание» — переключателем Источник описания для МС выберите, что туда выгружать: полное или краткое описание из главного каталога.
- Штрихкод уезжает в МС как EAN-13.
- Ограничения: габариты МойСклад отдельным полем не принимает (в МС есть только объём), а картинка применяется только при первичном создании товара — последующие смены фото в главном каталоге в МС не переносятся.
Шаг 4. Bootstrap: свяжите каталоги между собой
Если каталог в МойСклад уже существует, системе нужно один раз сопоставить товары — для этого есть блок Привязка UUID МойСклад. Bootstrap скачивает каталог из МС и сохраняет UUID товаров по совпадению артикула. Какое поле МойСклад считать артикулом («Артикул», «Код» или «Артикул, а если пуст — Код»), задаётся в настройках выше. После этого синхронизация не зависит от изменений SKU: уже связанные карточки при повторном переносе опознаются по идентификатору, а не по артикулу.

- Если хотите заодно затянуть в PriceBridge товары, которых здесь ещё нет, — отметьте чекбокс «Также импортировать в каталог товары из МС, которых ещё нет в PriceBridge». Карточки создаются сразу с привязкой и обратно в МС не дублируются.
- Нажмите Запустить bootstrap (кнопка доступна при включённой интеграции). Статус обновляется каждые несколько секунд.
- По завершении смотрите метрики: Совпало (привязано по артикулу), Не найдено в МС, Неоднозначно (один артикул — несколько товаров МС, такие пары нужно разобрать руками), Импортировано в главный каталог.
Шаг 5. Быстрые действия и мониторинг
В верхней части карточки интеграции — блок Быстрые действия:
- Передать цены в МС и Передать остатки в МС — поставить в очередь немедленную выгрузку всех цен или остатков. В обычной жизни это не нужно (после переоценки всё уходит само) — кнопки пригодятся после первичной настройки или чтобы форсировать обновление.
- Полный ресинк остатков — полная сверка остатков с нуля; статус показывается рядом («В очереди», «Выполняется…», «✓ Выполнен»).
Выше, в карточке Мониторинг синхронизации, видно фактическое состояние: когда была последняя выгрузка, сколько задач в очереди, есть ли ошибки. Раздел Статус выгрузки цен показывает таблицу ошибок с колонками «Артикул» и «Причина ошибки» — если какой-то товар не доехал, причина будет здесь. А Лог операций синхронизации хранит журнал по типам операций: цены, создание товаров, остатки, ресинк.

Остатки вашего склада из МойСклад
Интеграция работает и в обратную сторону: блок Локальный склад (остатки) загружает остатки из МойСклад в отдельное поле товаров главного каталога («Мой склад»). Так вы видите в каталоге и остатки поставщиков, и собственный склад, а разделы «Закупки» и алерты «На исходе» получают реальные цифры.

Кнопка Синхронизировать локальный склад запускает загрузку; в результате видно, сколько строк пришло из МС, сколько SKU сопоставлено с главным каталогом и сколько — нет. «Не сопоставлено» обычно означает расхождение артикулов — его лечит bootstrap из шага 4.
Страница «Локальный склад»
Текущие остатки вашего склада и историю обновлений показывает отдельная страница Локальный склад — ссылка на неё есть на вкладке МойСклад панели управления. После настройки остатки обновляются сами примерно раз в пять минут: МойСклад каждый раз присылает полный список позиций с остатком, и всё, чего в списке нет, считается закончившимся и получает ноль. В истории видно, когда пришло последнее обновление, сколько позиций в нём было и чем оно закончилось.
Плашка «Снимок пришёл неполным»
Иногда МойСклад присылает список заметно короче обычного: выгрузка оборвалась, или отчёт отдался не целиком. Если бы система поверила такому списку, тысячи карточек за один цикл получили бы нулевой остаток. Поэтому каждое обновление сравнивается с последним полным: когда позиций стало меньше сразу на двести с лишним и больше чем на пять процентов, на странице появляется оранжевая плашка с двумя числами — сколько позиций с остатком пришло сейчас и сколько было в последнем полном списке.
- Остатки тех позиций, что в списке есть, записываются как обычно — они актуальны.
- Карточки, которых в списке нет, не обнуляются: отсутствие позиции в неполном списке не значит, что её нет на складе. Они хранят прежние значения, пока не придёт полный список или пока вы не примете новый остаток.
- В Telegram уходит одно сообщение, а пока ситуация держится — напоминание раз в шесть часов.
Отдельный случай — плашка про свободный остаток. Физический остаток (сколько лежит на полке) пришёл полностью, а отчёт о свободном остатке (за вычетом резервов) — пустой или очень короткий. Тогда физический остаток записывается, а свободный остаётся прежним: витрина, площадки и автосчёт видят старые значения, потому что пустой отчёт о резервах не значит, что всё зарезервировано.
Когда нажимать «Принять новый остаток склада», а когда подождать
Подождать — если вы не отгружали и не списывали тысячи позиций, а в самом МойСклад остатки на месте. Значит, это сбой выгрузки. Делать ничего не нужно: как только придёт полный список, плашка пропадёт сама, обнуление снова заработает, а в Telegram придёт сообщение о восстановлении.
Принять новый остаток — если склад действительно стал меньше: вы перенесли товар на другой склад, провели большое списание или инвентаризацию, сменили склад-источник в настройках подключения. Сначала убедитесь в самом МойСклад, что этих позиций там действительно нет, потом нажмите Принять новый остаток склада. В окне подтверждения написано, сколько карточек получат нулевой остаток при следующем обновлении, — прочитайте это число перед тем, как соглашаться. Для плашки о свободном остатке правило то же: принимайте только если товары в самом деле зарезервированы целиком.
Остатки перестали обновляться
Если обновлений не было дольше двадцати минут, в Telegram придёт сообщение о том, с какого времени остатки вашего склада не обновляются и в чём была последняя ошибка. Оно приходит один раз, не каждые пять минут; когда обновления возобновятся, придёт сообщение о восстановлении. Причина обычно в стороне МойСклад — проверьте, что токен действует, склад-источник указан верно и интеграция включена. Ошибка каждого неудачного обновления видна в истории на странице Локальный склад.
Сверка остатков: что разошлось между складом, каталогом и заказами
Остаток живёт сразу в трёх местах: на складе в МойСклад, в карточке главного каталога и в резервах заказов. Пока они сходятся, всё в порядке; когда расходятся, об этом раньше узнавали от покупателя. Страница Сверка остатков — постоянный сторож этих расхождений: каждые пятнадцать минут она сравнивает три стороны и показывает, где они разъехались. Ссылка на неё есть на вкладке МойСклад панели управления и на странице Локальный склад.
Что означает каждый вид расхождения и что делать
- Склад обнулён (требует внимания сегодня). За один цикл обновления складской остаток пропал сразу у сотни карточек и больше. Столько товаров разом не заканчивается — чаще всего склад ответил коротким списком или остаток стёр кто-то ещё. Что делать: открыть последнее обновление остатков на странице Локальный склад и сверить его с тем, что лежит на складе. Пока причина не ясна, новый остаток принимать не нужно.
- Одна штука обещана дважды (требует внимания сегодня). Заказы держат в резерве больше, чем физически лежит на полке: один и тот же товар обещан нескольким покупателям. В тексте расхождения перечислены заказы с номерами и состояниями — идите сразу к ним. Заказ, под который товар уже заказан у поставщика и ещё не пришёл, в счёт не идёт: его штуки едут от поставщика, даже если МойСклад поставил ему резерв. Такие заказы названы в тексте отдельно — у кого заказано и когда ждём. Поставка пришла — заказ снова в счёте. Если резерв заказа под закупкой полка покрывает, он тоже в счёте: в закупках, на вкладке История закупок → Ждём от поставщиков, такой заказ тоже не числится ожидающим. Что делать: решить, кому товар уходит, а кому его нужно дозаказать.
- Застой (требует внимания сегодня). Склад больше суток не показывает товар, а в каталоге его остаток всё ещё числится, или снимок со склада перестал приходить вовсе. Витрина показывает вчерашний день, и сверять уже нечего. Что делать: проверить, доходит ли снимок остатков: время последнего обновления видно на самой странице сверки, ошибка — в истории на странице Локальный склад.
- Товар на полке, в каталоге ноль (разобрать на неделе). Склад держит товар, а карточки с таким артикулом в каталоге нет: такой товар не попадёт ни на витрину, ни в заказ. Сюда же попадает обратное — на одну карточку склада смотрят сразу две карточки каталога, и остаток достаётся только одной из них. Что делать: завести карточку с этим артикулом или исправить артикул на складе, если он записан с опечаткой; для двойной карточки — оставить одну, лишнюю отвязать от склада.
- Резерв без основания (разобрать на неделе). Резерв, который нечем объяснить, — три разных случая, и уведомление называет, сколько каких: заказ держит товар, которого на полке нет вовсе; резерв остался за заказом, который уже завершён или отменён; склад держит товар под заказ, а такого заказа нет. Резерв комплекта лежит на его составных частях, и сверка это учитывает. Резервом сверка считает только то, что ещё не отгружено: МойСклад оставляет число резерва на позиции и после отгрузки, но полку такой резерв уже не держит. Что делать: открыть заказ из подробностей. Товара нет — заказать его или снять резерв; заказ закрыт — снять резерв в МойСклад; заказа нет — найти документ, который держит резерв, или снять его.
У каждого расхождения показаны числа всех сторон: сколько лежит на складе, сколько склад считает свободным, сколько обещано заказами и что записано в главном каталоге. Рядом — сколько времени расхождение держится: то, что висит третьи сутки, важнее найденного минуту назад. Поиск по артикулу или названию ищет по всем расхождениям сразу.
Кнопки «Сверить сейчас» и «Принять»
Сверить сейчас проводит сверку немедленно — это полезно сразу после того, как вы что-то поправили в МойСклад и хотите убедиться, что расхождение ушло. Кнопка доступна сотрудникам с правом менять данные; учётной записи только для чтения видна сама страница, но не кнопка. Подряд сверку запускать незачем: снимок со склада приходит раз в пять минут.
Принять — это «знаю, так и задумано». Принятое расхождение остаётся видимым с пометкой, но перестаёт считаться и не поднимает тревогу в Telegram тридцать дней, а потом возвращается само: молчание не бывает вечным, иначе принятое однажды расхождение навсегда выпало бы из виду. Передумали раньше — кнопка Вернуть в счёт возвращает его сразу.
Когда сверка напишет в Telegram
Сообщения приходят об изменениях, а не о состоянии. То, что требует внимания сегодня, поднимает тревогу при первом появлении и потом не чаще раза в сутки, пока держится. То, что можно разобрать на неделе, — только при заметном росте к вчерашнему дню. Когда расхождения уходят в ноль, придёт сообщение о возвращении к норме. Отдельно сверка сообщит, если сама не отработала сутки: тихая страница без такого сообщения была бы неотличима от «всё в порядке».
Кому достаются задачи, которые мы ставим в МойСкладе
PriceBridge сам заводит задачи в вашем МойСкладе, когда заказу нужно внимание человека: заказ висит без счёта, надо проверить наличие и выставить счёт, уточнить цену, а с недавних пор — проверить заказ, где цена опустилась ниже закупки. Задача всегда вешается на ответственного за заказ.
Поэтому в карточке Интеграция с МойСклад наверху стоит блок с маршрутом задач: сколько заказов пришли с ответственным, кто сейчас дежурный и что будет, если его снять. Дежурный выбирается там же, из списка сотрудников вашего МойСклада. Оставите Дежурный не назначен — задачи по заказам без ответственного создаваться не будут, и блок об этом прямо предупредит красным.
Дополнительные цены → типы цен МойСклад
Если вы ведёте в PriceBridge дополнительные цены (вкладка Доп. цены в Настройках — например, оптовую или B2B-цену), блок Доп. цены → типы цен МойСклад позволяет выгружать каждую из них в свой тип цены МС — отдельной ценой рядом с основной. Вариант «Не выгружать» оставляет цену только для фидов.
Если вы пришли из приложения МойСклад
PriceBridge доступен и как приложение внутри МойСклад. В этом случае связка настраивается ещё проще: приложение даёт одноразовую ссылку подтверждения — открыв её, вы увидите вопрос «Связать аккаунт МойСклад … с вашим аккаунтом PriceBridge …?» и кнопку Подтвердить связку. Токен вводить не нужно — доступ выдаётся самим приложением.
Частые вопросы
Кнопки «Передать цены/остатки» серые
Не включён главный выключатель — галочка Включить синхронизацию с МойСклад в настройках подключения (шаг 2).
Цены посчитались, но в МойСклад не появились
- Подождите пару минут: выгрузка идёт через очередь.
- Откройте Мониторинг синхронизации: если статус «Есть ошибки» — смотрите таблицу в «Статус выгрузки цен», там причина по каждому артикулу.
- Проверьте, что товар привязан к МС (был в bootstrap или создан через синхронизацию).
Я сменил артикул товара в главном каталоге — связь не сломается?
Нет. МойСклад идентифицирует товары по UUID, артикул — обычное синхронизируемое поле. Именно поэтому стоит один раз выполнить bootstrap: после него SKU можно менять свободно.
Поменялся токен (отозвали/пересоздали)
Введите новый токен в поле API токен и сохраните. Старое значение целиком не показывается — это нормально, ориентируйтесь на маску.
Фото товара обновил, а в МойСклад старое
Так задумано: картинка передаётся только при первичном создании товара в МС. Обновлять фото существующих товаров нужно в самом МойСклад.