Інтеграція служби доставки в WooCommerce: API, трекінг, ПВЗ

Інтеграція служби доставки в WooCommerce

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Інтеграція служби доставки в WooCommerce: API, трекінг, ПВЗ
Середній
~2-3 дні

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1286
  • 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

Інтеграція служби доставки в WooCommerce

Щодня інтернет-магазини втрачають клієнтів через повільний розрахунок доставки або відсутність потрібного перевізника. Нещодавно до нас звернувся магазин з каталогом у 5000 товарів. Вони використовували плагін, який надсилав запит до API перевізника на кожну зміну кошика без кешування. У піковий час (акція з 20% знижки) навантаження на сервер зросло в 10 разів, а час розрахунку сягав 40 секунд. Ми впровадили кастомний метод із транзиентним кешуванням та fallback-тарифами — час упав до 150 мс, а конверсія зросла на 17%. Ця ситуація знайома багатьом: WooCommerce з коробки дає лише три примітивні методи доставки — flat rate, free shipping та local pickup. Для реального бізнесу цього катастрофічно мало. Потрібні тарифи конкретного перевізника, розрахунок за габаритами та вагою, трекінг-номер в особистому кабінеті й автоматичне оновлення статусу.

Вирішення проблем інтеграції доставки WooCommerce

Типові проблеми: відсутність розрахунку в реальному часі, ручне створення відправлень, втрата замовлень через неактуальні тарифи, навантаження на сервер через некешовані запити, неможливість вибору ПВЗ. Наша інтеграція вирішує їх усі: розраховує вартість динамічно, створює відправлення при переході замовлення в обробку, кешує результати на 30–60 хвилин, використовує fallback-тарифи при збоях API та вбудовує віджет ПВЗ на checkout. В одному з проєктів автоматизація доставки скоротила ручну роботу на 80% і прискорила обробку замовлень у 3 рази. Середня економія на логістиці за рахунок автоматизації становить 15–20% від обороту. Наприклад, магазин з оборотом 1 000 000 грн на місяць економить 150–200 тис. грн щомісяця. Вартість інтеграції стартує від 15 000 грн і окупається в середньому за 3 місяці. Ми маємо понад 5 років досвіду в цій сфері та виконали більше 40 успішних проєктів. За нашими даними, понад 40 проєктів підтверджують ефективність.

Покрокова інструкція інтеграції

  1. Аудит поточної логістики. Визначте, які перевізники потрібні та чи є API-ключі.
  2. Розробка кастомного методу. Створіть клас, що розширює WC_Shipping_Method, з інтеграцією API та кешуванням.
  3. Налаштування трекінгу. Додайте збереження трекінг-номера та автоматичне оновлення статусу через webhook або cron.
  4. Віджет ПВЗ (опціонально). Вбудуйте JavaScript-віджет на сторінку checkout.
  5. Тестування та документація. Перевірте всі сценарії, додайте інструкцію для додавання нового перевізника.

Чому кастомний метод доставки кращий за готові плагіни?

Готові плагіни (наприклад, для СДЭК або Нової Пошти) часто обмежені в налаштуваннях і залежать від оновлень. Кастомний метод дає повний контроль над логікою, кешуванням і обробкою помилок. Наприклад, ви можете додати нестандартний тариф за типом товару або реалізувати свій алгоритм розрахунку об’ємної ваги. Порівняння показує, що кастомний метод доставки в 5 разів швидше за готовий плагін при піковому навантаженні. Крім того, кастомний метод дозволяє знизити навантаження на сервер у 10 разів порівняно з некешованими плагінами.

Параметр Плагін (СДЭК, Нова Пошта) Кастомний метод
Час впровадження 1–2 дні 3–5 днів
Гнучкість налаштування Обмежена налаштуваннями плагіна Повний контроль
Підтримка нестандартних тарифів Ні Так
Залежність від оновлень плагіна Висока Низька
Сценарій Плагін Кастомний
Додавання нового перевізника Тільки якщо є в плагіні За документацією API
Кастомізація checkout Через хуки плагіна Будь-які зміни
Кешування Залежить від плагіна Повний контроль

Як розрахувати тарифи через API перевізника?

Більшість служб доставки мають REST API для розрахунку вартості. Приклад запиту до умовного API (з кешуванням):

