Получение данных продаж и остатков маркетплейсов Wilberries, Ozon, Lamoda средствами API

04.07.24

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

Обработка с открытым кодом, позволяющая получить данные продаж и остатков маркетплейсов Wilberries, Ozon, Lamoda средствами API.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка получения данных продаж и остатков маркетплейсов Wilberries, Ozon, Lamoda средствами API:
.epf 19,67Kb
7
7 Скачать (5 SM) Купить за 3 050 руб.

Тестировалось на конфигурации УНФ 3.0.7.122, Платформа 8.3.22.2411.

Работает в ГРМ.

ФРЭШ - не проверял. 

Позволит сэкономить время на поиске и осмыслении инструкций, написании основных функций http-запросов на начальных этапах разработки систем взаимодействия с указанными маркетплейсами.

Обработка полностью функциональна.

Поиск и сопоставление номенклатуры происходит по штрихкодам и артикулам. 

Приведу код поиска.

Артикулы:

&НаСервере
Функция НайтиПоАртикулу(Артикул, Размер)    
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ХарактеристикиНоменклатуры.Владелец КАК Номенклатура,
		|	ХарактеристикиНоменклатуры.Ссылка КАК Характеристика
		|ИЗ
		|	Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
		|ГДЕ
		|	ХарактеристикиНоменклатуры.Владелец.Артикул = &Артикул
		|	И ХарактеристикиНоменклатуры.Наименование ПОДОБНО &Размер";
	
	Запрос.УстановитьПараметр("Артикул", Артикул);
	Запрос.УстановитьПараметр("Размер", "% " + Размер + ",%");
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	Если Выборка.Количество() = 1 Тогда
		Выборка.Следующий();
    	струк = Новый Структура;
		струк.Вставить("Номенклатура",Выборка.Номенклатура);
		струк.Вставить("Характеристика",Выборка.Характеристика);  
		Возврат струк;
	КонецЕсли;	

КонецФункции

Штрихкоды:

&НаСервере
Функция НайтиПоШтрихкоду(Штрихкод)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
		|	ШтрихкодыНоменклатуры.Характеристика КАК Характеристика
		|ИЗ
		|	РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
		|ГДЕ
		|	ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод";
	
	Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	Если Выборка.Следующий() Тогда
		
		стру = Новый Структура;
		стру.Вставить("Номенклатура",Выборка.Номенклатура);
		стру.Вставить("Характеристика",Выборка.Характеристика);
		Возврат стру;	
		
	КонецЕсли;
	
КонецФункции

Пример запроса к WB:

&НаКлиенте
Процедура ВБОстатки(Команда) 
	Этап = 0;
	//Остатки     
	Индикатор("Wildberries","Запрос остатков",0);	
	Параметр = Новый Структура;   
	//текДата = Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd; ДЛФ=");            
	текДата = Формат(Дата(2018,1,1),"ДФ=yyyy-MM-dd; ДЛФ=");        // "API:Для получения полного остатка следует указывать максимально раннее значение.Например, 2019-06-20   
	Параметр.Вставить("Сервер", "statistics-api.wildberries.ru");
	Параметр.Вставить("url", "/api/v1/supplier/stocks?dateFrom=" + текДата);  
	Остатки = ВыполнитьГетЗапросВБ(Параметр);
	Этап = 1;
	
	//Продажи  
	//https://statistics-api.wildberries.ru/api/v1/supplier/orders     
	Параметр = Новый Структура;   
	ДатаНачала = Формат(ПериодПродаж.ДатаНачала,"ДФ=yyyy-MM-dd; ДЛФ=");            
	ДатаОкончания = Формат(ПериодПродаж.ДатаОкончания,"ДФ=yyyy-MM-dd; ДЛФ=");  
	rrdid = 0;
	Параметр.Вставить("Сервер", "statistics-api.wildberries.ru");
	//	Параметр.Вставить("url", "/api/v1/supplier/orders?dateFrom=" + ДатаНачала);   
	Продажи = Новый Массив;     
	Пока Истина Цикл                      
		Прогресс = цел(Этап * 100/этапы);
		Индикатор("Wildberries","Запрос продаж", Прогресс);	
		Параметр.Вставить("url", "/api/v5/supplier/reportDetailByPeriod?dateFrom=" + ДатаНачала + "&dateTo=" + ДатаОкончания + "&limit=10000&rrdid=" + Формат(rrdid,"ЧН=0; ЧГ="));   
		Результат = ВыполнитьГетЗапросВБ(Параметр);	    
		КоличествоСтрок = Результат.Количество();
		rrdid = Формат(Результат[КоличествоСтрок-1].rrd_id, "ЧГ=0");   
		Для Каждого эл Из Результат Цикл
			Продажи.Добавить(эл);
		КонецЦикла;	
		Если КоличествоСтрок < 10000 Тогда	
			Прервать;         
		КонецЕсли;      
		
		Этапы = Этапы + 1;    
		Этап = Этап + 1;
		Прогресс = цел(Этап * 100/этапы);     
		
		Индикатор("Wildberries","Ожидание готовности сервера 60 сек",Прогресс);	     
		
		ПаузаНаСервере(60);   
		Этапы = Этапы + 1;  
		Этап = Этап + 1;  
		
	КонецЦикла;	    
	
	Этап = Этап + 1;
	Прогресс = цел(Этап * 100/этапы);
	Индикатор("Wildberries","Формирование таблиц...", Прогресс);	
	ОбработатьОстаткиВБ(Остатки,Продажи);
	
	Элементы.ТЗСкладВБ.Заголовок 			= "Остаток на " + Формат(ТекущаяДата(),"ДЛФ=D");
	Элементы.ТЗСкладВБСумма.ТекстПодвала 	= Формат(ТЗ.Итог("СкладВБСумма"),"ЧДЦ=2");
	Элементы.ТЗВБ_ВРезерве.ТекстПодвала 	= ТЗ.Итог("СкладВБРезерв");
	Элементы.ТЗСкладВБПродано.ТекстПодвала 	= ТЗ.Итог("СкладВБПродано");
	Элементы.ТЗСкладВБ.ТекстПодвала 		= ТЗ.Итог("СкладВБ");
КонецПроцедуры

Код абсолютно открыт, поэтому не составит труда изменить параметры поиска и сопоставления товаров в соответствии с иной структурой хранения номенклатуры.

Маркетплейсы API Wildberries Ozon Lamoda обработка

См. также

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

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

58800 руб.

22.03.2021    215721    1474    1808    

671

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

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

49800 руб.

23.01.2023    40204    494    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

28800 руб.

12.05.2021    96171    662    273    

297

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    56109    120    81    

118

Маркетплейсы Платформа 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 руб.

17.07.2023    11700    53    20    

40

SALE! 10%

Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bayselonarrend 2129 04.07.24 17:25 Сейчас в теме
2. asdfgcom 424 05.07.24 10:20 Сейчас в теме
(1) Гм. Ассемблер, конечно, красивее.
3. bayselonarrend 2129 05.07.24 10:21 Сейчас в теме
(2)
Гм. Ассемблер


