Особенности настройки и установки API-ключа EasyPost - Изображение №1
01

Особенности настройки и установки API-ключа EasyPost

Содержание:
Как вам статья?
Спасибо за отзыв!
5.0
651 Просмотр

EasyPost — логистическая платформа, предоставляющая уникальные инструменты и удобное API для автоматизации и оптимизации процессов отправки и отслеживания грузов. Её история началась в 2012 году, и сегодня EasyPost занимает лидирующие позиции среди поставщиков решений для эффективной логистики, обслуживая множество бизнес-отраслей.


Одним из ключевых преимуществ API EasyPost является возможность компаниям получить доступ к разнообразным перевозчикам и выбрать наилучшие варианты доставки для их посылок. EasyPost предоставляет комплексный функционал с множеством возможностей, о которых мы расскажем ниже.


Основные преимущества использования Easypost

  • EasyPost предоставляет удобное API, позволяющее получать точные расчеты стоимости доставки прямо на вашем сайте. Теперь ваши клиенты или менеджеры смогут сразу видеть стоимость доставки и выбрать наиболее подходящий вариант.
  • С EasyPost вы можете легко создавать и печатать лейблы для посылок. Это позволит сэкономить время и упростить процесс подготовки груза к отправке.
  • EasyPost интегрируется с множеством популярных перевозчиков, включая Fedex, DHL, USPS, UPS, APC и других. Вы сможете получить доступ к различным вариантам доставки и выбрать наилучший вариант.
  • С помощью API отслеживания EasyPost вы и ваши клиенты сможете получать обновления о статусе доставки в режиме реального времени. Это обеспечит прозрачность и доверие к бизнесу.
  • EasyPost предоставляет возможность застраховать посылки, что защитит вас от потерь или повреждений в процессе доставки. 

Пример подключения API Easypost

Для самых широко используемых языков программирования EasyPost предосталяет SDK. Так, если вы используете PHP, — можете установить соответствующий пакет с помощью:


composer require EasyPost/EasyPost-php


EasyPost использует только один параметр — API-ключ — для подписи запросов. Перед началом работы с клиентским кодом необходимо сначала импортировать EasyPost:


use EasyPost;


Все классы находятся в пространстве имен EasyPost, поэтому для установки API-ключа для подписи запросов необходимо сделать следующее:


EasyPost\EasyPost::setApiKey($apiKey);


Теперь вы можете выполнять различные запросы, например, на создание адреса. Некоторые системы, наподобие ShipStation, могут динамически принимать только адрес получателя, при этом адрес отправителя берется из личного кабинета. В случае с EasyPost необходимо передать оба адреса. Предположим, в вашей системе уже есть сущность "заказ", у которой имеются поля, отвечающие за адрес доставки. В этом случае код для сохранения адреса в EasyPost будет выглядеть следующим образом:


$receiverAddress = EasyPost\Address::create([
   'verify' => ['delivery'],
   'company' => $order->getCompany(),
   'street1' => $order->getStreet(),
   'street2' => $order->getHouseNumber(),
   'city' => $order->getCity(),
    'state' => $order->getUserState(),
   'zip' => $order->getZip(),
    'phone' => $order->getUserPhone(),
    'email' => $order->getEmail(),
    'country' => $order->getCountryCode(),
]);


В результате, в ответе мы получаем тот же массив с дополнительными полями, включая "id" — идентификатор адреса в системе EasyPost, "verifications" — массив результатов верификации адреса, и другими. Аналогичным образом, необходимо указать и сохранить в переменную $senderAddress адрес отправителя.


Теперь давайте посмотрим, как создать саму посылку:


$parcel = EasyPost\Parcel::create([
    'weight' => $order->getWeight(),
    'height' => $order->getHeight(),
   'width' => $order->getWidth(),
   'length' => $order->getLength(),
]);


У нас есть три переменные: $receiverAddress, $senderAddress и $parcel. Они представляют собой экземпляры классов EasyPost\Address и EasyPost\Parcel соответственно. Пакет EasyPost самостоятельно кодирует и декодирует данные в формат JSON, поэтому объекты можно передавать в массивах. Например, когда мы готовы создать отправку, необходимо передать все полученные объекты в метод для её создания:


$shipment = EasyPost\Shipment::create([
    "to_address" => $fromAddress,
    "from_address" => $toAddress,
    "parcel" => $parcel,
    "options" => [
    "label_format" => 'PDF'
    ],
]);


