Изменение наименования товара на Wildberries

13.06.22

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

Обработка для изменения наименования номенклатуры на сайте WB посредством API.

Скачать файлы

Наименование Файл Версия Размер
Изменение наименования товара на Wildberries:
.epf 13,21Kb
9
.epf 13,21Kb 9 Скачать

Обработка для изменения наименования номенклатуры на сайте WB посредством API.

Полноценно рабочая, но с минимальным функционалом.

Как пользоваться: На форме необходимо выбрать Организацию и нажать на кнопку "Получить значения", обработка запросит список номенклатуры из вашего магазина и заполнит таблицу на форме для дальнейшей работы.

Также во вкладке Настройки есть возможность выбрать конкретную номенклатуру по его Артикулу в маркетплейсе.

Поля "Ограничение списка" нужны для того, чтобы выбрать определенное количество товаров (если их много), пропустив (если необходимо) указанное количество.

Очередность товаров в данном списке на усмотрение Маркетплейса.

После заполнения таблицы и для активации кнопки "Применить значение" необходимо заполнить одно из полей колонки "Новое наименование".

После нажатия "Применить значение" наименование на маркетплейсе изменяется на указанное. Обновление на сайте происходит до 30 минут, в зависимости от количества SKU. В среднем 10 минут.

Обработка не привязана к конфигурации и не имеет ограничений по платформе.

Тестировалась на платформе 8.3.18, в конфигурациях УТ11.4.13 и Бухгалтерия 3.0.108

Для полноценной работы необходимо в справочнике Организации добавить дополнительный реквизит, строка, с именем "WB_ApiKey". А также в хараrтеристике реквизит "КодВБ" (по желанию можно переписать откуда брать "nmID" - код обработки открыт)

Затем вставить туда API ключ, который можно получить в личном кабинете WB.

Руководство по получению API можно найти в сети. Как вариант по ссылке //infostart.ru/public/1581395/
 


Если скачивать обработку нет желания, вот основные функции:

1. Получение данных:

Соединение = Новый HTTPСоединение("suppliers-api.wildberries.ru",,,,,5, Новый ЗащищенноеСоединениеOpenSSL());
    //Заполняем заголовки
    HTTPЗапросЗаголовки = Новый Соответствие();
    HTTPЗапросЗаголовки.Вставить("accept", "application/json");
    HTTPЗапросЗаголовки.Вставить("Authorization", APIKey);
    HTTPЗапросЗаголовки.Вставить("Content-Type", "application/json");
    Запрос = Новый HTTPЗапрос("/card/list", HTTPЗапросЗаголовки);

    СериализованнаяСтрока = СобратьЗапросКарточек(КоличествоSKU,ПропуститьSKU,КодSKU);
    Запрос.УстановитьТелоИзСтроки(СериализованнаяСтрока);
    
    HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос);
    Ответ = HTTPОтвет.ПолучитьТелоКакСтроку();
    
    Если HTTPОтвет.КодСостояния = 200 Тогда
        ЧтениеJSON = Новый ЧтениеJSON();
        ЧтениеJSON.УстановитьСтроку(Ответ);
        Стрктурра = ПрочитатьJSON(ЧтениеJSON);
        ЧтениеJSON.Закрыть();
        
        НомерСтроки = 0;
        Для каждого стр из Стрктурра.result.cards Цикл
            НомерСтроки = НомерСтроки+1;
            СтрокаТЗ = Объект.ТЗ.Добавить();
            
            Для каждого стр_nomenclatures из стр.nomenclatures Цикл
                СтрокаТЗ.imtId = УбратьВсеПробелы(стр_nomenclatures.nmId);
            КонецЦикла;
            
            СтрокаТЗ.Наименование = "";
            
            Для каждого стр_type из стр.addin Цикл
                Если ВРЕГ(стр_type.type) = ВРЕГ("Наименование") Тогда
                    Если стр_type.params.Количество()>0 Тогда
                        СтрокаТЗ.Наименование = стр_type.params[0].value;
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;
            
            СтрокаТЗ.НаименованиеНовое = "";
            СтрокаТЗ.ИдентификаторСтроки = НомерСтроки;
            СтрокаТЗ.Номенклатура1С = ПолучитьНоменклатуруПоID(СтрокаТЗ.imtId);
            
            СтрокаТаблицаJSONОбъектов = ЭтаФорма.ТаблицаJSONОбъектов.Добавить();    
            СтрокаТаблицаJSONОбъектов.ИдентификаторСтроки = НомерСтроки;
            СтрокаТаблицаJSONОбъектов.СтрокаJSON = стр;
        КонецЦикла;
    Иначе
        Сообщить("NOPE, обратитесь к Программисту 1С");
    КонецЕсли;

 

