Інтеграція розрахунку вартості доставки через API

Інтеграція розрахунку вартості доставки через API

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Інтеграція розрахунку вартості доставки через API
Середній
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Інтеграція розрахунку вартості доставки через API

Покупець додає товар у кошик, переходить до оформлення — і тут тарифи на доставку виявляються несподівано високими. Кошик кидають. Знайома ситуація? Ми вирішуємо це за допомогою автоматичного розрахунку тарифів доставки через API, показуючи реальні вартості на етапі вибору. Наш досвід — понад 10 років розробки та 40+ інтеграцій для інтернет-магазинів різного масштабу. Наша компанія працює з 2014 року. Понад 10 років досвіду • 40+ інтеграцій • підвищення конверсії на 20-30%. Вартість інтеграції одного провайдера — від 5 000 грн. При 100 замовленнях на місяць додатковий прибуток від підвищення конверсії становить до 30 000 грн.

Уявіть: покупець уже вибрав товар, заповнив дані, але на етапі вибору способу доставки бачить повідомлення "розрахуйте окремо". Це змушує його піти. Наше рішення показує точну вартість і терміни від кількох служб прямо в кошику, в реальному часі. Ми інтегруємо API CDEK, Boxberry, Укрпошти та інших, уніфікуємо їхні відповіді та кешуємо результати для швидкого завантаження. Завдяки одночасним асинхронним запитам користувач чекає не більше 2–3 секунд. Це знижує відмови кошика на 20–30%, що при середньому чеку 1500 грн дає додаткові 300 грн з кожного замовлення. Автоматичний метод у 2-3 рази знижує кількість помилок порівняно з ручним.

Проблеми, які ми вирішуємо

Реалізація інтеграції розрахунку доставки через API — це не просто "смикнути ручку" провайдера. Ось типові складності:

  • Паралельні запити — якщо опитувати кожен сервіс послідовно, час очікування перевищує 10 секунд. Ми використовуємо одночасні асинхронні запити, скорочуючи затримку до відповіді найповільнішого провайдера. Це в 3-5 разів швидше за послідовні запити.
  • Таймаути та помилки — API можуть бути недоступні. Таймаут на кожен запит — 2 секунди. Якщо провайдер мовчить, його варіант не показується. Передбачено конфігурацію таймаутів, обробку винятків та логування.
  • Неуніфіковані формати — у кожного сервісу своя структура. Ми приводимо до єдиного об'єкта DeliveryOption, зручного на бекенді та фронтенді.
  • Кешування — повторний запит з тими самими параметрами не звертається до API. Ми зберігаємо результат на 15 хвилин, прискорюючи повторне відкриття. Зберігання результатів зменшує навантаження на сервіси у 2 рази.

Як працює одночасне опитування сервісів?

В основі — компонент DeliveryCalculator, який отримує список провайдерів і одночасно запускає обчислення. Для асинхронної роботи використовуємо Guzzle Pool або ReactPHP. Ось приклад реалізації:

class DeliveryCalculator { private array $providers; public function calculate(Cart $cart, Address $destination): Collection { $requests = collect($this->providers)->map(function ($provider) use ($cart, $destination) { return $provider->calculateAsync($cart, $destination); // повертає Promise }); return collect(async_all($requests)) // паралельне виконання ->flatten() ->sortBy('price') ->filter(fn($option) => $option->isAvailable()); } } 

Кожен провайдер повертає об'єкт DeliveryOption з уніфікованою структурою:

class DeliveryOption { public string $providerId; // 'cdek', 'boxberry', 'pochta' public string $serviceCode; // 'cdek_express', 'cdek_pvz' public string $name; // 'CDEK: Експрес' public string $type; // 'courier' | 'pvz' | 'postamat' public int $price; // у копійках public ?int $priceWithDiscount; public int $minDays; public int $maxDays; public ?string $pvzCode; // якщо потрібно вибрати точку public array $meta; // дод. дані провайдера } 

Чому важливо зберігати результати?

Зберігання результатів знижує навантаження на API сервісів і прискорює повторні запити. Ми використовуємо ключ {cart_hash}:{destination_hash} з часом життя 10–15 хвилин. При зміні складу кошика або адреси кеш скидається:

$cacheKey = "delivery:{$cart->hash()}:{$destination->hash()}"; return Cache::remember($cacheKey, 900, fn() => $this->fetchFromProviders($cart, $destination)); 

Кроки інтеграції API розрахунку доставки

  1. Вибір провайдерів та отримання API-ключів.
  2. Реалізація адаптерів для кожного сервісу.
  3. Налаштування одночасних запитів з таймаутами.
  4. Кешування результатів та скидання за подіями кошика.
  5. Відображення варіантів на сайті з вибором ПВЗ.
  6. Тестування та моніторинг.

Що входить у роботу

Етап Зміст Термін (роб. дні)
Аудит Аналіз поточного кошика та доступних провайдерів 0,5
Підключення API Інтеграція 2–3 провайдерів (CDEK, Boxberry, Укрпошта) 2–3
Паралельні запити Реалізація асинхронного опитування, таймаути, обробка помилок 1–2
Кешування Налаштування кешу та скидання за подіями кошика 0,5
UI Відображення варіантів з вибором ПВЗ на карті, терміни доставки 1–2
Тестування Перевірка реальними замовленнями, продуктивність 1

Разом: від 3 робочих днів для базового підключення.

Порівняння підходів до обчислення

Критерій Ручний метод Автоматичний (наше рішення)
Актуальність тарифів Низька (застарівають) Висока (реальний час)
Кількість провайдерів Не більше 1–2 5 і більше
Врахування габаритів Ні Автоматичний (з картки товару)
Помилки Висока ймовірність Мінімізовані (таймаути, кешування)
Конверсія Низька На 20–30% вища

Таким чином, наше рішення перевершує ручний метод у 2 рази за конверсією.

Типові помилки при інтеграції

  • Не обробляти габарити товарів. Якщо розміри не заповнені, ми підставляємо дефолтні — інакше провайдер може відмовити або завищити вартість.
  • Ігнорувати виробничий календар. Термін доставки "1–2 дні" без урахування свят вводить покупця в оману. Ми прив'язуємося до робочих днів.
  • Не тестувати з реальними кошиками. Часто помилка проявляється лише при великій кількості товарів або нестандартних адресах.

Згідно з документацією CDEK, таймаут запиту не повинен перевищувати 5 секунд.

Що ви отримуєте після інтеграції

  • Працюючий розрахунок вартості для 2–3 провайдерів
  • Паралельні запити з таймаутами
  • Кешування з автоматичним скиданням
  • Відображення варіантів на сайті з вибором ПВЗ та термінами
  • Документацію по коду та доступам
  • Гарантію на інтеграцію протягом 30 днів після здачі

Зв'яжіться з нами, щоб оцінити ваш проект. Ми надамо детальну оцінку термінів і вартості, а також проконсультуємо щодо вибору провайдерів. Замовте консультацію з інтеграції розрахунку доставки — ми допоможемо підібрати оптимальне рішення. У нашому проекті для одного клієнта ми інтегрували 5 служб доставки, і час відповіді не перевищував 2 секунд.