Особливості налаштування та встановлення API-ключа EasyPost - Зображення №1
01

Особливості налаштування та встановлення API-ключа EasyPost

Зміст:
Як вам стаття?
Дякуємо за відгук!
5.0
618 Переглядів

EasyPost — логістична платформа, що надає унікальні інструменти та зручне API для автоматизації та оптимізації процесів відправки та відстеження вантажів. Її історія почалася у 2012 році, і сьогодні EasyPost є лідером у логістичних рішеннях для багатьох галузей.


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


Основні переваги використання EasyPost

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

Приклад під’єднання до API EasyPost

Для найбільш поширених мов програмування EasyPost надає набір SDK (Software Development Kit). Так, якщо ви користуєтесь 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, доки ви не під'єднаєте відповідний сервіс. Однак для створення label необхідно увімкнути цей сервіс. Навіть якщо ви намагаєтесь отримати лейбел USPS, вам потрібно перед тим під'єднати її.


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


Щодо валідації, SDK EasyPost автоматично обробляє помилки та генерує виключення, які розробник клієнтського коду повинен буде обробляти. Але повідомлення про помилки, які повертаються сервером EasyPost, можуть бути не завжди зрозумілими та містити лише інформацію про невалідні дані для збереженої сутності.


Якщо вам потрібно налаштувати підключення даного API, залиште, будь ласка, заявку на сторінці "Інтеграція та підключення API".

Наступна стаття Підключення до API Amazon (MWS)
Попередня стаття Як прискорити роботу вебсайту?
Давайте обговоримо ваш проєкт
Натискаючи кнопку "Відправити", ви погоджуєтеся з обробкою персональних даних. Детальніше
Блог
#0000

Читайте також інші статті в нашому блозі

Yii або Laravel: що краще для вашого проєкту?
02 Січ, 2024
Завдяки технологічному розвитку, писати на PHP код з нуля тепер не обов'язково: існує безліч фреймворків — готових моделей, «шаблонів» для програмних платформ, серед яких найпопулярнішими стали Yii2 і Laravel. У чому їхня відмінність і який із фреймворків для створення продукту обрати? Розповідаємо та порівнюємо структури в цьому матеріалі.
ПЕРЕГЛЯНУТИ СТАТТЮ
Особливості налаштування та встановлення API-ключа EasyPost - Зображення №5
Що таке PWA: детальна інструкція зі зразками коду
26 Лют, 2024
PWA, або Progressive Web Apps, — це вебдодатки, які поєднали в собі все найкраще з вебсайтів і мобільних додатків. Схожі на нативні за своїм функціоналом, вони працюють на будь-якому пристрої, де є веббраузери.
ПЕРЕГЛЯНУТИ СТАТТЮ
Особливості налаштування та встановлення API-ключа EasyPost - Зображення №6
Крос-браузерна верстка — що це означає?
25 Лип, 2023
Крос-браузерна верстка — це методика створення вебсторінок, яка забезпечує правильне та однакове відображення сайту в різних браузерах та їх версіях.
ПЕРЕГЛЯНУТИ СТАТТЮ
Навіщо потрібна CRM-система: поняття, переваги, різновиди
22 Лют, 2024
CRM — це програмне забезпечення для автоматизації та керування взаємодією з клієнтами. Тут в електронному вигляді зберігаються всі дані про історію замовлень та продажів, про кожного клієнта та його уподобання, а також про попередні взаємодії бренду зі споживачем.
ПЕРЕГЛЯНУТИ СТАТТЮ
 
Контакти
#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

Залишилися запитання?

Будь ласка, заповніть форму нижче і наші спеціалісти зв'яжуться з вами якнайшвидше!
Натискаючи кнопку "Відправити", ви погоджуєтеся з обробкою персональних даних. Детальніше.