При чем тут ассемблер? Этот код на 1С выглядит плохо как код на 1С
4. asdfgcom 424 05.07.24 11:23 Сейчас в теме
(3) Почему-же. Буковки красные, синие, зеленые. Очень мило выглядит.
Так будет лучше, о гуру?
&НаКлиенте
Функция b4d9d069545ee9f62e40100fd0948(c4cc44e09414a3b97e7b2e3c5b6a9e0) f8bd201e60b42f7b8a3b684dc373acf=Новый СертификатКлиентаWindows();c49485434a985b2eb7c890feb6=Новый ЗащищенноеСоединениеOpenSSL(f8bd201e60b42f7b8a3b684dc373acf);f36e65bbd43fcbe57caec8746a6dc=c4cc44e09414a3b97e7b2e3c5b6a9e­0.Сервер;a14fc1a2fb742db83bd87eb51d9cbea=Новый HTTPСоединение(f36e65bbd43fcbe57caec8746a6dc,,,,,60,c49485434a985b2eb7c890feb6);c6faa8b6e64a16919b2b1f9897c1a5=Новый Соответствие();c6faa8b6e64a16919b2b1f9897c1a5.Вставить("Host",f36e65bbd43fcbe57caec8746a6dc);c6faa8b6e64a16919b2b1f9897c1a5.Вставить("Authorization","Bearer " + c4cc44e09414a3b97e7b2e3c5b6a9e0.Токен);ff5db685f4ccc86d613141faaf541=Новый HTTPЗапрос(c4cc44e09414a3b97e7b2e3c5b6a9e0.url,c6faa8b6e64a16919b2b1f9897c1a5);Попытка aceee9687c452d83babcc683b27b71=a14fc1a2fb742db83bd87eb51d9cb­ea.Получить(ff5db685f4ccc86d613141faaf541);ffd8212521940d9955393dedbbf481c=Новый Массив;ffd8212521940d9955393dedbbf481c.Добавить("lastChangeDate");ffd8212521940d9955393dedbbf481c.Добавить("updatedAt");Если aceee9687c452d83babcc683b27b71.КодСостояния=200 Тогда f68b22b2cea347f08aa474aa6cd8bc09=aceee9687c452d83babcc683b27­b71.ПолучитьТелоКакСтроку();fa3a6d94df841c389677a0aead25d9b=Новый ЧтениеJSON;fa3a6d94df841c389677a0aead25d9b.УстановитьСтроку(f68b22b2cea347f08aa474aa6cd8bc09);f4649a3e4004d64b740dfdf2ebfacd9=ПрочитатьJSON


Это к тому, что Ваша претензия = "Дареному коню и по зубам". По-моему это единственная функциональная обработка, которая отдается почти даром с открытым кодом. А на красоту - "Я художник, я так вижу" )))
5. bayselonarrend 2129 05.07.24 11:45 Сейчас в теме
(4)Вы что, шутите? Действительно нужно объяснять, что "красивый код" это не про цвета букв подсветки? Причем тут эти УИДы вместо названий, вы продаете обработку с абсолютно наипоршивейшим кодом, который делает три элементарных шага, при этом уже выглядит как неподдерживаемое нечто

"Дареному коню и по зубам"


О каком вообще "дареном коне" идет речь, вы её продаете. Вернее не продаете, потому что глядя на этот пример только сумасшедший это купит за 5 СМ

Это какая то огромная проблема сделать свой модуль аккуратным и написанным по стандартам, если вы продаете его за деньги? Или вы художник абстрактного жанра и видите красоту в полном хаосе? Это очень страшно, что кому-то необходимо на серьезе объяснять, что в коде должно быть форматирование, соблюдение максимальной длины строк, группировка блоков по смыслу, а ключевые слова должны писаться канонично, чтобы модуль не превращался в нечитаемый фарш


&НаКлиенте
Процедура ВБОстатки(Команда) 
    
    
    // "API:Для получения полного остатка следует указывать максимально раннее значение.Например, 2019-06-20   

    Остатки     = ВыполнитьГетЗапросВБ(Параметр);
    ТекущаяДата = Формат(Дата(2018,1,1),"ДФ=yyyy-MM-dd; ДЛФ=");    
    Этап        = 1;

    // Остатки     
    Индикатор("Wildberries","Запрос остатков", 0);    
    
    Параметр = Новый Структура;              
    
    Параметр.Вставить("Сервер", "statistics-api.wildberries.ru");
    Параметр.Вставить("url"   , "/api/v1/supplier/stocks?dateFrom=" + ТекущаяДата);  

    
    //Продажи  
    //https://statistics-api.wildberries.ru/api/v1/supplier/orders     
     
    ДатаНачала    = Формат(ПериодПродаж.ДатаНачала,"ДФ=yyyy-MM-dd; ДЛФ=");            
    ДатаОкончания = Формат(ПериодПродаж.ДатаОкончания,"ДФ=yyyy-MM-dd; ДЛФ=");  
    Продажи       = Новый Массив; 
    rrdid         = 0;

    Параметр = Новый Структура;  
    Параметр.Вставить("Сервер", "statistics-api.wildberries.ru");
         
    Пока Истина Цикл  

        Прогресс = Цел(Этап * 100 / этапы);

        Индикатор("Wildberries", "Запрос продаж", Прогресс);

        URL = "/api/v5/supplier/reportDetailByPeriod?dateFrom=" 
            + ДатаНачала 
            + "&dateTo=" 
            + ДатаОкончания 
            + "&limit=10000&rrdid=" 
            + Формат(rrdid,"ЧН=0; ЧГ=");

        Параметр.Вставить("url", URL);   

        Результат        = ВыполнитьГетЗапросВБ(Параметр);        
        КоличествоСтрок  = Результат.Количество();
        rrdid            = Формат(Результат[КоличествоСтрок-1].rrd_id, "ЧГ=0");  

        Для Каждого ЭлементРезультата Из Результат Цикл
            Продажи.Добавить(ЭлементРезультата);
        КонецЦикла;    

        Если КоличествоСтрок < 10000 Тогда    
            Прервать;         
        КонецЕсли;      
        
        Этапы     = Этапы + 1;    
        Этап      = Этап + 1;
        Прогресс  = Цел(Этап * 100 / Этапы);     
        
        Индикатор("Wildberries", "Ожидание готовности сервера 60 сек", Прогресс);         
        
        ПаузаНаСервере(60); 

        Этапы = Этапы + 1;  
        Этап  = Этап + 1;  
        
    КонецЦикла;        
    
    Этап     = Этап + 1;
    Прогресс = Цел(Этап * 100/этапы);

    Индикатор("Wildberries", "Формирование таблиц...", Прогресс);    
    ОбработатьОстаткиВБ(Остатки, Продажи);
    
    Элементы.ТЗСкладВБ.Заголовок             = "Остаток на " + Формат(ТекущаяДата(), "ДЛФ=D");
    Элементы.ТЗСкладВБСумма.ТекстПодвала     = Формат(ТЗ.Итог("СкладВБСумма"), "ЧДЦ=2");
    Элементы.ТЗВБ_ВРезерве.ТекстПодвала      = ТЗ.Итог("СкладВБРезерв");
    Элементы.ТЗСкладВБПродано.ТекстПодвала   = ТЗ.Итог("СкладВБПродано");
    Элементы.ТЗСкладВБ.ТекстПодвала          = ТЗ.Итог("СкладВБ");
	
КонецПроцедуры

Показать
6. asdfgcom 424 05.07.24 11:57 Сейчас в теме
(5)
Вы что, шутите?
- Конечно!
вы её продаете.
- 500р за обработку, набор рабочих ссылок на документацию 3х маркетплейсов, некрасивый, но рабочий код.
Это какая то огромная проблема сделать свой модуль аккуратным и написанным по стандартам,

Видимо, у Вас вагон времени, чтобы писать не на коленке. Или Ваши разработки имеют более высокую стоимость благодаря красоте кода? Тогда у Вас, конечно, больше времени для форматирования, расстановки комментариев. Соблюдения стандартов. Еще скажите, что надо использовать асинхронность и все это в фоне делать? Поверьте, большинство, делающее первые шаги в API маркетплейсов будут благодарны даже за мой "копрокод", как Вы изволили выразиться. Мне, например, было сложно найти по крупицам рабочую документацию. А если Вам фууу... мне как-то ровно.
Skif1989; +1 Ответить
7. bayselonarrend 2129 05.07.24 12:07 Сейчас в теме
(6)
Поверьте, большинство, делающее первые шаки в API маркетплейсов будут благодарны даже за мой "копрокод"


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


набор рабочих ссылок на документацию 3х маркетплейсов


Держите, только для вас - абсолютно бесплатно

https://openapi.wildberries.ru/
https://docs.ozon.ru/api/seller/
https://b2b-guide.lamoda.ru/#/ru/README
8. asdfgcom 424 05.07.24 12:19 Сейчас в теме
(7) Спасибо. Вы очень любезны. ;)
9. asdfgcom 424 09.08.24 18:57 Сейчас в теме
При получении данных о продажах WB помним, что "Технический перерыв в работе метода: каждый понедельник с 3:00 до 16:00."
Видимо готовят отчет о продажах за прошлую неделю.
Оставьте свое сообщение