gifts2017

Расчёт стоимости и времени доставки сервисом edostavka.ru, примеры запросов

Опубликовал Трактор Трактор (Трактор) в раздел Программирование - Инструментарий

СДЭК предоставляет сервис расчёта стоимости доставки. В прикреплениях обработки, иллюстрирующие получение стоимости доставки от edostavka.ru

Версия 2014 года использует api 1.0. До этого нумерации версий у СДЭКа не было

Обработка 2014 года РаботаСоСДЭК.epf посылает запрос в формате json и показывает ответ. Обработка на управляемой форме, демонстрационная, типовых функций не использует. Работает во всех конфигурациях. Спрашивает у СДЭКа стоимость доставки по нескольким, не по всем, тарифам. Полный список тарифов есть в документации http://www.edostavka.ru/calculator.html

В данной обработке использованы следующие наработки http://infostart.ru/public/308198/ и http://infostart.ru/public/142092/ Спасибо авторам.

Особенностью СДЭКаявляется собственный классификатор адресов. Из-з чего его приходится стыковать с существующим классификатором. Говорят вместо классификатора адресов можно использовать почтовые индексы. Не проверял.

 

Версия от 2011 года

Сервис принимает запрос в виде списка направлений с указанием городов источников и получателей, веса, объёма и габаритов грузов и возвращает список тарифов по которым может быть выполнена доставка.

Представляемая обработка отправляет запрос только на одно направление. Это демонстрационная обработка, она не привязана к конкретной конфигурации.

edostavka.ru ожидает на входе POST запрос с заполненной переменной $_POST['xml_request'] В эту переменную должен быть сохранен XML фaйл в виде:

<?xml version="1.0" encoding="UTF-8"?>
<Request>
    <Direction Number="1" SenderCity="ВЛАДИВОСТОК" RecipientCity="МОСКВА" Weight="0.5" Volume="0.2" Height="10" Width="10" Length="10"/>
    <Direction Number="2" SenderCity="ВЛАДИВОСТОК" RecipientCity="НОВОСИБИРСК" Weight="0.5" Height="10" Width="10" Length="10"/>
</Request>
   

Отправить запрос в требуемом формате оказалось не так просто. Пример в прилагаемом файле.

За алгоритм Андрею Попову

газета Суть Времени

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

Наименование Файл Версия Размер Кол. Скачив.
РаботаСоСДЭК.epf
.epf 132,51Kb
28.10.14
27
.epf 2.0 132,51Kb 27 Скачать
edostavka_СтоимостьДоставки.epf
.epf 210,82Kb
28.10.14
191
.epf 1.0 210,82Kb 191 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Гена (genrih) 21.09.11 18:56
Есть вопросы по обработке, стоит похожая задача обмена 1с с сайтом посредством POST - запросов с подписанным ХМЛ содержимым в данной обработке судя из описания реализовано нечто подобное?
2. Гена (genrih) 21.09.11 18:59
Возможно ли было в данном примере использовать ЗаписьХМЛ для формирования ХМЛ тела запроса?
3. Трактор Трактор (Трактор) 21.09.11 21:03
genrih Возможно ли было в данном примере использовать ЗаписьХМЛ для формирования ХМЛ тела запроса?

Возможно, но в столь простом примере нецелесообразно.
4. Елена Ситникова (lesenoklenok) 10.10.14 16:41
Здравствуйте, Спасибо за обработку, но не пойму как запросить с существующими логином и паролем данные?
5. Трактор Трактор (Трактор) 10.10.14 16:49
(4) дык для калькулятора доставки логин не требовался. Может сейчас что изменили, но когда я занимался этой темой, то не требовался.
6. Елена Ситникова (lesenoklenok) 13.10.14 08:57
Да просто для одного направления почему, то неправильная цена указывается. Вот и думаю может это из-за какой то нашей индивидуальной скидки.
7. Трактор Трактор (Трактор) 13.10.14 10:30
для одного направления почему, то неправильная цена указывается

(6) lesenoklenok, не далее как в четверг наши ругались со СДЭКом по поводу этого калькулятора. Похоже да, у них калькулятор на сайте отличается от калькулятора через API.
8. Елена Ситникова (lesenoklenok) 13.10.14 11:38
(7) Трактор, да уж, вот так и настраивай с ними обмен.
9. Елена Ситникова (lesenoklenok) 17.10.14 14:16
Мне только что CDEK написал что так запрашивать доставку нельзя) нужно через json.
10. Трактор Трактор (Трактор) 17.10.14 14:52
(9) значит устарел интерфейс. Спасибо за информацию.
11. Трактор Трактор (Трактор) 21.10.14 14:33
(9) а вот и нифига
В описании API калькулятора тарифов http://www.edostavka.ru/clients/integrator.html даны "Примеры расчёта стоимости с помощью PHP POST-запроса и js Ajax-запроса"

Опять меня нагрузили этой темой.
12. integrator integrator (cek.integrator) 22.10.14 14:55
Если вы под "напрвалением" - подразумеваете тариф "Посылка, то он доступен только при условии подтверждения наличия у вас договора с интернет магазином.
Калькулятор на сайте http://www.edostavka.ru/calculator.html если выбирать, например, направление Москва-Новосибирск, так же не выдаст тариф Посылка, о чем есть сноска на этой же странице. Тариф Посылка может быть доступен, только при указании учетных данных, подтверждающих у вас наличие этого договора, при отправке запроса на север СДЭК. На сайте Cdek.ru тариф Посылка доступен только в Личном Кабинете клиента. На сайте (в приложении) клиента в калькуляторе чтобы был доступен тариф посылка необходимо указать учетные данные интграции (отличаются от логина/пароля в ЛК СДЭК). Более подробная информация по API калькулятора приведена на сайте http://www.edostavka.ru/clients/integrator.html. Использовать приведенные примеры обсолютно не обязательно. В любой среде разработки можно реализовать описанный в руководстве принцип посылки запросов к серверу.
Т.е. работа калькулятора на сайте и API калькулятора одинакова.
Трактор; +1 Ответить
13. Виталий Фантич (Boudybuilder) 24.02.15 20:51
У нас имеется автоматизированая обработка оформления заказов прямо из 1С, чтобы не лазить через веб интерфейс СДЭК и не создавать заказы там.
Выложить на сайт что ли? :)
14. Дмитрий Тарасов (tarassov) 18.03.15 15:36
(13) Boudybuilder,
Выложите пожалуйста!
15. Макс R (tratt) 25.04.15 09:20
(13) Boudybuilder, Да! выложите пожалуйста.
16. Виталий Варзиев (varziev) 25.08.15 15:04
17. Дмитрий Тарасов (tarassov) 25.08.15 15:17
(16) varziev,
Интересно.
Хотя уже успел давно свой вариант реализовать
18. Денис хххххх (specerp) 04.10.15 20:36
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа