Обмен заказами и остатками между маркетплейсом Wildberries и конфигурацией 1С:Розница

09.03.24

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

Представляю Вашему вниманию обработку для конфигурации 1С:Розница, при помощи которой можно осуществлять обмен остатками и заказами с маркетплейсом Wildberries. Данная обработка может быть подключена в качестве дополнительной внешней обработки  и использоваться для обмена заказами и остатками с вышеуказанным маркетплейсом. Кроме того, она может послужить основой для адаптации  программистами под нужды заказчика, а  также использоваться как примеры работы с Wildberries api и http запросами (в определенной степени).

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

Наименование Файл Версия Размер
Обмен заказами и остатками с маркетплейсом Wildberries и 1с:Розница:
.epf 24,79Kb
8
.epf 1.0.0.1 24,79Kb 8 Скачать
Обмен заказами и остатками с маркетплейсом Wildberries и конфигурацией 1С:Розница для API V3
.epf 24,54Kb
1
.epf 24,54Kb 1 Скачать

Прежде всего о модели работы. Предполагается, что номенклатура на маркетплейсе создается и заполняется в личном кабинете, то есть его средствами, синхронизация номенклатуры осуществляется по штрихкодам, это также позволяет работать с характеристиками в базе. Новые заказы загружаются в базу и переходят в статус "Принят к обработке", их обработка происходит также в личном кабинете маркетплейса. После  обработки и закрытия заказа, в базе по нему создается  реализация, заказ закрывается. Таким образом, в базе отражаются продажи по маркетплейсу. Продажи осуществляются обезличенно, контрагенту Wildberries. Заказы могут загружаться фоновым заданием по расписанию, а также вручную из формы обработки . Расписание выгрузки остатков и  загрузки заказов определяется при подключении дополнительной обработки.

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

Интерфейс  обработки прост и практичен, в шапке указывается токен, идентификатор склада (Warehouse id), и расположены 3 кнопки: Загрузить заказы, Обработать закрытые заказы, Обновить остатки.  Полагаю, что действия кнопок очевидны и не нуждаются в дополнительном описании.

 

 

Чуть ниже расположены 2 закладки: Заказы вайлдбериз и Отборы номенклатуры для выгрузки. На закладке "Заказы вайлдбериз" отображается список  новых заказов полученных с маркетплейса Вайлдбериз после нажатия на кнопку "Загрузить заказы". Таким образом, можно просмотреть результат работы обработки по получению новых заказов.

На закладке "Отборы номенклатуры для выгрузки" можно произвольно настроить отбор номенклатуры для выгрузки по ее реквизитам и при этом сохранить эти настройки.

 

 

При сохранении настроек сохраняются не только сделанные отборы, но и токен, и идентификатор склада.

В дальнейшем эти настройки используются при работе обработки по расписанию, также они считываются и при открытии формы. Сохранение настроек работает только в случае, когда обработка подключена как дополнительная внешняя обработка. Поля возможные для отборов определяются макетом схемы компоновки данных обработки, в которой описаны данные получаемые из базы для выгрузки остатков на маркетплейс. Программист может переопределить в макете получаемые данные, соответствующим образом изменятся и возможные поля для отбора. Вот и все что касается интерфейса обработки.

Теперь немного о реализации. При выгрузке остатков сначала получаются данные об имеющихся остатках на маркетплейсе. Это делается для того, чтобы в случае отсутствия данных по остаткам какой-либо номенклатуры, передавались нулевые остатки.  Форматы передаваемых запросов, получаемых ответов с маркетплейса были взяты отсюда: https://suppliers-api.wildberries.ru/swagger/index.html. Вкратце, вся суть запросов, передающих данные на маркетплейс, заключается в том, что в его тело помещается строка в формате json (Java script object notation). Платформа  имеет средства для работы с этим форматом. Один из способов создания строки в данном формате является предварительная подготовка массива структур. Поля структуры станут полями формата. Если поля формата  json будут иметь названия, неприменимые для именования ключа структуры, то можно подготовить не структуру, а соответствие. В нашем случае структура вполне подходит. Рассмотрим пример выгрузки остатков. На ресурсе https://suppliers-api.wildberries.ru/swagger/index.html описан запрос отправляемый для выгрузки остатков: 

 

   