2. Применить значения.

        Соединение = Новый HTTPСоединение("suppliers-api.wildberries.ru",,,,,5, Новый ЗащищенноеСоединениеOpenSSL());
        //Заполняем заголовки
        HTTPЗапросЗаголовки = Новый Соответствие();
        HTTPЗапросЗаголовки.Вставить("accept", "application/json");
        HTTPЗапросЗаголовки.Вставить("Authorization", APIKey);
        HTTPЗапросЗаголовки.Вставить("Content-Type", "application/json");
        Запрос = Новый HTTPЗапрос("/card/update", HTTPЗапросЗаголовки);
        СериализованнаяСтрока = СобратьЗапросОбновленияКарточки(стр.ИдентификаторСтроки,стр.НаименованиеНовое);
        Запрос.УстановитьТелоИзСтроки(СериализованнаяСтрока);  
        HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос);
        Ответ = HTTPОтвет.ПолучитьТелоКакСтроку();
        Если HTTPОтвет.КодСостояния = 200 Тогда
            Сообщить("Наименование для номенклатуры с Артикулом WB "+стр.imtID+" удачно изменено на: "+стр.НаименованиеНовое);
        Иначе
            Сообщить("Ошибка измнения наименования ("+стр.imtID+") :"+стр.НаименованиеНовое);
            Сообщить("Код ответа: "+Ответ.КодСостояния); //анализируем код состояния и делаем выводы
        КонецЕсли;


3. Сбор Запросов

Функция СобратьЗапросКарточек(Лимит=0,ОФсет=0,КодSKU=Неопределено)
    Если Лимит>100 Тогда Лимит=100 КонецЕсли;
    СтруктураЗ = Новый Структура;
    СтруктураЗ.Вставить("id",1);
    СтруктураЗ.Вставить("jsonrpc","2.0");
    СтрПарам = Новый Структура;//Params
    СтрФильтра = Новый Структура;
    Если ЗначениеЗаполнено(КодSKU) И СокрЛП(КодSKU)<>"" Тогда
        СтрФинд = Новый Структура;
        СтрФинд.Вставить("column","nomenclatures.nmId");
        МассивСКУ = Новый Массив();
        МассивСКУ.Добавить(Число(КодSKU));
        СтрФинд.Вставить("search", МассивСКУ);
        МассивФинд = Новый Массив;
        МассивФинд.Добавить(СтрФинд);
        СтрФильтра.Вставить("find",МассивФинд);
    КонецЕсли;
    //    СтрФильтра.Вставить("order",СтрОрдер);
    
    СтрПарам.Вставить("filter",СтрФильтра);
    
    СтрЗапроса = Новый Структура;
    Если КоличествоSKU<>0 Тогда
        СтрЗапроса.Вставить("limit",Лимит);//max 100
    КонецЕсли;
    Если ПропуститьSKU<>0 Тогда
        СтрЗапроса.Вставить("offset",ОФсет);
    КонецЕсли;
    
    СтрПарам.Вставить("query",СтрЗапроса);
    //    СтрПарам.Вставить("isArchive", ЛОЖЬ);
    //    СтрПарам.Вставить("supplierID",Объект.supplierID);
    //    СтрПарам.Вставить("withError", ЛОЖЬ);
    
    СтруктураЗ.Вставить("params",СтрПарам);
    
    НастройкиСериализацииJSON = Новый НастройкиСериализацииJSON;
    НастройкиСериализацииJSON.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДата;
    НастройкиСериализацииJSON.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();  
    ЗаписатьJSON(ЗаписьJSON, СтруктураЗ, НастройкиСериализацииJSON);            
    Результат = ЗаписьJSON.Закрыть();
    
    Возврат Результат;
КонецФункции

Функция СобратьЗапросОбновленияКарточки(Идентификатор, НовоеНаименование)
    НайденнаяСтрока = ЭтаФорма.ТаблицаJSONОбъектов.НайтиСтроки(Новый Структура("ИдентификаторСтроки",Идентификатор));
    Если НайденнаяСтрока.Количество() > 0 Тогда
        ПрежняяСтруктура = НайденнаяСтрока[0].СтрокаJSON;
    Иначе
        Возврат Неопределено;
    КонецЕсли;
    
    //Меняем наименование
    Для каждого стр_type из ПрежняяСтруктура.addin Цикл
        Если ВРЕГ(стр_type.type) = ВРЕГ("Наименование") Тогда
            Если стр_type.params.Количество()>0 Тогда
                стр_type.params[0].value = НовоеНаименование;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    //Модификация для выгрузки
    ПрежняяСтруктура.Вставить("uploadID", "");
    ПрежняяСтруктура.Удалить("batchID");
    
    //Меняем дату модификации    
    ПрежняяСтруктура.updatedAt = ТекущаяДата()+60;
    
    СтруктураЗ = Новый Структура;
    СтруктураЗ.Вставить("id",1);
    СтруктураЗ.Вставить("jsonrpc","2.0");
    СтрПарам = Новый Структура;//Params
    
    СтрПарам.Вставить("card",ПрежняяСтруктура);
    СтрПарам.Вставить("supplierID",ПрежняяСтруктура.supplierID);
    СтруктураЗ.Вставить("params",СтрПарам);
    
    НастройкиСериализацииJSON = Новый НастройкиСериализацииJSON;
    НастройкиСериализацииJSON.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.УниверсальнаяДата;
    НастройкиСериализацииJSON.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();  
    ЗаписатьJSON(ЗаписьJSON, СтруктураЗ, НастройкиСериализацииJSON);            
    Результат = ЗаписьJSON.Закрыть();
    
    Возврат Результат;
    