Если всё хорошо, то в поле rates объекта $shipment будет находиться массив объектов, содержащих информацию о различных службах доставки. Предположим, что один из перевозчиков подходит нам, например, USPS с наименьшей стоимостью доставки, и мы хотим приобрести наклейку (label) для этой службы и получить PDF-файл для печати. В таком случае, нам нужно передать методу "buy" объекта $shipment следующее значение:


$shipment->buy($shipment->lowest_rate(['USPS']));


Метод lowest_rate будет находить самый дешевый метод доставки из всех предоставляемых. По умолчанию система предоставляет список методов доставки для USPS до тех пор, пока вы не подключите соответствующую службу. Однако для создания наклеек требуется подключение этой службы. Даже если вы пытаетесь получить наклейку USPS, вы должны предварительно подключить её.


Так как все наши объекты имеют уникальные идентификаторы в системе EasyPost, мы можем сохранять эти идентификаторы и в дальнейшем получать информацию об объектах непосредственно из EasyPost, используя метод "retrieve" для каждого из приведенных выше классов: EasyPost\Shipment, EasyPost\Address и EasyPost\Parcel. Кроме того, EasyPost предоставляет возможность создавать все 4 сущности одним запросом, передавая в метод create класса EasyPost\Shipment многомерный массив. Например, ключ "to_address" будет содержать массив данных адреса получателя, и так далее. Однако рассмотренный выше метод работы позволяет более гибко реагировать на возникающие ошибки валидации.


Относительно валидации, EasyPost SDK обрабатывает ошибки автоматически и генерирует исключения, которые разработчику клиентского кода нужно будет обрабатывать. Но сообщения об ошибках, возвращаемые сервером EasyPost, могут быть не всегда понятными и содержать только информацию о невалидных данных для сохраняемой сущности.


Если вам требуется настроить подключение данного API, оставьте, пожалуйста, заявку на странице "Интеграция и подключение API".

Следующая статья Подключению к API Amazon (MWS)
Предыдущая статья Как ускорить работу веб-сайта?
Давайте обсудим ваш проект
Нажимая кнопку "Отправить", вы соглашаетесь с обработкой персональных данных.Подробнее
Блог
#0000

Читайте также другие статьи в нашем блоге

Yii или Laravel: что лучше для вашего проекта?
02 Янв, 2024
Благодаря технологическому развитию, писать на PHP код с нуля теперь не обязательно: существует множество фреймворков. готовых моделей, «шаблонов» для программных платформ, среди которых самыми популярными стали Yii2 и Laravel. В чем их и какой из фреймворков для создания продукта выбрать? Рассказываем и сравниваем структуры в этом материале.
ПРОСМОТРЕТЬ СТАТЬЮ
Особенности настройки и установки API-ключа EasyPost - Изображение №5
Зачем нужна CRM-система: понятие, преимущества, разновидности
22 Фев, 2024
CRM — это программное обеспечение для автоматизации и управления взаимодействия с клиентами. В нем хранятся данные о заказах, клиентах, их предпочтениях и взаимодействии с брендом. CRM помогает увеличить прибыль и удовлетворить потребности клиента.
ПРОСМОТРЕТЬ СТАТЬЮ
Особенности настройки и установки API-ключа EasyPost - Изображение №6
Что такое PWA: подробная инструкция с примерами кода
26 Фев, 2024
PWA, или Progressive Web Apps, — это веб-приложения, объединившие в себе все лучшее из веб-сайтов и мобильных приложений. Подобные нативным по своему функционалу, они работают на любом устройстве, где есть веб-браузеры.
ПРОСМОТРЕТЬ СТАТЬЮ
Кроссбраузерная верстка — что это значит?
25 Июл, 2023
Кроссбраузерная верстка — это методика создания веб-страниц, которая обеспечивает корректное и одинаковое отображение сайта на различных браузерах и их версиях.
ПРОСМОТРЕТЬ СТАТЬЮ
 
Контакты
#0000

Готовы начать?
Свяжитесь с нами!

Телефон:
+ 38 (096) 880 99 00
Адрес:

Украина, Житомир
ул. Витрука 9в

График:

Пн-Пт 9.00 - 19.00

Телефон:
+48 570 337 815
Адрес:

Poland, Warsaw, 00-842
Łucka street 15/204

График:

Пн-Пт 9.00 - 19.00

 
 
Свяжитесь с нами
#0000

Остались вопросы?

Пожалуйста, заполните форму ниже и наши специалисты свяжутся с вами как можно быстрее!
Нажимая кнопку "Отправить", вы соглашаетесь с обработкой персональных данных. Подробнее.