Мы видим, что это должен быть POST запрос содержащий список в формате  json с полями barcode, stock и wharehouseId (штрихкод, количество и идентификатор склада соответственно). В случае успешной обработки запроса возвращается код ответа 200 и список ошибок загрузки остатков (если ошибок нет, то список будет пустой).

 

 

На вкладке schema тела запроса можно посмотреть типы данных для каждого поля:

 

Для поля barcode это строка, для остальных  - число. Соответственно, наша задача подготовить массив структур с ключами barcode, stock и  warehouseId с данными остатков по каждой позиции.  Получив данные остатков по каждой позиции номенклатуры (или номенклатуры с характеристикой, если учет по ним ведется), мы обходим результат выборки и добавляем наши структуры в массив.

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 МассивОстатков = Новый Массив;
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 	СтруктураДанных  = Новый Структура("barcode,stock,warehouseId" );
	 	ЗаполнитьЗначенияСвойств(СтруктураДанных,ВыборкаДетальныеЗаписи);
		//идентификатор вашего склада на Вайлдберриз, необходимо его заполнить предварительно и сохранить в настройках обработки
	 	СтруктураДанных.warehouseId = warehouseId;
	 	МассивОстатков.Добавить(СтруктураДанных);
	 КонецЦикла;

После того как массив структур подготовлен, нам надо преобразовать его в формат json это делается при помощи объекта  ЗаписьJSON.

//формируем строку в формате  json
//поля и их формат подробно описаны на https://suppliers-api.wildberries.ru/swagger/index.html
	ЗаписьДжейсон = Новый ЗаписьJSON;
	Пар = новый ПараметрыЗаписиJSON;
	ЗаписьДжейсон.УстановитьСтроку(Пар);
	ЗаписатьJSON(ЗаписьДжейсон,МассивОстатков);
	СтрокаДжейсон = ЗаписьДжейсон.Закрыть();

Когда тело запроса  в виде строки json готово, приступим к созданию самого запроса:

Сервер = "suppliers-api.wildberries.ru";
SSLСоединение = Новый ЗащищенноеСоединениеOpenSSL;
Метод = "/api/v2/stocks";
HTTPСоединение = Новый HTTPСоединение(Сервер,443,,,,,SSLСоединение); 
ИмяФайла = ПолучитьИмяВременногоФайла("json");
Запрос = СформироватьHTTPЗапрос(Метод);
Запрос.УстановитьТелоИзСтроки(СтрокаДжейсон,КодировкаТекста.UTF8);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(Запрос,ИмяФайла);