КонецФункции

 

Wildberries изменение наименования WB API

См. также

SALE! 20%

Модули интеграции с маркетплейсами (WILDBERRIES + ОЗОН + ЯНДЕКС МАРКЕТ+СБЕРМЕГАМАРКЕТ) по схеме FBS для УТ 11, КА 2, ERP 2, УНФ

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

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

58800 52920 руб.

22.03.2021    171567    1022    1538    

520

SALE! 20%

Расширение для интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP

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

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

49800 39840 руб.

23.01.2023    29319    262    188    

120

SALE! 20%

Интеграция 1С с маркетплейсами Ozon и Wildberries для УТ10.3, КА 1.1, УПП 1.3

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

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

49900 39920 руб.

12.05.2021    85189    511    261    

252

SynchroSber - полноценный модуль API интеграции с маркетплейсом Мегамаркет (СберМегаМаркет) для 1С УТ 11.X, КА 2.X, ERP 2.X, УНФ 1.6, 3.0 (возможность работы как с публикацией, так и без публикации базы)

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

Расширение SynchroSber полноценный информационный обмен (остатки, цены, заказы) между маркетплейсом Мегамаркет (СберМегаМаркет) (sbermegamarket.ru) и 1С:Управление торговлей 11.4, 11.5, ERP Управление предприятием 2.4, 2.5, Комплексная автоматизация 2.4, 2.5, 1С:Управление нашей фирмой 1.6, 3.0 через API интерфейс. Модуль API интеграции с маркетплейсом Мегамаркет интегрируется в 1С без каких-либо изменений вашей конфигурации. Поддержка 1C облачных сервисов Scloud.ru и 1С:Готовое рабочее место.

19920 руб.

24.01.2022    35792    90    72    

90

Интеграция с маркетплейсами МегаМаркет, Wildberries, OZON, ЯндексМаркет, VK, Avito, Леруа Мерлен, Aliexpress, Dostavista

Маркетплейсы Платформа 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 и выше с МегаМаркет. Схемы работы: ВИТРИНА + ДОСТАВКА, ЗАКАЖИ И ЗАБЕРИ + ВИТРИНА, ДОСТАВКА СИЛАМИ ПРОДАВЦА, ЭКСПРЕСС-ДОСТАВКА. Модуль зарегистрирован в Реестре программного обеспечения, а также являемся технологическими партнерами МегаМаркет, что говорит о гарантиях использования решения.

50000 руб.

09.10.2020    52163    129    81    

108
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. vano-ekt 123 24.05.22 10:47 Сейчас в теме
а потом карточку в бан или пессимизацию выдачи 😉
2. crushos 10 25.05.22 20:45 Сейчас в теме
(1) Обработкой уже пользуемся довольно долго. Проблем нет.
Это стандартная функция API WB
https://suppliers-api.wildberries.ru/swagger/index.html#/Card/post_card_update
Возможно и ее когда-то прикроют...
3. user1790745 29.05.22 13:55 Сейчас в теме
Подскажите, как узнать ImtID по nmID?
9. crushos 10 13.06.22 21:20 Сейчас в теме
(3)
Если правильно помню, в полученной структуре на ветке Cards|Adins
4. IwantToLearn 02.06.22 14:34 Сейчас в теме
Подскажите рабочее решение до сих пор??? с выходом APIv2 ничего не поменялось?
5. IwantToLearn 02.06.22 15:40 Сейчас в теме
(4) Просто отработала только после добавления характеристик Номенклатуры КодВБ и КодВБ1
11. crushos 10 13.06.22 21:23 Сейчас в теме
(5)
Да, код нужно подкорректировать под свою конфигурацию. У нас код WB привязан к характеристике.
Мы сейчас в процессе переделывания всех механизмов на Правильные рельсы. С Номенклатурой контрагентов и т.п. - Чтобы все работало и на стандартной конфигурации.
По готовности выложу.
10. crushos 10 13.06.22 21:20 Сейчас в теме
(4)
Этот код уже был написан на APIv2
В пятницу еще работал )))
6. injrd 03.06.22 23:54 Сейчас в теме
Добрый день!
Можете бота в телеграмм такого сделать?
7. IwantToLearn 06.06.22 12:50 Сейчас в теме
(6) Таких ботов в телеге куча уже есть, вопрос в том, хотите ли вы свой API давать третьим лицам
12. crushos 10 13.06.22 21:27 Сейчас в теме
(6)
Бот у нас уже есть, но работает только как "прокладка" между удалёнными пользователями и 1С (Чтобы доступ к 1С извне не открывать).
По мере обрастания функционалом, который пишется под требования отдела продаж, добавляем и функционал в бот.

