Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

02.03.21

Интеграция - Маркетплейсы

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

Добрый день, хочу описать опыт интеграции с API WB (Wildberries)  в части создания карточки товаров (спецификации). 

Сама задача состояла в том, чтобы была возможность работать со своего склада,  управлять остатками через API , а не через личный кабинет, и использовать все возможности API для автоматизации процесса.  

Здесь уже есть статьи по интеграции с WB, а именно получение токенов для интеграции, поэтому получение токенов опишу вкратце.

Для интеграции используется три API

1. Для работы с карточками.

2. Для управления остатками на своем складе и получения заказов на сборку

3. Сервис статистики: загрузка заказов, продаж, поставок, отчета по продажам

Для каждого из вариантов используется свои ключ/токен.

Для работы с карточками необходимо получить основной токен, с помощью которого получаем Cookie, который используем в запросах. Для получения основного токена необходимо выполнить шаги, которые указаны по ссылке https://suppliers.wildberries.ru/remote-wh-site/api-content.html. Для регистрации нужно использовать основной номер, на который была регистрация. Отмечу, что обновление Cookie понадобится в том случае, если вы долгое время не делали запросов.

Для управления остатками на своем складе токен для работы получаем на странице https://suppliers.wildberries.ru/marketplace-pass/warehouses при первом запросе доступа к API. Если токены (их два: основной и тестовый) не сохранились, то для получения необходимо создать заявку на Service Desk.  Тестовый url и тестовый токен у меня были не доступны, поэтому для тестирования использовала рабочие. Здесь отмечу, что метод обновления стоков и цен обновляет только стоки, цены на момент написания статьи пока не меняет.

Для работы с сервисом статистики необходимо создать заявку на Service Desk. Есть отдельная категория для этого: Заявка на API content. В моем случае пришлось ждать около недели для получения ответа на заявку. Само описание сервиса статистики нашла в разделе Обучение в личном кабинете.

 

 

Далее подробно опишу свой опыт интеграции с API по работе с карточками.  

Получение списка карточек

Получение списка карточек не вызвало трудностей. Описание работы с API можно прочитать здесь https://suppliers.wildberries.ru/remote-wh-site/api-content.htm. Обращаю  внимание на параметр offset, это не следующая страница, а количество записей, которое надо пропустить, это написано в описании, но сначала не обратила на это внимания.

Запрос отправляла без отборов, вида:

 

 

SupplierID получаем на странице

 

 

В заголовке запроса указываем куки:

 

 

Куки указываем во всех последующих запросах по работе с карточками товаров.

Получаем в результате JSON вида:

 

 

Создание карточки товара

Здесь оказалось не все так просто. Для формирования структуры запроса для отправки на создание карточки необходимо выполнить кучу дополнительных запросов.

Структура карточки, если описать словами:

Верхняя структура – карточка и ее свойства, подструктура – номенклатура карточки (массив) и свойства номенклатуры, подструктура номенклатуры – вариации(массив) и его свойства. И свойство может иметь массив параметров.

Часть свойств обязательна и, причем, некоторые свойства заполняются из определенного списка (предопределенного), часть числового формата с указанием свойства units, часть строкового типа.

Пример JSON для отправки запроса на создание карточки (addIn – это свойства, постаралась показать что имела ввиду под свойствами карточки, свойства номенклатуры и свойства вариации).

 

 

Для создания карточки понадобится:

  1. Предварительная загрузка фотографии с сохранением ID файла
  2. Получение категории карточки, здесь не получится вариант указать свой, нужно выбрать из предопределенного набора.
  3. Получение свойств по категории, получение свойств по номенклатуре, получение свойств по вариации, которые необходимо заполнить.  
  4. Получение предопределенных значений по свойствам (не по всем).

Загрузка файла

Для загрузки файла в описании API написано, что можно использовать два метода:

Create. https://content-suppliers.wildberries.ru/card/create
Update. https://content-suppliers.wildberries.ru/card/update

Описание https://content-suppliers.wildberries.ru/card/update не нашла, использовала ту же структуру, что и для метода create, но в итоге не обновляет, а работает также как метод create, поэтому использовала только метод https://content-suppliers.wildberries.ru/card/create.

Для начала нужно файл/фото загрузить на сайт. Фотография должна быть вертикальная, размер не менее 900x1200, расширение или jpg или png.

В API описание загрузки следующее:

 

 

В 1С у меня формирование файла для отправки выглядит следующим образом

Вырезки  кода по формированию файла для отправки:

 

 

Самое главное, это IDFile, который у меня равен  Строка(Новый УникальныйИдентификатор) ( можно и по-своему, главное сохранить формат "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"), его нужно сохранить, так как он используется при создании карточки.

В тэге  photos  указываем сохраненные ID файлов.

Получение категории товара

В структуре JSON на верхнем уровне обязательны к заполнению тэги object, countryProduction, supplierVendorCode.

Про  supplierVendorCode, в поддержке пишут, в дальнейшем будет упразднен, сейчас заполняю его равным  VendorCode в структуре «nomenclatures»,