Куда отправлять запросы и как называется метод мы посмотрели на сваггере (https://suppliers-api.wildberries.ru/swagger/index.html). Для всех запросов сервер будет одинаков: suppliers-api.wildberries.ru, для отправки остатков используем метод /api/v2/stocks.  Сам запрос формируется у нас в функции СформироватьHTTPЗапрос(Метод). Они приведена ниже:

Функция СформироватьHTTPЗапрос(Метод) Экспорт
	Запрос = Новый HTTPЗапрос(Метод);
	//Токен выдается в личном кабинете, надо подставить свой
	Запрос.Заголовки.Вставить("Authorization", Токен);
	Запрос.Заголовки.Вставить("Content-Type", "application/json");
	Возврат Запрос;
	
		
КонецФункции

 

Обратите внимание, мы должны отправить Post запрос, поэтому для нашего соединения выполняем метод ОтправитьДляОбработки. Соответствие методов соединения можно посмотреть во встроенной справке по объекту HTTPСоединение. Для того, чтобы поместить нашу строку  в формате json в тело запроса, используем метод запроса УстановитьТелоИзСтроки, где вторым параметром указываем кодировку. Для того, чтобы обработать ответ от маркетплейса, нам потребуется передать в запросе имя файла куда он будет помещен, для этих целей получаем имя временного файла, а затем читаем его при помощи объекта Чтениеjson. Функция глобального контекста Прочитатьjson возвращает нам в виде структуры данные из файла и мы можем работать с ними привычными нам методами. Коллекции данных в этой структуре существуют в виде массивов структур. После этого, обрабатываем ответ от маркетплейса :

Если HTTPОтвет.КодСостояния = 200 Тогда
		ЧтениеДжейсон = Новый ЧтениеJSON;
		ЧтениеДжейсон.ОткрытьФайл(ИмяФайла);
		ДанныеОтвета = ПрочитатьJSON(ЧтениеДжейсон);
		Сообщить("Остатки обновлены, количество обновленных элементов:"+ МассивОстатков.Количество());
		МассивОшибок = ДанныеОтвета.data.errors;
		Если ТипЗнч(МассивОшибок) = Тип("Массив") И МассивОшибок.Количество()>0 Тогда
			Для каждого СтруктураОшибки Из МассивОшибок Цикл
				ТекстСообщения = "штрихкод:" + СтруктураОшибки.barcode+ " ошибка:"+ СтруктураОшибки.err;
				Сообщить(ТекстСообщения);
			КонецЦикла;
		Иначе 
			Сообщить("Количество ошибок при обновлении остатков: 0" );
		КонецЕсли;
		
		
Иначе
		
		Сообщить ("Ошибка выполнения запроса, код ошибки "+ HTTPОтвет.КодСостояния );		
		
КонецЕсли;

На примере выгрузки остатков показан принцип работы с api маркетплейса, способ формирования данных в требуемом формате, обработки полученного ответа. Надеюсь, что рассмотренный пример даст понимание, каким образом можно получать и отправлять данные для маркетплейса Wildberries из прикладного решения на платформе 1С. Возможно, также кому-то пригодится и сама обработка или ее код в качестве основы для дальнейшей модификации под свои нужды.

Обработка тестировалась на редакции 2.3.9.37, платформа 8.3.18.1741, на редакции 2.2 не тестировалась, но может быть адаптирована, доработок потребуется минимум.

Проверено на следующих конфигурациях и релизах:

  • Розница, редакция 2.3, релизы 2.3.9.37

Обмен Wildberries Вайлбдерриз Розница заказы остатки апи 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    171696    1023    1538    

521

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    29351    266    188    

121

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    85216    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    35802    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    52180    129    81    

108
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Chebchic 05.02.24 11:20 Сейчас в теме
Добрый день. Подскажите, в феврале 2024 обработка актуальна?
2. user596590_pavel.kuznecov 46 05.02.24 11:55 Сейчас в теме
(1) Добрый день. Видимо, нет, так как версия api изменилась, теперрь используется версия 3.0. По всей видимости, надо адаптировать
3. Chebchic 05.02.24 13:39 Сейчас в теме
4. user596590_pavel.kuznecov 46 05.02.24 14:07 Сейчас в теме
(3) да, можно попробовать, но мне потребуется от Вас токен для отладки.
5. Chebchic 05.02.24 14:34 Сейчас в теме
запросто
в личку кину
6. Chebchic 05.02.24 14:36 Сейчас в теме
осталось понять как написать в личку, чтобы видели только Вы. Может в почте пришлю?
7. user596590_pavel.kuznecov 46 05.02.24 14:51 Сейчас в теме
(6) Напишите мне сообщение, можно и по почте, в приницпе
8. пользователь 05.02.24 14:56
Сообщение было скрыто модератором.
...
9. Chebchic 06.02.24 10:57 Сейчас в теме
10. user596590_pavel.kuznecov 46 06.02.24 12:47 Сейчас в теме
(9) я в личку написал, 8е сообщение скрыто модератором
Оставьте свое сообщение