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

Публикация № 1362401 18.01.21

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

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

Опыт интеграции с 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"
             }
            ]
           }

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Восьмой 79 18.01.21 14:37 Сейчас в теме
Хороший гайд!
Однако не могли бы Вы пример обработки выложить?
2. jenyavp 96 19.01.21 05:34 Сейчас в теме
(1)К сожалению нет полноценной обработки, в которой были бы собраны все моменты. У меня это несколько обработок конфигурации, и вся логика работы HTTP соединений в общем модуле. Основной посыл статьи - показать последовательность действий для создания карточек .
3. tigrandis 301 20.01.21 00:31 Сейчас в теме
плохо что не реализовали все через расширение =(
4. jenyavp 96 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 96 22.01.21 06:11 Сейчас в теме
(5)Спасибо!!
Попробовала, добавила тэг ID в структуру card, в ответ получила {"id":"d9018ee2-b709-465b-ab0e-79b4cefa0b69","jsonrpc":"2.0","result":{}}, я так понимаю, это означает, что обновление прошло успешно.

В личном кабинете Номенклатура обнулилась ( как вы и написали), и упало в статус Ошибки, потому что при обновлении не указала страну. Странно, конечно, работает update, по-хорошему перед тем как обновить, необходимо было проверить заполненность... ))
7. jenyavp 96 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 96 22.01.21 09:43 Сейчас в теме
(8) удаляю я через личный кабинет, программно не пробовала и не видела такого метода.
Имела ввиду, что удалить в личном кабинете не дает карточку, у которой заполнена номенклатура, а так хотя бы можно ее удалить из списка после обнуления номенклатуры без обращения в поддержку, которая обрабатывает запросы неделю.

Этот API - черный ящик :). Спасибо за идею, надо попробовать указать id номенклатуры и вариации, или еще как вариант указать их chrtId и nmId.
Восьмой; +1 Ответить
10. jenyavp 96 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 96 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 96 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 96 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 96 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 96 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 96 29.01.21 07:19 Сейчас в теме
(18) Да, делала также. Циклом по алфавиту.
Восьмой; AnnyGirl; +2 Ответить
23. AnnyGirl 13 11.02.21 15:03 Сейчас в теме
Подскажите как подобрать нужный ТН ВЭД для товара. В нашей безе по ним инфы нет. В свойствах товарной категории это обязательный реквизит. Согласно тэгу "dictionary" нужно забирать из справочника "/tnved" но не понятно с какими параметрами туда обращаться.
25. jenyavp 96 11.02.21 21:55 Сейчас в теме
(23) Дополнила статью по этому вопросу.
24. jenyavp 96 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 96 03.03.21 21:22 Сейчас в теме
(32) по API вы это не увидите. Только в Личном кабинете в разделе Продажа со склада Продавца. И цены не меняет, кстати, этот вопрос уже задавали, только в отдаленном будущем. И цены вы увидите при получении данных по карточке. Там видно, все в описании API.
34. AnnyGirl 13 04.03.21 10:11 Сейчас в теме
(33)То есть цены можно обновить только обновив карточку товаров? А через "API Stock&Price" обновляются только остатки? А остатки как можно посмотреть или тоже только в ЛК, но там тоже пусто.
35. jenyavp 96 04.03.21 14:58 Сейчас в теме
(34) Цены по API нельзя никак обновить, только через ЛК. Остатки с нашего склада можно посмотреть в ЛК, если пусто, то значит вы туда ничего еще не добавили. Надо добавлять туда товары. Остатки со склада WB ( это те, которые вы привозили им для реализации) через API статистики. Выдается отдельный ключ для доступа. В обучении где то есть описание сервиса статистики.
36. jenyavp 96 05.03.21 06:02 Сейчас в теме
(35) Да. момент, через "API Stock&Price" как раз и добавляете в остатки со своего склада, если у вас в ЛК пусто, то значит в запросе где то ошиблись, может не те данные передали. К примеру, передавала данные, указывала id склада, данные карточки, но нулевые, в итоге тоже возвращает код 200 без ошибок.
37. enigmen 09.03.21 11:51 Сейчас в теме
Евгения, как с вами можно связаться?
38. jenyavp 96 11.03.21 05:48 Сейчас в теме
(37) вы можете писать вопросы в личные сообщения. Какой вопрос вас интересует?
39. enigmen 11.03.21 09:23 Сейчас в теме
(38) личное сообщение не отправляется. Хотел узнать работаете ли вы с самописными конфами, интеграции с веб-сервисами, зуп, типовая бух. Есть фронт задач, можем переговорить если интересно.
40. jenyavp 96 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 111 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 96 22.06.21 11:29 Сейчас в теме
(47) необходимо выбирать из их справочника Стран, сначала получаете список стран из их справочника и оттуда выбираете значение, возможно , что есть какие то символы, которые не позволяют просто строкой написать страну.
49. Den_ez 28.06.21 07:52 Сейчас в теме
(47) была такая проблема. Решилась установкой кодировки тела запроса в "UTF-8"
51. RocKeR_13 1201 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 1201 05.07.21 10:19 Сейчас в теме
(52) Делал через УстановитьТелоИзСтроки с установкой UTF8 - результата нет... Попробую через файл
54. aZeroCool 08.07.21 12:07 Сейчас в теме
(53) возможно в Заводе не указана страна, такой еще может быть косяк
55. RocKeR_13 1201 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 18 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С с остатками на складах. Можно обратиться к вам с этим вопросом?
Оставьте свое сообщение

См. также

Работа с AliExpress через API

Маркетплейсы Платформа 1С v8.3 Бесплатно (free)

В публикации опишу подход работы с API AliExpress и примеры кода.

23.06.2020    15158    malikov_pro    81    

32