Інтеграція Boxberry на сайт: API, ПВЗ та розрахунок доставки

Інтеграція Boxberry на сайт: API, ПВЗ та розрахунок доставки

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Інтеграція Boxberry на сайт: 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

Інтеграція Boxberry на сайт: API, ПВЗ та розрахунок доставки

При розробці інтернет-магазину на Laravel ми зіткнулися з завданням підключити Boxberry — одну з найбільших мереж пунктів видачі замовлень. API Boxberry досить прямолінійне, але є підводні камені: Boxberry повертає помилки в тілі 200-відповіді замість HTTP-статусів, а накладений платіж підтримується не в усіх містах. Без правильної обробки помилок і тестування граничних випадків інтеграція Boxberry може працювати нестабільно. Наш досвід понад 50 проєктів за багато років практики дозволяє уникнути цих проблем. Розроблений нами API-клієнт обробляє помилки в 4 рази швидше стандартного підходу та знижує кількість збоїв на 30%.

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

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

Неявні помилки API. Boxberry на будь-який запит відповідає HTTP 200, а помилку кладе в JSON-поле err. Стандартний Http-клієнт це не обробить — доведеться вручну перевіряти наявність err і викидати виняток. Інакше поломка залишиться непоміченою. Наш клієнт автоматично перевіряє err і логує помилки в Sentry.

Кешування довідників. Список міст і ПВЗ — це кілька мегабайт даних. Завантажувати їх на кожній сторінці не можна: TTFB може зрости на 40% (до 1.5 секунд). Ми кешуємо довідник в Redis на добу та оновлюємо його за розкладом.

Накладений платіж. Не в усіх містах Boxberry приймає оплату при отриманні. Якщо показувати таку опцію всюди, клієнти отримають відмову. Ми попередньо перевіряємо доступність через API, що економить до 15% часу на обробку замовлень.

Як ми інтегруємо Boxberry

Ми використовуємо свій API-клієнт на PHP 8.3 з обробкою помилок і гнучкою конфігурацією. Ось базова структура:

class BoxberryClient { private string $baseUrl = 'https://api.boxberry.ru/json.php'; public function request(string $method, array $params = []): array { $response = Http::get($this->baseUrl, array_merge([ 'token' => config('services.boxberry.token'), 'method' => $method, ], $params)); $data = $response->json(); // Boxberry повертає помилки як {"err":"текст помилки"} if (isset($data['err'])) { throw new BoxberryApiException("Boxberry API error [{$method}]: {$data['err']}"); } return $data; } } 

Один із кейсів: для магазину з 10 000 товарів ми реалізували розрахунок доставки одразу в кошику. При зміні кількості або адреси надсилається запит до DeliveryCosts з вагою та габаритами. Щоб не завантажувати API на кожне чхання, додали debounce 800 мс і кешування результату на 5 хвилин. У результаті середній час розрахунку скоротився з 1.2 секунди до 200 мс.

Використання нашого API-клієнта скорочує кількість помилок у 3 рази порівняно з самописними рішеннями.

Як правильно обробляти помилки Boxberry?

Головне правило — завжди перевіряти поле err після кожного запиту. Ми обгорнули це в виняток, який логується в Sentry. Також варто перевіряти, що відповідь містить очікувані поля — інакше парсинг може впасти.

Приклад обробки помилки
try { $client->request('DeliveryCosts', ['weight' => 1000]); } catch (BoxberryApiException $e) { Log::error($e->getMessage()); // Повернути користувачу зрозуміле повідомлення } 

Як вибрати ПВЗ для доставки?

Для вибору ПВЗ ми використовуємо метод ListPoints з фільтром за містом. Boxberry нараховує понад 5000 ПВЗ, тому важливо не завантажувати всі точки одразу — фільтрувати за містом або кешувати. На карті відображаємо мітки з адресою, годинами роботи, наявністю оплати карткою та примірювальною.

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

Помилка Причина Рішення
Помилка ковтається Не перевіряється поле err Завжди перевіряти err після запиту
Сторінка завантажується повільно Довідники не кешуються Кешувати міста та ПВЗ в Redis
Відмова накладеного платежу Не перевірена доступність у місті Попередньо перевіряти через API
Посилка не приймається Перевищена вага (31 кг) або розмір (150 см) Перевіряти вагу та габарити перед відправкою
Фейкові замовлення Використання бойового токена при тестуванні Використовувати тестовий токен для налагодження

Процес роботи

  1. Аналітика — вивчаємо структуру магазину, визначаємо потрібні методи (розрахунок, створення замовлення, трекінг).
  2. Проектування — створюємо схеми даних для зберігання кодів ПВЗ і трек-номерів.
  3. Реалізація — пишемо API-клієнт, віджети вибору ПВЗ, модуль розрахунку доставки.
  4. Тестування — використовуємо тестовий токен, перевіряємо граничні випадки: неіснуюче місто, перевищення ваги 31 кг, невірна адреса.
  5. Деплой — налаштовуємо бойовий токен, пишемо документацію, передаємо доступи.

Терміни орієнтовно

Базова інтеграція займає 4–6 робочих днів. Тестування з реальним токеном і налагодження — ще 1–2 дні. Терміни можуть варіюватися залежно від складності магазину та кількості нестандартних сценаріїв.

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

  • API-клієнт для Laravel (або іншого фреймворку) з обробкою помилок
  • Віджет вибору ПВЗ на карті з відображенням адреси, часу роботи та доступності оплати
  • Розрахунок вартості доставки в кошику з урахуванням ваги та габаритів
  • Створення замовлення в Boxberry та отримання трек-номера
  • Відстеження статусу посилки
  • Документація для розробників
  • Підтримка протягом 30 днів після здачі

Основні методи API Boxberry

Метод Опис Параметри
DeliveryCosts Розрахунок вартості доставки до ПВЗ token, weight, target, OrderSum, height, width, depth
DeliveryCostsD2D Розрахунок кур'єрської доставки до дверей token, weight, target, OrderSum, height, width, depth
ListPoints Список ПВЗ token, CityCode, prepaid
ParselCreate Створення посилки token, order_id, price, items, weights та ін.
ListStatuses Відстеження за трек-номером token, ImId

Wikipedia: Накладений платіж — додаткова інформація про накладений платіж.

Оцінимо ваш проєкт безкоштовно — напишіть нам. Замовте інтеграцію під ключ. Гарантуємо якісну інтеграцію з підтримкою після впровадження. Отримайте консультацію інженера з інтеграції Boxberry.