countryProduction – это значение из справочника countries (dictionary = countries, ниже описано как получить значения из этого справочника, это пункт «Получение значений по свойствам»),

object – категория товара, выбирается из определенного набора значений, который получаем следующим образом:

Отправляем запрос get https://content-suppliers.wildberries.ru/ns/characteristics-configurator-api/content-configurator/api/v1/config/get/object/list?pattern=игр&lang=ru,  где в url  запроса pattern – подстрока по категории. Указание обязательно, если не указать, то не получится получить весь список категорий, получаем пустой массив.

 В ответ получаем JSON следующего вида:

 

 

Получение свойств по категории

Затем необходимо найти , какие свойства указать для выбранной категории, для этого отправляем запрос на адрес GET https://content-suppliers.wildberries.ru/ns/characteristics-configurator-api/content-configurator/api/v1/config/get/object/translated?name=Кроссовки&lang=ru  , где name в запросе  – это Наименование категории, что параметр регистрозависимый.

Получаем JSON вида

 

 

В итоге получаем набор свойств, который необходимо заполнить для выбранной категории, набор свойств номенклатуры и набор свойств для вариации номенклатуры.

Необходимо обратить внимание на следующие тэги:

type – это само свойство,

required – обязательность заполнения,

dictionary – тег указывает на то, что значения необходимо брать из указанного справочника,

isNumber – указывает, что это число,  и указывать надо число и заполнять тэг count, в противном случае value в структуре карточки товара (пример JSON вначале),

units – это единица измерения, если тэг указан, то при создании карточки необходимо указать этот тэг свойства и указать значение,

maxCount – это максимально возможное указанное значения count.

Здесь обязательными к заполнению являются помимо прочего свойства вариации:

type: «Розничная цена», units: «рублей», count: «ЗначениеЧисло»;

type: «Размер», value: «0».

Получение значений по свойствам

И наконец, для получения значений по свойствам, по которым указан тэг dictionary, отправляем запрос GET https://content-suppliers.wildberries.ru/ns/characteristics-configurator-api/content-configurator/api/v1/directory/brands?pattern=nike&lang=ru&top=50.

В этом примере brands – это значение dictionary, pattern – это подстрока значения, top – количество элементов.

В ответ получаем JSON вида

 

 

Значения – это тэг translate.

Если все обязательные свойства указаны, структура сформирована верно, то в ответ получаем код состояния 200 и примерно такой JSON

 

 

Если все верно, то на сайте в Спецификации New появляется карточка со статусом Создан.

Если статус «На проверке», то, скорее всего, состояние перейдет в состояние «Ошибки» (по крайней мере в моем случае так и было).

Остались нерешенные проблемы с загрузкой файла, указывала как описано в API, и в свойствах номенклатуры как тип «Фото», пробовала разные варианты, но или карточка совсем перестает открываться и без поддержки ее не открыть, или отображение в виде двоичного кода. Запросы в поддержку пока не дали результата.  Если у кого есть ответ на этот вопрос, то буду признательна.

Надеюсь, что сумела донести мысль, задавайте, пожалуйста, вопросы, если таковые возникли.

Дополнение от 11.02.2021

Появилось обязательное заполнение поля Код ТНВЭД. Чтобы получить значения нужно указать запрос get вида https://content-suppliers.wildberries.ru/ns/characteristics-configurator-api/content-configurator/api/v1/directory/tnved?subject=Термосы. Если вашего значения кода нет, то нужно создать инцидент на Service Desk. 

 

Дополнение от 02.03.2021 

Победила загрузку файла, оказалось, что файл не кодированный. 

Кусок кода для загрузки фото на сайт, надеюсь кому поможет , спасибо статье 

