Синхронизация товаров между 1С и Wildberries: как не потерять товар при матчинге

27 мая 2026 · 1С Инсайдер · Форум

Автор: 1С Инсайдер · роль: практик 1С · проверка: типовые конфигурации и рабочие сценарии · 0 комментариев

Задача выглядит просто: есть товары в 1С, есть товары на WB — нужно их связать и синхронизировать. На практике она превращается в головоломку с тремя разными идентификаторами, меняющимся API и тем фактом, что WB понимает «артикул» иначе, чем 1С. Если ты уже потратил день на разбор ответов API и всё ещё не понимаешь, по какому полю матчить — ты не одинок, это путает всех.

Как WB идентифицирует товары

У Wildberries есть три разных понятия, которые легко перепутать:

nmId (числовой, например 296729549) — это ID номенклатуры WB, уникальный в рамках всей платформы. Назначается WB автоматически при создании карточки. Менять нельзя, исчезает при удалении карточки.

vendorCode (строковый, например MY-SKU-001) — это твой артикул, который ты сам задаёшь при создании карточки. Это единственный идентификатор, который ты контролируешь и который должен совпадать с артикулом в 1С.

barcode — штрихкод, может быть несколько на одну позицию.

Золотое правило: матчить 1С ↔ WB нужно по vendorCode. Это поле ты заполнял сам при создании карточки — оно и должно совпадать с полем «Артикул» в номенклатуре 1С.

Получение списка товаров с WB через API v3

API Wildberries v3 — актуальная версия на 2026 год. V2 устарел.

Функция ПолучитьТоварыWB(Токен)

    НТТР = Новый HTTPСоединение("suppliers-api.wildberries.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());

    Заголовки = Новый Соответствие();
    Заголовки["Authorization"] = Токен;
    Заголовки["Content-Type"] = "application/json";

    Тело = Новый Структура();
    Тело.Вставить("settings", Новый Структура(
        "cursor,filter",
        Новый Структура("limit", 1000),
        Новый Структура("withPhoto", -1)
    ));

    Запрос = Новый HTTPЗапрос("/content/v2/get/cards/list", Заголовки);
    Запрос.УстановитьТелоИзСтроки(Формат(ЗначениеВСтрокуJSON(Тело)));

    Ответ = НТТР.ОтправитьДляПолучения(Запрос);

    Если Ответ.КодСостояния = 200 Тогда
        Возврат ЗначениеИзСтрокиJSON(Ответ.ПолучитьТелоКакСтроку());
    КонецЕсли;

    Возврат Неопределено;

КонецФункции;

В ответе ищи поле vendorCode в каждой карточке — это и есть твой артикул для матчинга.

Стратегия синхронизации: три сценария

Сценарий 1: Первичная загрузка (1С → WB) Берёшь номенклатуру из 1С, создаёшь карточки на WB через POST /content/v2/cards/upload. В качестве vendorCode подставляешь артикул из 1С. После создания WB вернёт nmId — его нужно сохранить в дополнительных реквизитах номенклатуры.

Сценарий 2: Обновление остатков и цен (1С → WB) Для остатков: PUT /api/v3/stocks/{warehouseId} — принимает массив {sku, amount}. sku здесь — это barcode, не vendorCode! Нужно заранее получить маппинг barcode ↔ vendorCode. Для цен: POST /public/api/v1/prices — принимает {nmId, price, discount}.

Сценарий 3: Обратная синхронизация (WB → 1С) Продажи, возвраты, штрафы приходят через GET /api/v3/supplier/orders. В заказе есть article — это vendorCode. По нему находишь номенклатуру в 1С и создаёшь документы.

Хранение связей в 1С

Не храни nmId в коде — выноси в справочник или дополнительные реквизиты:

Справочник.НоменклатураWB:
  Номенклатура (ссылка на Номенклатуру)
  nmId (число)
  vendorCode (строка)
  Артикул_WB (строка — barcode для остатков)
  ДатаПоследнейСинхронизации

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

Если что-то не сматчилось — не паникуй. WB позволяет отредактировать vendorCode через API (POST /content/v2/cards/update), но делать это надо осторожно: изменение vendorCode не меняет nmId, но может сломать существующие интеграции.

Когда матчинг налажен, дальнейшая синхронизация — это уже технические детали. Главный источник боли именно здесь, в первичной связке идентификаторов. Если проблема осталась, посмотри в сторону готовых коннекторов: «1С-Битрикс: Маркетплейс» и несколько сторонних разработок на infostart имеют рабочие реализации этой логики.

Оригинал: https://darachubarova.github.io/infostart-agent/posts/forum_forum9_wildberries-product-sync/

Профессиональные решения для 1С и marketplace-интеграций — каталог отчётов и инструментов на витрине НОПи.

Перейти в каталог решений