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 (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".


Блог
#0002

Статті, які можуть вас також зацікавити

Що таке верстка сайту простими словами?
У цій статті ми розглянемо поняття верстки, її складові, а також її важливість та невід'ємну роль у веб-індустрії.
CMS або фреймворк - що вибрати?
CMS або фреймворк - що вибрати?
У наш час, коли технології все більше та більше проникають у наше повсякденне життя, актуальність питання "фреймворк чи CMS?" стає все більш очевидною.
Як підключити API Paypal?
Як підключити API Paypal?
PayPal - це один з найбільш інноваційних і популярних платіжних сервісів, який змінив уявлення про фінансові транзакції в інтернеті.
Що таке вебдодатки та як вони функціонують?
Є декілька думок з приводу вебдодатків – деякі вважають, що це всі сайти, а деякі, що до них відносяться лише ті, що дозволяють користувачам взаємодіяти з інтерфейсом та даними.
Зв'яжіться з нами
#0013

Готові розпочати? Повідомте нас про це!

Телефон:
+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

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

Будь ласка, заповніть наведену нижче форму, і наші спеціалісти зв'яжуться з вами якнайшвидше!
Обов'язкове поле
Обов'язкове поле
Обов'язкове поле
Обов'язкове поле