Получение данных продаж и остатков маркетплейсов 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 Россия Управленческий учет Платные (руб)

Подключите маркетплейсы Ozon, WB, АлиЭкспресс, ЛаМода и ЯндексМаркет к 1С. Удобное управление заказами, остатками и синхронизация данных из одного окна 1С для УНФ, УТ, КА, ERP. Единый интерфейс работы для всех площадок. Отправка остатков по сопоставленным товарам по расписанию, гибкая настройка отправки.

12415 руб.

23.01.2023    41898    339    196    

170

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

Интеграция маркетплейсов с 1С:УТ 10.3, КА 1.1, УПП 1.3. Автоматизация по FBS/FBO, управление заказами и синхронизация остатков для старых конфигураций. Поддержка RICH-контента OZON

28800 руб.

12.05.2021    98049    670    273    

306

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    56830    124    82    

119

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

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, МагнитЭкспресс (быв.Казань-Экспресс), Леруа Мерлен, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:КА 2, 1С:ERP Управление предприятием. Возможность подключить любые маркетплейсы. Анализ продаж ОZON. 30 дней БЕСПЛАТНОГО пользования!

3600 руб.

12.08.2021    36421    368    68    

160

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

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

119999 руб.

19.07.2024    2430    54    0    

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


При чем тут ассемблер? Этот код на 1С выглядит плохо как код на 1С
4. asdfgcom 425 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 2295 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 425 05.07.24 11:57 Сейчас в теме
(5)
Вы что, шутите?
- Конечно!
вы её продаете.
- 500р за обработку, набор рабочих ссылок на документацию 3х маркетплейсов, некрасивый, но рабочий код.
Это какая то огромная проблема сделать свой модуль аккуратным и написанным по стандартам,

Видимо, у Вас вагон времени, чтобы писать не на коленке. Или Ваши разработки имеют более высокую стоимость благодаря красоте кода? Тогда у Вас, конечно, больше времени для форматирования, расстановки комментариев. Соблюдения стандартов. Еще скажите, что надо использовать асинхронность и все это в фоне делать? Поверьте, большинство, делающее первые шаги в API маркетплейсов будут благодарны даже за мой "копрокод", как Вы изволили выразиться. Мне, например, было сложно найти по крупицам рабочую документацию. А если Вам фууу... мне как-то ровно.
Skif1989; +1 Ответить
7. bayselonarrend 2295 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 425 05.07.24 12:19 Сейчас в теме
(7) Спасибо. Вы очень любезны. ;)
9. asdfgcom 425 09.08.24 18:57 Сейчас в теме
При получении данных о продажах WB помним, что "Технический перерыв в работе метода: каждый понедельник с 3:00 до 16:00."
Видимо готовят отчет о продажах за прошлую неделю.
10. alex_4x 87 06.12.24 17:36 Сейчас в теме
А где можно прочитать про получение данных по индексируемым словам в магазинах OZON и Wildberries - как эти данные получить через API, какие так называемые фразы и еще это называют Кластеры - проиндексированы в карточке? И еще в Wildberries и в OZON есть поля в карточках номенклатуры, которые зависят от категории товара и там можно выбирать только из предложенных вариантов - как эти данные получить через API ?
Оставьте свое сообщение