http://infostart.questa.ru/public/20017/

   Boundary = "boundaryImage";
    
    ИмяФайлаОтправки = КаталогВременныхФайлов() + "post.txt";
    
    МассивФайловДляОбъединения = Новый Массив; 
    
    //Формируем начальный фрагмент файла POST-запроса 
    ИмяФайлаОтправкиНачало = ПолучитьИмяВременногоФайла("txt"); 
    
    ФайлОтправкиНачало = Новый ЗаписьТекста(ИмяФайлаОтправкиНачало, КодировкаТекста.ANSI, Символы.ПС, Ложь); 
    //Определяем раздел двоичных данных 
    ФайлОтправкиНачало.ЗаписатьСтроку("--" + Boundary);
    ФайлОтправкиНачало.ЗаписатьСтроку("Content-Disposition: form-data; name=""uploadfile""; filename=""photo.jpg""");
    ФайлОтправкиНачало.ЗаписатьСтроку("");
    ФайлОтправкиНачало.Закрыть();
    
    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиНачало); 

    //Копируем файл для загрузки во временный и добавляем в массив файлов для объединения 
    ИмяФайлаДляЗагрузкиВременный = ПолучитьИмяВременногоФайла("jpg");
    
    КопироватьФайл(ПутьКНашемуФайлу, ИмяФайлаДляЗагрузкиВременный); 
    МассивФайловДляОбъединения.Добавить(ИмяФайлаДляЗагрузкиВременный);
    
    ИмяФайлаОтправкиКонец = ПолучитьИмяВременногоФайла("txt"); 
    
    ФайлОтправкиКонец = Новый ЗаписьТекста(ИмяФайлаОтправкиКонец, КодировкаТекста.ANSI,         Символы.ПС, Ложь); 

    //Завершение раздела двоичных данных 
    ФайлОтправкиКонец.ЗаписатьСтроку(символы.ПС + "--" + Boundary + "--");
    
    ФайлОтправкиКонец.Закрыть(); 

    МассивФайловДляОбъединения.Добавить(ИмяФайлаОтправкиКонец); 

    //Теперь сформированные фрагменты сообщения для сервера объединяем в один файл POST-запроса 
    ОбъединитьФайлы(МассивФайловДляОбъединения, ИмяФайлаОтправки);     
 
    ОтветАПИ = di_HTTPService.ПолучитьСоединениеHTTP_POST_File(Справочники.di_Методы.ЗагрузитьФайл,Объект.supplierID,Объект.IDFile,ИмяФайлаОтправки);
    
    Если ОтветАПИ <> неопределено Тогда
    
        СтрокаJSON = Строка(ОтветАпи.КодСостояния)  + " " + ОтветАпи.ПолучитьТелоКакСтроку(); 
    
    КонецЕсли;

  И добавлять надо в свойства номенклатуры, в итоге вот так должно выглядеть ( это кусок только) 

      "addin": [
           {
            "type": "Фото",
            "params": [
             {
              "value": "e3ee6410-a09b-4dfe-a84b-ce8946abc521",
              "units": "images/jpeg"
             }
            ]
           }

Интеграция с WB маркетплейс создание карточки API токены загрузка файлов

См. также

SALE! 20%

Маркетплейсы Программист Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Расширения позволяют взаимодействовать с личными кабинетами маркетплейсов WILDBERRIES, ОЗОН, ЯНДЕКС.МАРКЕТ и СБЕРМЕГАМАРКЕТ по схеме: FBS. Основным приоритетом в данной разработке является простота запуска и использования, а также увеличение скорости сборки и обклейки стикерами заказов при больших объемах отгрузок.

58800 52920 руб.

22.03.2021    214542    1454    1791    

666

Маркетплейсы Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Расширение интеграции с маркетплейсами позволяет управлять своими аккаунтами ведущих маркетплейсов по принципу одного окна из своей базы 1С для УНФ, УТ, КА, ERP. Единый интерфейс работы для всех площадок. Отправка остатков по сопоставленным товарам по расписанию, гибкая настройка отправки.

49800 руб.

23.01.2023    39666    485    196    

157

Маркетплейсы Программист Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Готовая интеграция и синхронизация с Озон ,Вайлдберриз и ЯндексМаркет для обычных форм. Конфигурация встраивается в типовую УТ10.3, КА 1.x, УПП 1.3 или самописные конфигурации. Программа осуществляет выгрузку карточек товаров в ОЗОН/Wildberries, загрузку и синхронизацию ранее загруженных в ОЗОН/Wildberries/ЯндексМаркет карточек с номенклатурой в 1С, гибкую настройку синхронизации по номенклатуре, характеристикам, сериям и единицам измерения, а также загрузку отправлений ОЗОН/ Сборочных заданий Wildberries/Заказов ЯндексМаркет и создание на их основании документов в 1С и управление статусами отправлений ОЗОН/ Сборочных заданий Wildberries/Заказов ЯндексМаркете. Два варианта документооборота: Заказ покупателя - Реализация и Внутренний заказ - Перемещение - Реализация. Минимальная платформа 8.3.10

21100 руб.

12.05.2021    95692    660    273    

296

SALE! 20%

Маркетплейсы Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Ювелирная промышленность и торговля Фармацевтика, аптеки Легкая промышленность, мода и одежда Пищевая промышленность Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)

Расширение позволяет работать из 1С с площадкой Wildberries (Авторизированный сервис Wildberries), Яндекс Маркет (без публикации базы), СберМегамаркет по Схеме FBS и FBO. В FBO реализован механизм сборки коробов по штрих кодам в Wildberries. Отличительная особенность легкая настройка и информативный управленческий учет! Всего через 15 минут вы сможете полностью автоматизировать свои продажи на WB, ЯМ, Мегамаркет и узнать какую итоговую выручку вы получаете за вычетом всех комиссий ВБ, ЯМ, Мегамаркет. Исключите штрафы за продажу товара отсутствующего на складе и не своевременную передачу кодов маркировок, легкий и интуитивно понятный интерфейс позволит перенести всю работу с площадкой в 1С. Есть Демо.

39900 31920 руб.

17.07.2023    11485    53    20    

40

