img
scroll
#

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

Uk Ru En
Статья
#0002

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

Connect EasyPost API

Основные преимущества использования 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".



Блог
#0002

Статьи, которые могут вас также заинтересовать

Какую CMS выбрать для интернет-магазина?
Content Management System (CMS), также называемая "движком", является эффективным инструментом, способствующим упрощению процесса управления контентом веб-сайта.
Кроссбраузерная верстка - что это значит?
Кроссбраузерная верстка - что это значит?
Кроссбраузерная верстка – это методика создания веб-страниц, которая обеспечивает корректное и одинаковое отображение сайта на различных браузерах и их версиях.
Сколько стоит создание интернет-магазина?
Сколько стоит создание интернет-магазина?
Создание интернет магазина требует серьезного подхода, знаний в области веб-разработки, UI/UX дизайна, настройки сервера и работы с базой данных.
Наш опыт: ресторанное дело и доставка еды
В сфере общественного питания, особенно когда компания пользуется популярностью, систематизация заказов и предложений для покупателей играет важнейшую роль.
Свяжитесь с нами
#0013

Готовы Начать? Дайте нам знать!

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

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

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

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

Пн-Пт 9.00 - 19.00

График:
Свяжитесь с нами
#0000

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

Опишите свою проблему, заполните форму ниже и наши специалисты помогут Вам!
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле