Представьте: ваш отдел закупок вручную обновляет 5000 товаров на Wildberries каждую неделю. Ошибки в ценах, дубли карточек, просроченные остатки — это не исключения, а норма. Ручная работа отнимает до 20 часов в неделю, а клиенты жалуются на недоступные позиции. Мы автоматизируем обмен данными между 1С-Битрикс и Wildberries через Wildberries API, исключая человеческий фактор и ускоряя операции в 3 раза.
В отличие от Ozon и Яндекс.Маркета, Wildberries использует несколько независимых сервисов — Content, Marketplace, Prices, Statistics, Analytics. У каждого своя авторизация, лимиты и форматы. Мы закрываем все эти точки входа единым модулем, синхронизирующим карточки, остатки, цены и заказы. Интеграция работает на агентах Битрикс с тегированным кэшированием и очередями, чтобы не превышать лимиты API.
Почему стандартные модули не подходят?
Готовые решения из Маркетплейса часто не учитывают FBS — они работают только с DBS. Многие модули не поддерживают размерную сетку, что приводит к дублям карточек. Мы не используем сторонние библиотеки — пишем код под ваш стек: PHP 8.1+, инфоблоки v2.0, ORM. Это даёт гибкость и контроль над каждым запросом.
Структура API Wildberries
Авторизация — через токены, генерируемые в личном кабинете поставщика: Настройки → Доступ к API. Для каждого сервиса можно создать отдельный токен с ограниченными правами.
| Сервис API | Base URL | Назначение |
|---|---|---|
| Content API | https://content-api.wildberries.ru |
Создание и обновление карточек товаров |
| Marketplace API | https://marketplace-api.wildberries.ru |
Заказы, поставки, остатки FBS |
| Prices API | https://discounts-prices-api.wb.ru |
Управление ценами и скидками |
| Statistics API | https://statistics-api.wildberries.ru |
Продажи, заказы, склады |
| Analytics API | https://seller-analytics-api.wildberries.ru |
Отчёты |
Все запросы — REST, JSON. Авторизация через заголовок Authorization: Bearer <token>.
Как загрузить карточки товаров без дублей?
Создание карточки — POST /content/v2/cards/upload. Структура карточки WB принципиально отличается от инфоблока Битрикс: nmID — верхний уровень, объединяющий варианты товара. Внутри — массив sizes, где каждый размер имеет свой skus[] (список штрихкодов). WB идентифицирует конкретный товар по штрихкоду, а не по артикулу.
Обязательные поля при создании карточки:
-
vendorCode— артикул поставщика. В Битрикс — свойствоARTICLEилиARTNUMBER. -
brand— бренд. Должен совпадать с зарегистрированным в WB. -
title— название. WB генерирует его автоматически из категории + бренд + характеристики. Ручное название может быть отклонено. -
description— до 5000 символов. -
subjectID— ID категории WB. Получается черезGET /content/v2/object/all. -
characteristics— массив характеристик, зависящих от категории. -
sizes[].skus[]— штрихкоды для каждого размера.
Характеристики (characteristics). У каждой категории WB — свой набор обязательных характеристик. Получить список: GET /content/v2/object/charcs?subjectID={id}. Характеристики бывают текстовые и справочные. Для справочных — значение должно точно совпадать с вариантом из справочника WB.
Маппинг на инфоблок Битрикс:
Элемент инфоблока → nmID (после создания WB возвращает nmID)
├── NAME → title (но WB может переопределить)
├── PROPERTY_ARTICLE → vendorCode
├── PROPERTY_BRAND → brand
├── DETAIL_TEXT → description
├── PROPERTY_COLOR → characteristics[{id: N}]
└── DETAIL_PICTURE + PROPERTY_PHOTOS → mediaFiles[]
Торговые предложения → sizes[]
├── PROPERTY_SIZE → techSize
├── PROPERTY_BARCODE → skus[]
└── Цена → (через Prices API отдельно)
Почему возникают дубли карточек?
WB может объединять карточки с одинаковым штрихкодом или артикулом. Если при интеграции штрихкоды некорректны — вместо обновления существующей карточки создаётся новая. Чтобы этого избежать, мы проверяем уникальность vendorCode и skus[] на стороне Битрикс, а также используем GET /content/v2/cards/search для поиска существующих карточек перед созданием. В автоматизируемом решении мы добавили проверку на совпадение артикула: если карточка уже есть, вызывается PATCH /content/v2/cards/update, а не upload.
Управление ценами
Prices API работает отдельно от Content API. Метод POST /api/v2/upload/task устанавливает цену и скидку:
-
price— цена до скидки (розничная). -
discount— процент скидки. Итоговая цена =price * (1 - discount/100).
WB навязывает SPP (скидку постоянного покупателя) поверх вашей скидки. Итоговая цена для покупателя = ваша цена - ваша скидка - SPP. Это значит, что при установке цены из Битрикс нужно учитывать SPP — иначе маржинальность будет ниже ожидаемой.
Синхронизация: cron-агент в Битрикс каждые 15–30 минут проверяет товары с изменённой ценой в b_catalog_price и отправляет пакетный запрос. Лимит — 1000 товаров за запрос.
Остатки и заказы (FBS)
Остатки FBS. Метод PUT /api/v3/stocks/{warehouseId} обновляет остатки на складе поставщика. warehouseId — ID вашего склада в WB (создаётся в ЛК). Каждый товар идентифицируется по штрихкоду (sku), а не по артикулу. Маппинг штрихкод → элемент инфоблока должен быть однозначным.
Заказы FBS. Получение новых заказов: GET /api/v3/orders/new. Каждый заказ содержит skus[] — штрихкоды заказанных товаров. Обработчик на стороне Битрикс:
- По штрихкоду находит элемент инфоблока / торговое предложение.
- Создаёт заказ в
saleс маппингом товаров. - При сборке — вызывает
PUT /api/v3/orders/{orderId}/confirmи формирует стикер для упаковки черезPOST /api/v3/orders/stickers.
Важно: WB не передаёт данные покупателя (имя, адрес, телефон) поставщику. Заказ в Битрикс создаётся с минимальным набором данных — по сути, только список товаров и сумма.
Как избежать rate limiting?
Content API — до 100 запросов в минуту. При массовой загрузке каталога нужна очередь с задержкой. В Битрикс мы реализуем агенты с пошаговой обработкой: каждый агент обрабатывает не более 50 элементов, затем ставит следующий агент через 10 секунд. Это гарантирует, что лимит не превышен, и интеграция стабильна.
Типичные ошибки при интеграции
- Карточка не создаётся. Причина — неправильный
subjectIDили отсутствие обязательной характеристики. API возвращает ошибку с описанием, но иногда описание неинформативно. Проверяйте набор характеристик для категории через/content/v2/object/charcs. - Ошибка 429 Too Many Requests. Возникает при частых запросах. Решение — внедрить очередь с экспоненциальной задержкой и контролировать количество запросов в минуту.
- Несоответствие цен в Битрикс и на WB. Возникает, если не учитывать SPP или автоматические скидки маркетплейса. Мы добавляем лог изменений и сверяем расчётную цену с фактической на WB.
Что входит в работу по интеграции
- Аудит текущего сайта и каталога.
- Настройка API-ключей Wildberries.
- Разработка модуля обмена (карточки, цены, остатки, заказы).
- Настройка агентов синхронизации и очередей.
- Тестирование на боевых данных.
- Обучение сотрудников работе с интеграцией.
- Передача документации и исходного кода.
- Гарантийная поддержка 12 месяцев.
Средний срок выполнения — от 5 дней до 2 недель в зависимости от объёма. Мы выполнили более 50 интеграций с Wildberries для клиентов из СНГ. Каждое изменение API обрабатывается в рамках гарантийной поддержки — вы не рискуете, даже если Wildberries обновит протокол. Интеграция окупается в среднем за 3 месяца за счёт снижения ручного труда.
| Масштаб | Срок |
|---|---|
| До 500 товаров, без размеров | 5–7 дней |
| 500–5000, с размерной сеткой | 1–1.5 недели |
| 5000+, FBS + заказы + аналитика | 1.5–2 недели |
Хотите оценить проект? Свяжитесь с нами — бесплатно проанализируем ваш каталог и подготовим коммерческое предложение. Закажите интеграцию сейчас и получите скидку на первый месяц поддержки.