Маркетплейсы Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Функциональное решение для торговли на всех популярных маркетплейсах. Работает со схемами FBO и FBS. Простое в использовании и установке, не вносит изменения в код программы. Существенно упрощает работу с товарным ассортиментом, обработку заказов с площадок, работу с поставками, а также ведение аналитики по продажам и остаткам.

119999 руб.

19.07.2024    1986    53    0    

3

SALE! 20%

Маркетплейсы Программист Пользователь Платформа 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)

Полноценный обмен со всеми маркетплейсами: МегаМаркет, Wildberries, Яндекс.Маркет, OZON, VK, ALI, Авито. Так же подключили сервис Dostavista, автоматическая отправка заказов на доставку. Данный модуль позволяет полностью интегрировать 1С:УТ11.4/11.5, 1С:КА 2.4/2.5 и 1С:ERP 2.4/2.5 по API с Wldberries, Яндекс.Маркет, OZON, ALI, VK и МегаМаркет. 1С:Розница 2.3/УНФ 1.6 и выше с МегаМаркет. Схемы работы: ВИТРИНА + ДОСТАВКА, ЗАКАЖИ И ЗАБЕРИ + ВИТРИНА, ДОСТАВКА СИЛАМИ ПРОДАВЦА, ЭКСПРЕСС-ДОСТАВКА. Модуль зарегистрирован в Реестре программного обеспечения, а также являемся технологическими партнерами МегаМаркет, что говорит о гарантиях использования решения.

60000 руб.

09.10.2020    55879    119    81    

116
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Восьмой 89 18.01.21 14:37 Сейчас в теме
Хороший гайд!
Однако не могли бы Вы пример обработки выложить?
2. jenyavp 103 19.01.21 05:34 Сейчас в теме
(1)К сожалению нет полноценной обработки, в которой были бы собраны все моменты. У меня это несколько обработок конфигурации, и вся логика работы HTTP соединений в общем модуле. Основной посыл статьи - показать последовательность действий для создания карточек .
3. tigrandis 357 20.01.21 00:31 Сейчас в теме
плохо что не реализовали все через расширение =(
4. jenyavp 103 20.01.21 07:25 Сейчас в теме
(3) в моем случае расширение и не требовалось, так как разработка ведется на чистой конфигурации + БСП . Эта база является промежуточным звеном, в котором хранятся логи запросов, сами данные (карточки, заказы поставки, продажи, остатки и прочее) с историей изменения, предполагается, что запросы в WB отправляются и загружаются с определенной периодичностью.
В рабочей базе запросы не в WB, а к этому промежуточному звену. Это снимает нагрузку с рабочей базы и дает возможность хранить историю запросов и данных, не меняя конфигурацию рабочей базы и не привязывается к определенной конфигурации.
5. solarcap 21.01.21 17:26 Сейчас в теме
По поводу update: экспериментально выяснилось, что если в card добавить id карточки, тогда апдейтит. После этого, если прочитать карточку, nmId у нее нулевой (видимо это означает нахождение на модерации). В этом состоянии повторно проапдейтить ее нельзя - возвращает такое: "blocked card cause: map[674e8301-....:None err:IsLockedCard]".
6. jenyavp 103 22.01.21 06:11 Сейчас в теме
(5)Спасибо!!
Попробовала, добавила тэг ID в структуру card, в ответ получила {"id":"d9018ee2-b709-465b-ab0e-79b4cefa0b69","jsonrpc":"2.0","result":{}}, я так понимаю, это означает, что обновление прошло успешно.

В личном кабинете Номенклатура обнулилась ( как вы и написали), и упало в статус Ошибки, потому что при обновлении не указала страну. Странно, конечно, работает update, по-хорошему перед тем как обновить, необходимо было проверить заполненность... ))
7. jenyavp 103 22.01.21 06:22 Сейчас в теме
(6) вот, кстати, способ удалить карточку. Карточку удалить дает только в том случае, если Номенклатура не заполнена. Если же заполнена, то только через Service Desk. Сначала обновить ее, Номенклатура обнуляется, и удалить через личный кабинет.
К слову, даже когда указала второй раз все верно по другой карточке по заполнению, все равно карточка упала в ошибку.
Текст ошибки "Характеристика: tech_size. Ошибка: Артикул с таким размером уже создан! Удалите позицию из спецификации и загрузите на нее баркод в разделе Загрузки - Загрузки баркодов.", хотя до этого проблем с артикулами не было и карточка была создана.
8. solarcap 22.01.21 09:19 Сейчас в теме
(7) Интересно, надо попробовать.
Мне тоже при апдейтах возвращает ошибку "Артикул с таким размером уже создан". Если сделать еще один апдейт с новым баркодом, то карточка сразу получает заполненный nmId, ошибки уходят (если ее перечитать после апдейта). Возможно что по аналогии с id карточки нужно добавлять соответствующие id номенклатур и вариаций. Подозреваю, что без id пытается создать новую вариацию, даже если id карточки и указано. Но это догадка, еще не проверял.
А как вы удаляете? delete с одним тегом {id}?
Восьмой; +1 Ответить
9. jenyavp 103 22.01.21 09:43 Сейчас в теме
(8) удаляю я через личный кабинет, программно не пробовала и не видела такого метода.
Имела ввиду, что удалить в личном кабинете не дает карточку, у которой заполнена номенклатура, а так хотя бы можно ее удалить из списка после обнуления номенклатуры без обращения в поддержку, которая обрабатывает запросы неделю.

Этот API - черный ящик :). Спасибо за идею, надо попробовать указать id номенклатуры и вариации, или еще как вариант указать их chrtId и nmId.
Восьмой; +1 Ответить
10. jenyavp 103 22.01.21 09:56 Сейчас в теме
(9) а ведь получилось, добавила теги chrtId и nmId и Номенклатура не обнулилась, и статус не поменялся. Крутяк!
Восьмой; +1 Ответить
11. solarcap 22.01.21 16:21 Сейчас в теме
(10) Точно, при указании chrtId и nmId апдейтит без проблем. Если указывать только id номенклатуры и вариации, то ругается как выше.
По удалению: есть метод /card/delete, работает аналогично cardById. Удаляет даже с заполненным nmId (во всяком случае через апи этих карточек больше не видно, а через кабинет я посмотреть не могу).
12. jenyavp 103 22.01.21 20:03 Сейчас в теме
(11) Спасибо Вам, вы прямо кладезь ценной информации. А фото как добавляли, по описанию в API У Вас все удачно получилось?
Восьмой; +1 Ответить
13. solarcap 23.01.21 17:27 Сейчас в теме
(12) Да какой там кладезь ) Документация отвратная, приходится шишки набивать, да по крупицам собирать. Про метод delete узнал из неофициальной группы в телеге: wildberriesApiForDev.
Фото еще не грузил, но чувствую тоже будут сюрпризы. Раньше (с месяц назад) в карточке приходили идентификаторы фото, как в документации указано, теперь получаешь карточку - а там url вместо идентификаторов.
Восьмой; +1 Ответить
57. user1668033 22.09.21 08:03 Сейчас в теме
(8)Привет.Помогите разобраться пожалуйста. Как удалить то размер из карточки ?( Удалите позицию из спецификации) и не дает загрузить новый баркод,вот что пишет Не удалось загрузить файл
некорректно указан минимальный вес: строка 2
26. user1544285 12.02.21 11:02 Сейчас в теме
(7)
Service Desk

jenyavp, пожалуйста, помогите мне разобраться! Я совсем новичок, все заполнила, но немного накосячила с бар-кодом. Теперь система не дает его изменить. А если добавляю второй бар-код, то выдает точно такую же ошибку: "Характеристика: tech_size. Ошибка: Артикул с таким размером уже создан! Удалите позицию из спецификации и загрузите на нее баркод в разделе Загрузки - Загрузки баркодов.".
Очень прошу Вас, расскажите пошагово про удаление карточки через Service Desk.
ЗАРАНЕЕ БЛАГОДАРЮ!!!
28. jenyavp 103 12.02.21 13:18 Сейчас в теме
(26) Здесь имеется ввиду, что в личном кабинете есть раздел Service Desk. Создаете инцидент на поддержку, что надо удалить такую то карточку. Они или сами отработают, или отправят вас в другой отдел. Service Desk - Создать заявку - Выбираете Поддержку и указываете, какую карточку надо удалить. Скрин прикладываете.

Можно также отправить запрос к API , если вы знаете CARD_ID,

https://content-suppliers.wildberries.ru/card/DELETE
Тело {
"id": 1,
"jsonrpc": "2.0",
"params": {
"cardID": "00000000-0000-0000-0000-000000000000", // ID карточки. Можно получить в ответе сервиса после создания карточки или методом "List", который рассмотрен ниже.
"supplierID": "00000000-0000-0000-0000-000000000000" // ID поставщика. Выдаётся при регистрации поставщика.
}
}
Как писали выше, удаляет даже если заполнена Номенклатура.
27. user1544299 12.02.21 11:17 Сейчас в теме
(7)
Service Desk

jenyavp, пожалуйста, помогите мне разобраться! Я совсем новичок, и это моя первая карточка))). Я все заполнила, но немного накосячила с бар-кодом. Теперь система не дает его изменить. А если добавляю второй бар-код, то выдает точно такую же ошибку: "Характеристика: tech_size. Ошибка: Артикул с таким размером уже создан! Удалите позицию из спецификации и загрузите на нее баркод в разделе Загрузки - Загрузки баркодов.".
Очень прошу Вас, расскажите пошагово про удаление карточки через Service Desk.
ЗАРАНЕЕ БЛАГОДАРЮ!!!
(7)
14. solarcap 27.01.21 12:45 Сейчас в теме
Остались нерешенные проблемы с загрузкой файла

Тоже не удалось побороть загрузку файлов, в ответ стабильно возвращает пустую структуру: "{ }" (при коде возврата = 200, если нет ошибок).
Причем не важно, разрешение ли 900x1200 или другое, кодировать ли тело методами xmlстрока() или base64строка(), формат фото (jpg,png), имя... Код возврата 200 и "{ }".
Можно предположить, что это и означает успешную загрузку, потому что при повторной загрузке на тот же самый идентификатор фото, сайт возвращает код 500 Internal Server Error (видимо идентификатор уже занят). Но update карточки с тегом photos в номенклатуре и с этим id имеет нулевой эффект. При чтение карточки после update фото нет (
15. jenyavp 103 28.01.21 05:44 Сейчас в теме
(14) да, именно так. Еще пробовала загружать как свойство номенклатуры type "Фото", units "image/jpg" value - идентификатор. При чтении карточки свойство это читает, в личном кабинете появляется подобие картинки, открываешь ее, а там переданная строка b64. Здесь видимо надо использовать еще метод получения url картинки по ее id. Можно в чате телеграмма поспрашивать..
Восьмой; +1 Ответить
17. solarcap 28.01.21 20:30 Сейчас в теме
(15)
Здесь видимо надо использовать еще метод получения url картинки по ее id.

Не слышал о таком. Думаю тут имеют место быть недоделки со стороны WB. Если id фото передавать при create, а не при update, то в этом случае это id присутствует при чтении карточки в photos. Только я не могу оценить это со стороны ЛК, нет туда быстрого доступа.
Возможно в этом теге photos обозначается нахождение фото на модерации, но сколько это должно длится по времени - вопрос.
20. solarcap 04.02.21 15:43 Сейчас в теме
(15)
При чтении карточки свойство это читает, в личном кабинете появляется подобие картинки, открываешь ее, а там переданная строка b64.

Похоже на то, что WB не может декодировать то, что ему присылают через xmlстрока или base64строка.
Я попробовал в ручном режиме загрузить через curl, как в примере документации. После загрузки возвращает все также {}, но зато файл, загруженный таким образом можно прицепить к карточке и это получилось ) Цеплял через update в секции Addin номенклатуры (там, где приходят url-ы имеющихся фото, только вместо url указывал идентификаторы).
Тут просто нужен какой-то работающий механизм загрузки, аналогичный curl.
21. jenyavp 103 05.02.21 11:05 Сейчас в теме
(16)
(20) То есть вы имеете ввиду, что загрузка самого файла не отрабатывает нормально, а не привязка?
22. solarcap 05.02.21 14:51 Сейчас в теме
(21) Да. Я перепробовал кучу разных вариантов загрузки из предлагаемых на инфостарте, но при привязке к карточке получаю примерно такой отлуп:
Response status code from ... is 500, resp body: photo index: 0. err: не удалось декодировать изображение cause: map[err:Ошибка загрузки фотографий. Пожалуйста, повторите позже]
А то, что загружено при помощи curl - привязывается.
30. jenyavp 103 02.03.21 21:53 Сейчас в теме
(22) Выложила обновление в конце статьи. Вы решили эту проблему с загрузкой фото? Вернулась к этой теме и удалось победить
31. solarcap 03.03.21 11:20 Сейчас в теме
(30) Интересно, я тоже пробовал этот способ из публикации 20017, но, видимо, где-то что-то недосмотрел, не взлетело.
Спасибо, попробую еще раз.
44. пользователь 23.04.21 14:15
Сообщение было скрыто модератором.
...
16. AnnyGirl 13 28.01.21 17:03 Сейчас в теме
Подскажите, можно ли получить полный список товарных категорий wildberies, а не только искать по наименованию?
18. solarcap 28.01.21 20:32 Сейчас в теме
(16) Не нашел такого. Вышел из положения, читая категории в цикле используя в качестве шаблона буквы русского алфавита.
AnnyGirl; +1 Ответить
19. jenyavp 103 29.01.21 07:19 Сейчас в теме
(18) Да, делала также. Циклом по алфавиту.
Восьмой; AnnyGirl; +2 Ответить
23. AnnyGirl 13 11.02.21 15:03 Сейчас в теме
Подскажите как подобрать нужный ТН ВЭД для товара. В нашей безе по ним инфы нет. В свойствах товарной категории это обязательный реквизит. Согласно тэгу "dictionary" нужно забирать из справочника "/tnved" но не понятно с какими параметрами туда обращаться.
25. jenyavp 103 11.02.21 21:55 Сейчас в теме
(23) Дополнила статью по этому вопросу.
24. jenyavp 103 11.02.21 21:16 Сейчас в теме
(23) надо добавить еще один параметр ?subject=Термосы это пример, то есть будет выглядеть так:


