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

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

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

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

В данной обработке использованы следующие наработки //infostart.ru/public/308198/ и //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>
   

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

За алгоритм URL преобразования спасибо Андрею Попову

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

18 Comments

  1. genrih

    Есть вопросы по обработке, стоит похожая задача обмена 1с с сайтом посредством POST — запросов с подписанным ХМЛ содержимым в данной обработке судя из описания реализовано нечто подобное?

    Reply
  2. genrih

    Возможно ли было в данном примере использовать ЗаписьХМЛ для формирования ХМЛ тела запроса?

    Reply
  3. Трактор
    genrih Возможно ли было в данном примере использовать ЗаписьХМЛ для формирования ХМЛ тела запроса?

    Возможно, но в столь простом примере нецелесообразно.

    Reply
  4. lesenoklenok

    Здравствуйте, Спасибо за обработку, но не пойму как запросить с существующими логином и паролем данные?

    Reply
  5. Трактор

    (4) дык для калькулятора доставки логин не требовался. Может сейчас что изменили, но когда я занимался этой темой, то не требовался.

    Reply
  6. lesenoklenok

    Да просто для одного направления почему, то неправильная цена указывается. Вот и думаю может это из-за какой то нашей индивидуальной скидки.

    Reply
  7. Трактор
    для одного направления почему, то неправильная цена указывается

    (6) lesenoklenok, не далее как в четверг наши ругались со СДЭКом по поводу этого калькулятора. Похоже да, у них калькулятор на сайте отличается от калькулятора через API.

    Reply
  8. lesenoklenok

    (7) да уж, вот так и настраивай с ними обмен.

    Reply
  9. lesenoklenok

    Мне только что CDEK написал что так запрашивать доставку нельзя) нужно через json.

    Reply
  10. Трактор

    (9) значит устарел интерфейс. Спасибо за информацию.

    Reply
  11. Трактор

    (9) а вот и нифига

    В описании API калькулятора тарифов http://www.edostavka.ru/clients/integrator.html даны «Примеры расчёта стоимости с помощью PHP POST-запроса и js Ajax-запроса»

    Опять меня нагрузили этой темой.

    Reply
  12. cek.integrator

    Если вы под «напрвалением» — подразумеваете тариф «Посылка, то он доступен только при условии подтверждения наличия у вас договора с интернет магазином.

    Калькулятор на сайте http://www.edostavka.ru/calculator.html если выбирать, например, направление Москва-Новосибирск, так же не выдаст тариф Посылка, о чем есть сноска на этой же странице. Тариф Посылка может быть доступен, только при указании учетных данных, подтверждающих у вас наличие этого договора, при отправке запроса на север СДЭК. На сайте Cdek.ru тариф Посылка доступен только в Личном Кабинете клиента. На сайте (в приложении) клиента в калькуляторе чтобы был доступен тариф посылка необходимо указать учетные данные интграции (отличаются от логина/пароля в ЛК СДЭК). Более подробная информация по API калькулятора приведена на сайте http://www.edostavka.ru/clients/integrator.html. Использовать приведенные примеры обсолютно не обязательно. В любой среде разработки можно реализовать описанный в руководстве принцип посылки запросов к серверу.

    Т.е. работа калькулятора на сайте и API калькулятора одинакова.

    Reply
  13. Boudybuilder

    У нас имеется автоматизированая обработка оформления заказов прямо из 1С, чтобы не лазить через веб интерфейс СДЭК и не создавать заказы там.

    Выложить на сайт что ли? 🙂

    Reply
  14. tarassov

    (13) Boudybuilder,

    Выложите пожалуйста!

    Reply
  15. tratt

    (13) Boudybuilder, Да! выложите пожалуйста.

    Reply
  16. varziev

    (14) tarassov, выложена уже http://yacrm.ru/services/integratsiya-1s-i-sdek/

    Reply
  17. tarassov

    (16) varziev,

    Интересно.

    Хотя уже успел давно свой вариант реализовать

    Reply
  18. specerp

    (14) tarassov,

    И набирает популярность http://1softbiz.ru/?p=486

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *