Заготовка для интеграции с сервисом Яндекс Еда

04.05.24

Интеграция - WEB-интеграция

Чтобы не делать с нуля, возьмите это расширение для интеграции с сервисом Яндекс Еда.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Заготовка для интеграции с сервисом Яндекс Еда:
.cfe 10,43Kb ver:3
25
25 Скачать (10 SM) Купить за 4 550 руб.

Взаимодействие с сервисом Яндекс Еда происходит на основании pull-модели. Т.е. сервис Яндекс Еда как клиент отправляет вам запросы, а вам, соответственно, необходимо разработать серверную часть в виде http-сервиса.

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

Я сделал расширение, в котором реализован работоспособный (проверенный Яндексом) http-сервис. В принципе, расширение универсально. Хотя оно тестировалась на УТ 11.5, с минимальными изменениями его можно применить в любой типовой или нетиповой конфигурации. В соответствующих местах кода даны комментарии на этот счет.

 

	//Здесь создание документа Заказ клиента в УТ11
	//Конфигурация может быть другой, в том числе не типовой
	//Документ (или даже не документ, а что-то еще) может быть другим
	//Все что Яндексу нужно от вас, это УИД созданного объекта
	//Переделайте этот блок в соответствии с вашими требованиями
	новзаказ=документы.ЗаказКлиента.СоздатьДокумент();
	новзаказ.Дата=текущаядата();
	новзаказ.Контрагент=справочники.Контрагенты.РозничныйПокупатель;
	новзаказ.Партнер=новзаказ.Контрагент.Партнер;
	новзаказ.Организация=справочники.Организации.НайтиПоНаименованию("Организация");
	новзаказ.Статус=перечисления.СтатусыЗаказовКлиентов.КОтгрузке;
	новзаказ.Приоритет=справочники.Приоритеты.НайтиПоНаименованию("Средний");
	новзаказ.Склад=справочники.Склады.НайтиПоНаименованию("Центральный склад");
	
	чт=новый ЧтениеJSON;
	чт.УстановитьСтроку(Запрос.ПолучитьТелоКакСтроку());
	вхд=ПрочитатьJSON(чт);
	
	для каждого стр из вхд.items цикл

 

	//В запросе передается ссылка на склад	
	//Идея Яндекса в том, чтобы качать не весь справочник товаров,
	//а только те, что относятся к определенному складу(магазину) что бы это ни значило.
	//Поэтому я передаю информацию по товарам, которые сейчас есть в остатках на данном складе 	
	//Вы можете переделать это в соответствии с вашими требованиями
	элементы=новый массив;
	ид=Запрос.ПараметрыURL["placeId"];
	строкауид=лев(ид,8)+"-"+сред(ид,9,4)+"-"+сред(ид,13,4)+"-"+сред(ид,17,4)+"-"+прав(ид,12);
	склад=справочники.склады.получитьссылку(новый УникальныйИдентификатор(строкауид));
    запрос=новый запрос;
	запрос.Текст=
	"ВЫБРАТЬ 
	|	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	|	ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
	|ИЗ
	|	РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки";
	запрос.УстановитьПараметр("Склад",склад);
	выб=запрос.Выполнить().Выбрать();
	пока выб.Следующий() цикл

 

Надеюсь, это позволит вам сделать свою интеграцию с сервисом Яндекс Еда быстро и легко.

Тестировал на 8.3.23.1739.

Т.к. это http-сервис, то управляемость(неуправляемость) форм значения не имеет.

 

UPD 15.03.2024

Исправлены выявленные ошибки

UPD 30.03.2024

Реализованы методы СтатусЗаказа и ОтменаЗаказа. Внесены исправления в соответствии с изменившейся спецификацией от Яндекс 

UPD 04.05.2024

Добавлен метод СоставЗаказа. Он располагается в одной ветке с отменой заказа. Для отмены используется DELETE, для состава заказа GET. 

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    3205    5    0    

11

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

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    35336    70    45    

30

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

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

57600 руб.

26.11.2024    2912    2    3    

5

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    19364    24    22    

20

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    4935    4    2    

5

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

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1162    7    2    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Torin 848 23.08.23 16:29 Сейчас в теме
+ Спасибо за "заготовку"!!! Приятно :)
2. zevsbog 16.11.23 15:09 Сейчас в теме
Здравствуйте, в этом расширении входит аутентификация по OAuth2.0. Точнее сказать описана ли у вас работа с токеном, с секретным ключом?
5. mkalimulin 1519 15.03.24 23:03 Сейчас в теме
(2) Добрый день! Реализацию проверки токена я оставил на ваше усмотрение. В заготовке токен не проверяется. Хотя проверяется само его наличие
3. paulpit 22 07.03.24 19:18 Сейчас в теме
А где взять документацию по API Яндекс ЕДА?
Можете прислать в ЛС хост, имя метода и входящие параметры методов - получить статусы заказов, меню ресторана.
4. mkalimulin 1519 15.03.24 23:01 Сейчас в теме
(3) Яндекс предоставляет документацию при заключении договора. А хост ваш. Они к вам "стучатся", не вы к ним
6. zhuravlev_as 480 25.04.24 22:06 Сейчас в теме
Правильно ли понимаю, что сам по себе Яндекс не отдает данные в http-сервис. Только по запросу. В частности на примере данных заказов. Мы должны указать id-заказа (номер) в предложенном расширении, чтобы можно было получить данные его состава?
Оставьте свое сообщение