https://content-suppliers.wildberries.ru/ns/characteristics-configurator-api/content-configurator/api/v1/directory/tnved?subject=Термосы&pattern=&lang=ru&top=10
AnnyGirl; +1 Ответить
29. AnnyGirl 13 15.02.21 09:38 Сейчас в теме
32. AnnyGirl 13 03.03.21 16:23 Сейчас в теме
Добрый день. Коллеги подскажите те кому удалось продвинутся дальше создания карточек. Интересует вопрос касаемо остатков и цен. Где можно увидеть выгруженные данные по остаткам и цена? При выгрузке получаю ответ от сервера на запрос по выгрузке код 200, тело запроса пустое. И вроде все ок, но данных ни по ценам, не по остаткам в ЛК нет. Можно ли как то получить эту инфу по API или еще как?
33. jenyavp 103 03.03.21 21:22 Сейчас в теме
(32) по API вы это не увидите. Только в Личном кабинете в разделе Продажа со склада Продавца. И цены не меняет, кстати, этот вопрос уже задавали, только в отдаленном будущем. И цены вы увидите при получении данных по карточке. Там видно, все в описании API.
34. AnnyGirl 13 04.03.21 10:11 Сейчас в теме
(33)То есть цены можно обновить только обновив карточку товаров? А через "API Stock&Price" обновляются только остатки? А остатки как можно посмотреть или тоже только в ЛК, но там тоже пусто.
35. jenyavp 103 04.03.21 14:58 Сейчас в теме
(34) Цены по API нельзя никак обновить, только через ЛК. Остатки с нашего склада можно посмотреть в ЛК, если пусто, то значит вы туда ничего еще не добавили. Надо добавлять туда товары. Остатки со склада WB ( это те, которые вы привозили им для реализации) через API статистики. Выдается отдельный ключ для доступа. В обучении где то есть описание сервиса статистики.
36. jenyavp 103 05.03.21 06:02 Сейчас в теме
(35) Да. момент, через "API Stock&Price" как раз и добавляете в остатки со своего склада, если у вас в ЛК пусто, то значит в запросе где то ошиблись, может не те данные передали. К примеру, передавала данные, указывала id склада, данные карточки, но нулевые, в итоге тоже возвращает код 200 без ошибок.
37. enigmen 09.03.21 11:51 Сейчас в теме
Евгения, как с вами можно связаться?
38. jenyavp 103 11.03.21 05:48 Сейчас в теме
(37) вы можете писать вопросы в личные сообщения. Какой вопрос вас интересует?
39. enigmen 11.03.21 09:23 Сейчас в теме
(38) личное сообщение не отправляется. Хотел узнать работаете ли вы с самописными конфами, интеграции с веб-сервисами, зуп, типовая бух. Есть фронт задач, можем переговорить если интересно.
40. jenyavp 103 11.03.21 13:23 Сейчас в теме
(39) Добавила вас в друзья, все равно сообщение не отправляется. У меня на данный момент есть работа и времени, к сожалению, на другие задачи нет(.
41. enigmen 11.03.21 13:30 Сейчас в теме
42. G_103359985573713489861 05.04.21 23:29 Сейчас в теме
Здравствуйте ! Необходима интеграция 1С-Управление торговлей с ЛК Вайлдберриз в части отчетов по проданным КЗИ. Услуга нужна комплексная с удалённым доступом для всей необходимой настройки.
43. Noderiks 16.04.21 02:01 Сейчас в теме
Здравствуйте. Тоже столкнулся с ошибкой "message": "access denied", при получении списка карточек.. Не понимаю как побороть эту проблему. Авторизацию сделал, получил Cookie, в общем все по инструкции. SupplierID указал тот что отображается на странице https://suppliers-portal.wildberries.ru/supplier-settings/access-to-api Ключ для работы с API статистики x32. Может это не тот?
45. unknown181538 158 27.05.21 01:22 Сейчас в теме
(43) У вас получилось побороть "access denied"?
46. saddy 5 02.06.21 15:23 Сейчас в теме
(45) Замените "content-suppliers.wildberries.ru" на "suppliers-api.wildberries.ru", старое API прикрыли
unknown181538; +1 Ответить
47. V_K 19.06.21 08:16 Сейчас в теме
При попытке создать карточку получаю ошибку

"validation error cause: map[err:Пожалуйста, выберите Страну производства из нашего справочника!]"
Пробовал вместо своего текста запроса подставлять тт что в примере API таже ошибка

СТрану передаю

""countryProduction"": ""Россия"",


Может кто в курсе в чем причина?
48. jenyavp 103 22.06.21 11:29 Сейчас в теме
(47) необходимо выбирать из их справочника Стран, сначала получаете список стран из их справочника и оттуда выбираете значение, возможно , что есть какие то символы, которые не позволяют просто строкой написать страну.
49. Den_ez 28.06.21 07:52 Сейчас в теме
(47) была такая проблема. Решилась установкой кодировки тела запроса в "UTF-8"
51. RocKeR_13 1366 02.07.21 18:02 Сейчас в теме
(47) Добрый день! Победили ошибку? Кодировка не помогает, название страны проверил - без латиницы. Проверил справочник на WB - там именно так и указано наименование - "Россия"
50. V_K 29.06.21 14:01 Сейчас в теме
52. V_K 02.07.21 21:32 Сейчас в теме
(51) Мне помогла кодировка

ИмяФайлаЗапросаWB = ПолучитьИмяВременногоФайла();
		ОбъектЗапись 	  = Новый ЗаписьJSON;
		ОбъектЗапись.ОткрытьФайл(ИмяФайлаЗапросаWB,КодировкаТекста.UTF8 );
		ОбъектЗапись.ЗаписатьБезОбработки( ПараметрыЗапроса );	
		ОбъектЗапись.Закрыть();
	
		Сервер 		= "suppliers-api.wildberries.ru";	//Новый  Content API
		
		HTTP 		=  Новый HTTPСоединение(Сервер,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
		
	    HTTPЗапрос = Новый HTTPЗапрос(Ресурс);
	    HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаЗапросаWB);
Показать
53. RocKeR_13 1366 05.07.21 10:19 Сейчас в теме
(52) Делал через УстановитьТелоИзСтроки с установкой UTF8 - результата нет... Попробую через файл
54. aZeroCool 08.07.21 12:07 Сейчас в теме
(53) возможно в Заводе не указана страна, такой еще может быть косяк
55. RocKeR_13 1366 08.07.21 12:47 Сейчас в теме
(54) Там все прозаичнее: я в метод /card/create передавал массив card вместо структуры)
56. Aleksk75 11.09.21 23:07 Сейчас в теме
Добрый день. Подскажите пожалуйста, данный метод работает с новым API WB?
58. sedoygul 21.10.21 12:49 Сейчас в теме
Спасибо огроменное за статью, без нее я бы потратил раза в 3 больше времени чтобы разобраться с этим треклятым апи. Вот почему они не могут сделать нормальное описание своих методов?!
59. KoC_one 29.10.21 09:47 Сейчас в теме
Здравствуйте. Могли бы вы пример кода по отправке изображения на ВБ прислать? взял из вашей статьи - почему то не работает(
61. Miket78 33 19.12.21 08:01 Сейчас в теме
Здравствуйте. Подскажите пож-ста пример кода для использования метода /card/list
Мне надо получить список всех карточек товаров с их кодами и прочими атрибутами.
62. crushos 10 13.05.22 12:16 Сейчас в теме
(61)
Соединение = Новый HTTPСоединение("suppliers-api.wildberries.ru",,,,,5, Новый ЗащищенноеСоединениеOpenSSL());
//Заполняем заголовки
HTTPЗапросЗаголовки = Новый Соответствие();
HTTPЗапросЗаголовки.Вставить("accept", "application/json");
HTTPЗапросЗаголовки.Вставить("Authorization", КлючAPI);

HTTPЗапросЗаголовки.Вставить("Content-Type", "application/json");
	
Запрос = Новый HTTPЗапрос("/card/list", HTTPЗапросЗаголовки);
	
Запрос.УстановитьТелоИзСтроки("{""id"":1,""jsonrpc"":""2.0"",""params"":{""query"":{""limit"":"+100 (как вариант первые 100)+"}}}");

HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос);
	