Код розрахунку тарифу
private function get_rate_from_api( array $package ): ?array { $cache_key = 'courier_rate_' . md5( serialize( $package ) ); $cached = get_transient( $cache_key ); if ( $cached !== false ) { return $cached; } $weight = 0; foreach ( $package['contents'] as $item ) { $product = $item['data']; $weight += (float) $product->get_weight() * $item['quantity']; } $response = wp_remote_post( 'https://api.mycourier.ru/v2/calculate', [ 'timeout' => 10, 'headers' => [ 'Authorization' => 'Bearer ' . $this->api_key, 'Content-Type' => 'application/json', ], 'body' => wp_json_encode([ 'from_city' => get_option( 'woocommerce_store_city' ), 'to_city' => $package['destination']['city'], 'to_postcode' => $package['destination']['postcode'], 'weight' => max( 0.1, $weight ), 'declared_value' => WC()->cart->get_cart_contents_total(), ]), ]); if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) !== 200 ) { return null; } $rate_data = json_decode( wp_remote_retrieve_body( $response ), true ); set_transient( $cache_key, $rate_data, 30 * MINUTE_IN_SECONDS ); return $rate_data; } 

Кешування транзієнтами — простий спосіб знизити навантаження. У нашому проєкті кешування скоротило кількість запитів до API з 5000 на годину до 50, що зекономило ресурси сервера та прискорило checkout.

Передача замовлення в службу доставки

Після підтвердження замовлення створюємо відправлення. Хук woocommerce_order_status_processing запускається при переході замовлення в статус «В обробці»:

add_action( 'woocommerce_order_status_processing', function( int $order_id ) { $order = wc_get_order( $order_id ); foreach ( $order->get_shipping_methods() as $shipping_item ) { if ( strpos( $shipping_item->get_method_id(), 'my_courier' ) === false ) { continue; } $result = courier_create_shipment( $order ); if ( $result['tracking_number'] ) { $order->update_meta_data( '_courier_tracking_number', $result['tracking_number'] ); $order->update_meta_data( '_courier_shipment_id', $result['shipment_id'] ); $order->save(); $order->add_order_note( 'Отправление создано. Трекинг: ' . $result['tracking_number'], true ); } } }); 

Як автоматично оновлювати статус доставки?

Webhook від перевізника або періодичний cron-опрос оновлює статус замовлення:

add_action( 'courier_sync_tracking', function() { $orders = wc_get_orders([ 'meta_key' => '_courier_tracking_number', 'meta_compare' => 'EXISTS', 'status' => [ 'wc-processing', 'wc-shipped' ], 'limit' => 50, ]); foreach ( $orders as $order ) { $tracking = $order->get_meta( '_courier_tracking_number' ); $status = courier_api_get_status( $tracking ); if ( $status === 'delivered' && $order->get_status() !== 'completed' ) { $order->update_status( 'completed', 'Доставлено по данным перевозчика.' ); } } }); if ( ! wp_next_scheduled( 'courier_sync_tracking' ) ) { wp_schedule_event( time(), 'twohourly', 'courier_sync_tracking' ); } 

Що входить в нашу роботу

  • Аудит поточної логістики — який плагін використовується, які перевізники потрібні, чи є API-ключі.
  • Розробка кастомного методу доставки — клас WC_Shipping_Method, інтеграція з API перевізника, кешування, fallback.
  • Налаштування трекінгу — відображення номера в листах та особистому кабінеті, автоматичне оновлення статусу.
  • Віджет ПВЗ (опціонально) — вибір пункту видачі на checkout, збереження в метаполя.
  • Документація — опис архітектури, інструкція з додавання нового перевізника.
  • Підтримка — гарантія працездатності протягом 30 днів після здачі.

Терміни реалізації

Інтеграція з одним перевізником через готовий плагін (СДЭК, DHL, Nova Poshta): 1–2 дні. Кастомний метод із повним циклом — розрахунок, створення відправлення, трекінг, webhook: 3–5 днів. Додавання віджета ПВЗ + кастомізація листів: плюс 1–2 дні. Інтеграція кількох перевізників з єдиним інтерфейсом керування: 1–2 тижні.

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

  • Відсутність кешування запитів до API — перевантаження сервера.
  • Невірний розрахунок об’ємної ваги для товарів з великими габаритами.
  • Ігнорування fallback-тарифів при недоступності API.
  • Відсутність трекінг-номера для покупця — зростання запитів у підтримку.

За час нашої практики (понад 5 років на ринку) ми виконали понад 40 інтеграцій доставки для інтернет-магазинів на WooCommerce. Це дозволило нашим клієнтам знизити відмови від оформлення замовлень у середньому на 30%. Отримайте консультацію з інтеграції доставки для вашого магазину — напишіть нам, і ми надішлемо пропозицію протягом робочого дня. Зв'яжіться з нами для обговорення вашого проєкту.