Получение списка пунктов выдачи заказов Озон

13.02.22

Разработка - Универсальные функции

Использование API Озон для получения списка пунктов выдачи заказов (ПВЗ).

Всем привет!

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

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

Первый момент, с которым столкнется любой разработчик интеграции с Озон - это получение токена:

Функция ПолучитьТокенОзон() Экспорт
	//описание https://docs.ozon.ru/api/rocket/#tag/Token
	Токен = Неопределено;
	УрлСервиса = "https://xapi.ozon.ru/principal-auth-api/connect/token";
	client_id = "Principal_ххххххххххх_хххххххх-хххх-хххх-хххх-хххххххххххх"; //здесь у нас ID, полученный в ЛК Озон
	client_secret = "ххххххххххххххххх";//а здесь пароль, полученный там же
	Сообщение = "grant_type=client_credentials&client_id="+client_id+"&client_secret="+client_secret;
	
	WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
	WinHttp.Open("POST", УрлСервиса,0);
	WinHttp.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	WinHttp.SetRequestHeader("Content-Length", XMLСтрока(СтрДлина(Сообщение)));
	WinHttp.SetRequestHeader("Host", "xapi.ozon.ru");
	WinHttp.Send(Сообщение);
	Если WinHttp.Status<>200 Тогда //ошибка
		Возврат(Токен);
	КонецЕсли;
	ТекстОтвета = WinHttp.ResponseText();
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ТекстОтвета);
	Ответ = ПрочитатьJSON(ЧтениеJSON, Ложь);
	ЧтениеJSON.Закрыть();
	Токен = Ответ.access_token;
	
	Возврат(Токен);
КонецФункции

А теперь, собственно, получение самих ПВЗ:

Функция ПолучитьСписокПВЗ_Озон() Экспорт
	СписПВЗ = Новый Массив;
	
	Токен = ПолучитьТокенОзон();
	УрлСервиса = "https://xapi.ozon.ru/principal-integration-api/v1/delivery/variants";
	
	WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
	WinHttp.Open("GET", УрлСервиса,0);
	WinHttp.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	WinHttp.SetRequestHeader("Content-Length", "0");
	WinHttp.SetRequestHeader("Host", "xapi.ozon.ru");
	WinHttp.SetRequestHeader("authorization", "Bearer "+Токен);
	WinHttp.Send();
	Если WinHttp.Status<>200 Тогда //ошибка
		Возврат(СписПВЗ);
	КонецЕсли;
	ТекстОтвета = WinHttp.ResponseText();
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ТекстОтвета);
	Ответ = ПрочитатьJSON(ЧтениеJSON, Ложь);
	ЧтениеJSON.Закрыть();
	
	Для Каждого ТекАдреса Из Ответ.Data Цикл 
		Пвз			= Новый Структура("КодПункта, Адрес, Город, ГородФильтр, Координаты, Телефон, ОписаниеПроезда, ТипПВЗ");
		Пвз.КодПункта		= ТекАдреса.id;
		Пвз.Адрес		= ТекАдреса.address;
		Пвз.Город		= ТекАдреса.settlement;
		Пвз.ГородФильтр		= ТекАдреса.settlement;
		Пвз.Координаты		= "Ш."+ТекАдреса.lat+" Д."+ТекАдреса.long;
		Пвз.Телефон		= ТекАдреса.phone;
		Пвз.ОписаниеПроезда	= ТекАдреса.howToGet;
		Пвз.ТипПВЗ		= ТекАдреса.ObjectTypeName;
		СписПВЗ.Добавить(Пвз);
	КонецЦикла;
	
	Возврат(СписПВЗ);
КонецФункции

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

Вступайте в нашу телеграмм-группу Инфостарт

интеграция ОЗОН ПВЗ

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

28800 руб.

12.05.2021    122576    1052    274    

403

Маркетплейсы Разработчик Пользователь 1С:Предприятие 8 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, 1С: УНФ 3.1, 1С: Розница 2.3/2.4 по API с Wldberries, Яндекс.Маркет, OZON, ALI, VK, МегаМаркет и МагнитМаркет. Схемы работы: ВИТРИНА + ДОСТАВКА, ЗАКАЖИ И ЗАБЕРИ + ВИТРИНА, ДОСТАВКА СИЛАМИ ПРОДАВЦА, ЭКСПРЕСС-ДОСТАВКА. Модуль зарегистрирован в Реестре программного обеспечения, а также являемся технологическими партнерами МегаМаркет и Wildberries, что говорит о гарантиях использования решения.

70000 руб.

09.10.2020    67721    416    84    

140

Загрузка и выгрузка в Excel Маркетплейсы Разработчик Бухгалтер Пользователь 1С:Предприятие 8 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С:ERP.

5490 руб.

12.08.2021    47885    631    71    

226

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

Внешняя обработка "Выгрузка УПД для OZON и Яндекс" - это простое и удобное дополнение для УТ 11.5, УТ 11.4, БП 3.0, УНФ 3.0, УНФ 1.6, КА 2.4/2.5 и ERP 2.4/2.5, предназначенное для выгрузки УПД и УКД для отправки OZON (ООО "Интернет решения") и Яндекс.Маркет через ЭДО "Контур.Диадок" в формате XML по Приказу ФНС от 19.12.2023 № ЕД-7-26/970@ (с 01.04.2025)

8900 руб.

13.02.2020    37938    44    67    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ubnkfl 13.02.22 18:44 Сейчас в теме
Добрый день. В чем смысл использования ком-объекта?
Новый COMОбъект("WinHttp.WinHttpRequest.5.1")

Или это какой-то шаблон кода, который вы используете со времен 1С 7.7?
2. windsurf 55 13.02.22 19:53 Сейчас в теме
(1) Нет, не шаблон. Там была какая-то проблема с использованием HTTPСоединение/HTTPЗапрос - почему-то нормально через них не срабатывало. Возможно какой-то глюк именно с месторасположением и подключением сервера, а может проблема с сервисом с той стороны.
Мне требовалось решить задачу, что я и сделал.
3. ubnkfl 13.02.22 20:08 Сейчас в теме
(2)
Там была какая-то проблема с использованием HTTPСоединение/HTTPЗапрос

Понял, спасибо.
Для отправки сообщения требуется регистрация/авторизация