Ответ = HTTPОтвет.ПолучитьТелоКакСтроку();
	
Если HTTPОтвет.КодСостояния = 200 Тогда
	Сообщить("ОК");
	Сообщить(Ответ); //получим HTML-код страницы 
		
	ЧтениеJSON = Новый ЧтениеJSON();
	ЧтениеJSON.УстановитьСтроку(Ответ);
	Стрктурра = ПрочитатьJSON(ЧтениеJSON);
	ЧтениеJSON.Закрыть();
	Иначе
	Сообщить("NOPE");
	Сообщить("Код ответа: "+Ответ.КодСостояния); //анализируем код состояния и делаем выводы
КонецЕсли;
Показать
63. Darkwave 18.05.22 10:28 Сейчас в теме
(62)
Добрый день. Может есть пример кода для метода /card/update?
64. crushos 10 23.05.22 16:48 Сейчас в теме
(63) Метод по сути такой же. Основное - полученный результат отправить обратно.
65. crushos 10 23.05.22 17:19 Сейчас в теме
(63) выложил готовую обработку и основные функции по ссылке.
https://infostart.ru/public/1664291/
Пожалуйста )
66. Darkwave 07.06.22 10:13 Сейчас в теме
(65) Спасибо большое! Уже сам разобрался..
67. user1689669 15.06.22 09:55 Сейчас в теме
Здравствуйте! Можно на Wildberries удалить лишние размеры в карточке??
68. Sofia9876 11.08.22 09:38 Сейчас в теме
здравствуйте, подскажите как обновить габариты товара из 1С в карточке товара на ВБ?))
69. user1909977 16.02.23 12:57 Сейчас в теме
Добрый день Евгения! Нам нужна интеграция 1С-Управление торговлей с АПИ Вайлдберриз и Озон, в основном что бы работать в 1С с остатками на складах. Можно обратиться к вам с этим вопросом?
Оставьте свое сообщение