Всем, привет!
Продолжаем цикл статей про API различных маркетплейсов, что мы используем в своей PIM системе OpenPIM. Ранее мы описали как создавать карточки товаров на Озон - https://habr.com/ru/articles/872228/, теперь пришла очередь Wildberries.
Как делать запросы на WB API
Для того чтобы иметь возможность делать запросы по API вам необходимо получить токен от Wildberries. Как его получить описано тут - https://dev.wildberries.ru/openapi/api-information#tag/Avtorizaciya
Далее вам надо будет передавать этот токен при каждом запросе в заголовке запроса «Authorization»
Категории товаров Wildberries: Навигация в Каталоге
Категории товаров в Wildberries – это не просто классификация, это фундамент для поиска, фильтрации и, самое главное, отображения вашего товара целевой аудитории. От правильного выбора категории зависит, увидят ли ваш товар потенциальные покупатели. API Wildberries предоставляет возможность получения дерева категорий.
Значение категорий при создании карточек:
Обязательные поля: каждая категория требует определенный набор обязательных полей (характеристик). Выбор категории определяет, какие атрибуты необходимо заполнить.
Фильтры: покупатели используют фильтры для сужения поиска. Правильная категория гарантирует, что ваш товар будет отображаться при релевантных запросах.
Релевантность: неправильно выбранная категория может привести к тому, что товар не будет найден покупателями, даже если он соответствует их запросу.
Создание карточки товара: Пошаговая Инструкция с API
Процесс создания карточки товара на Wildberries начинается с выбора категории, и здесь знание структуры категорий становится критичным.
Wildberries имеет 2 уровня категорий, вы можете получить список категорий первого уровня через вызов API
GET https://content-api.wildberries.ru/content/v2/object/parent/all
В ответ вам придет список категорий в виде JSON:
{
"name": "Техника для кухни",
"id": 1521,
"isVisible": true
}
Второй уровень категорий можно получить через запрос:
GET https://content-api.wildberries.ru/content/v2/object/all
Вы можете передать родительскую категорию как параметр parentID к этому вызову, тогда вам придет список категорий только для этого родителя. Либо вы можете получить все категории второго уровня, но существует ограничение сколько категорий вы можете получить за раз, поэтому вам придется использовать параметр limit (максимальное значение 1000) чтобы задать сколько категорий второго уровня вы получите за один запроса и затем надо будет посылать подобные запросы в цикле чтобы получить все нужные категории. При этом при каждом вызове в цикле вам придется установить параметр offset в то количество категорий начиная с которого вы хотите получать данные.
Разберем на примере гипотетического товара: "Шерстяной носок с оленями".
Выбор категории: Ищем подходящую категорию. Скорее всего, это будет что-то вроде "Носки" в разделе "Белье". Предположим, раздел “Носки” имеет id – 212.
Получение характеристик: Получаем список доступных характеристик для данной категории.
Делаем запрос:
GET https://content-api.wildberries.ru/content/v2/object/charcs/<id_категории>
Где {id категории} - это ID нашей категории (в примере 212).
В ответе мы получим JSON структуру, описывающую атрибуты (характеристики), которые нужно заполнить для товара в этой категории. Каждый атрибут будет иметь свой id, name, type (тип данных) и required (обязательность заполнения).
Например:
{
"charcID": 12,
"subjectName": "Носки",
"subjectID": 212,
"name": "Рисунок",
"required": false,
"unitName": "",
"maxCount": 1,
"popular": true,
"charcType": 1
}
Заполнение характеристик
Заполняем характеристики товара в OpenPIM, ориентируясь на информацию, полученную из API. Например:
Размер: 41-45
Цвет: Красный
Рисунок: Олени
Создание карточки товара
Формируем JSON-запрос для создания карточки товара
POST https://content-api.wildberries.ru/content/v2/cards/upload
Content-Type: application/json
[
{
"subjectID": 212,
"variants": [
{
"vendorCode": "Артикул Продавца",
"title": " Носки ",
"description": "Описание товара",
"brand": "Бренд",
"characteristics": [
{
"id": 12,
"value": [
"41-45"
]
},
{
"id": 25471,
"value": "Олени"
},
{
"id": 14177449,
"value": "Красный"
}
],
"sizes": [
{
"techSize": "41-45",
"wbSize": "RU",
"price": 500,
"skus": [
"88005553535"
]
}
]
}
]
}
]
subjectID - ID категории (помним про 212).
characteristics - характеристики товара.
sizes - размеры товара.
Отправляем сформированный JSON-запрос на API Wildberries.
В случае успеха API вернет статус 200 OK и информацию о результате обработки запроса. В случае ошибки – описание ошибки, которое необходимо проанализировать и исправить данные в OpenPIM.
Характеристики предметов
Характеристики предметов – ключевой элемент карточки товара. Они позволяют описать товар детально и предоставить покупателю всю необходимую информацию. Важно понимать, что набор и типы характеристик зависят от выбранной категории.
Например:
Для категории "Носки" важны характеристики "Размер", "Цвет", "Рисунок".
Для категории "Смартфоны" важны характеристики "Объем памяти", "Диагональ экрана", "Разрешение камеры", "Операционная система".
Обновление карточки товара
Создание карточки товара мы разобрали выше. Обновление карточки товара происходит по аналогичному принципу:
1.Получение информации о существующей карточке
Получаем информацию о карточке товара по её ID.
POST https://content-api.wildberries.ru/content/v2/get/cards/list
Content-Type: application/json
{
"settings": {
"filter": {
"withPhoto": -1,
"textSearch": "Артикул Продавца"
}
}
}
2. Внесение изменений
Вносим изменения в данные карточки товара в полученный JSON
3. Формирование JSON-запроса
Формируем JSON-запрос для обновления карточки товара. Важно: в запросе должны присутствовать все поля карточки, даже если они не изменились.
4. Отправка запроса
Отправляем сформированный JSON-запрос на API Wildberries.
POST https://content-api.wildberries.ru/content/v2/cards/update
Content-Type: application/json
[
{
"nmID": 12345,
"vendorCode": "Артикул Продавца",
"brand": "",
"title": " Носки ",
"description": "Описание товара",
"characteristics": [
{
"id": 12,
"value": [
"41-45"
]
},
{
"id": 14177449,
"value": "Синий - изменили цвет"
}
],
"sizes": [
{
"chrtID": 12345678,
"techSize": "41-45",
"wbSize": " RU ",
"skus": [
"88005553535"
]
}
]
}
]
nmID карточки товара - ID карточки, которую мы обновляем.
Отправляем сформированный JSON-запрос на API Wildberries.
Важно:
При обновлении карточки товара необходимо отправлять все поля, даже если они не изменились.
API Wildberries может возвращать ошибки, если данные не соответствуют требованиям (например, неверный формат данных, обязательные поля не заполнены).
Получение статуса товара на Wildberries
После того как мы создали или изменили карточку товара нам необходимо будет периодически проверять состояние карточки чтобы понять есть ли ошибки в ней или нет и каков ее текущий статус.
Для начала необходимо сделать запрос на ошибки и проверить нет ли карточки товара в этом списке:
GET https://content-api.wildberries.ru/content/v2/cards/error/list
В ответ вам придет список ошибок что есть в ваших карточках в виде:
{
"errors": [
"Неуникальный баркод: товар с баркодом 12345 уже есть у вас: 67890. Пожалуйста, измените баркод, он не должен повторяться."
],
"updateAt": "2025-03-28T13:41:03Z",
"vendorCode": "111222333",
"object": "МФУ",
"objectID": 795
}
Если в этом списке нет ощибок для карточки что вы создавали или изменяли, то вы можете запросить саму карточку:
POST https://content-api.wildberries.ru/content/v2/get/cards/list
Content-Type: application/json
{
"settings": {
"filter": {
"withPhoto": -1,
"textSearch": "Артикул Продавца"
}
}
}
И уже проверить что она существует и получить ее nmID (ID номенклатуры что генерирует маркетплейс для вашего товара).
Заключение
Мы рассмотрели, как можно создать карточку товара на Wildberries через API. Это только один из многих аспектов что вам необходимы для работы с маркетплейсом, более подробное описание методов работы и форматов запросов мы можете найти в официальной документации - https://dev.wildberries.ru/