Шаблон бота был взят на просторах infostart ;)
8. ovandre 10.06.22 16:21 Сейчас в теме
Огромное Вам спасибо за код, всё работает как часы.
13. crushos 10 13.06.22 21:28 Сейчас в теме
(8)
Пожалуйста. Все ради спокойных нервов )
14. IwantToLearn 22.06.22 09:54 Сейчас в теме
Подскажите, с 20 числа получаем
Поле объекта не обнаружено (result)
{ВнешняяОбработка.ИзменениеНаименованияWB.Форма.УправляемаяФорма.Форма(203)}: Для каждого стр из Стрктурра.result.cards Цикл
{ВнешняяОбработка.ИзменениеНаименованияWB.Форма.УправляемаяФорма.Форма(246)}: ПолучитьЗначенияНаСервере(ЭтаФорма.FindCodeWB, ЭтаФорма.КоличествоSKU, ЭтаФорма.ПропуститьSKU);

В отладчике поймали сообщение что WB отключил доступ к карточкам по API на 20-21 числа, а потом что-то поменяется. Ещё неизвестно что поменялось и как более-менее оперативно это решать?
15. IwantToLearn 22.06.22 10:02 Сейчас в теме
(14) Если я правильно увидел, то в коде используется Запрос = Новый HTTPЗапрос("/card/update", HTTPЗапросЗаголовки), а про него пишут вот что:
Позволяет обновлять карточку товара.Карточка с определённым ID изменяется на ту, которую прислали. Данный метод будет работать только, если у вас доступен раздел "Товары - Карточка товара". Если у вас доступен раздел "Карточка товара New" работа по API временно будет недоступна. Способ умер?
18. crushos 10 22.08.22 17:58 Сейчас в теме
(15) 2022.08.22 - работает.
По сути обработка замещает карточку на новую с новым наименованием.
В новом методе, скорее всего, будет подобное решение.
19. crushos 10 22.08.22 18:00 Сейчас в теме
(14) Скорее всего вам возвращается json без result.
Раньше, когда карточка не была найдена result был, но был пустой.
Сейчас если карточка не найдена - result'а не будет.
Включите отладку на 203 строке.
16. markovki 19 27.07.22 10:48 Сейчас в теме
День добрый! У меня УНФ. Добавил В Номенклатуру Код, в организацию Апи, немного подправил запросы выборки номенклатуры в строки ТЧ формы, остальное не трогал. Смотрю в отладчике, что новое наименование попадает в серилизованную строку, ответ на запрос приходит 200. Но при получении обновленных значений ничего не меняется. Делал и вчера и сегодня. Но я так понимаю, что обновленные значения в любом случае долны быть видны сразу, другое дело что на сайте ВБ они обновляются чуть позже. Подскажите, куда копать? Карточки как 2020-го года так и 2022-го. Категория товаров одна.
17. markovki 19 31.07.22 12:13 Сейчас в теме
(16) Причина найдена в использовании недопустимого символа * в наименовании товара.
Оставлю здесь, так сказать, для истории, кому-нибудь на заметку.
Автору респект за обработку, с минимальными поправками под УНФ, всё работает))

П.С. Что интересно, у нас почти все прежние наименования со * в карточках ВБ так и остались.
20. IwantToLearn 13.09.22 09:45 Сейчас в теме
Новость для API-разработчиков и продавцов. API для «Карточка товара NEW»
Уважаемые Продавцы!

Рады сообщить Вам, что разработано API для «Карточка товара NEW»
Описание доступно по ссылке: https://openapi.wb.ru (разделы «Контент/»).
21. neon57 22 07.11.22 12:54 Сейчас в теме
Данная обработка устарела в связи с отключением старых функций, теперь работают только новые функции для «Карточка товара NEW». Подскажите будут доработки под новые функции?
Оставьте свое сообщение