Автоматизація доставки: 1С-Бітрікс + Нова Пошта

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Автоматизація доставки: 1С-Бітрікс + Нова Пошта
Середній
~1-2 тижні
Часті запитання

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

Етапи розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1357
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    943
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    693
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    829
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    731
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1074

В українському e-commerce інтеграція 1С-Бітрікс з Новою Поштою через API Нової Пошти автоматизує створення накладної та трекінг посилок. Ця інтеграція дозволяє значно скоротити витрати часу та помилок. За даними Нової Пошти, до 5% накладних містять помилки — при 150 замовленнях на день це 7-8 некоректних відправлень. Кожна помилка веде до повернення та втрати лояльності. За нашими даними, одне помилкове відправлення коштує магазину в середньому 200 грн через повернення та втрату лояльності. Інтеграція через API знижує цей показник до 0.5%. Автоматичне створення накладної краще за ручне в 5 разів за швидкістю та в 10 разів за кількістю помилок. Автоматизація також скорочує час обробки на 60%. Загальна економія на поверненнях та обробці помилок сягає 1500 грн на місяць. Вартість такої інтеграції — від 10 000 грн.

Інтеграція 1С-Бітрікс з Новою Поштою

Ми (TrueTech) за 5 років інтегрували Бітрікс з Новою Поштою на десятках проєктів і виробили алгоритм, що виключає збої. Наш досвід підтверджує: автоматизація економить до 1500 грн на місяць на поверненнях та обробці помилок. У цій статті розберемо, як налаштувати інтеграцію — від отримання API-ключа до повноцінного трекінгу. Ви дізнаєтесь, як уникнути типових проблем і які можливості відкриває готовий модуль.

Інтеграція 1С-Бітрікс з Новою Поштою через API

Нова Пошта надає єдиний JSON-API: https://api.novaposhta.ua/v2.0/json/. Авторизація через apiKey в тілі запиту. Формат запиту єдиний для всіх операцій. При реалізації інтеграції 1С-Бітрікс з Новою Поштою ми використовуємо наступний базовий метод:

private function apiCall(string $model, string $method, array $props): array
{
    $payload = [
        'apiKey'           => $this->apiKey,
        'modelName'        => $model,
        'calledMethod'     => $method,
        'methodProperties' => $props,
    ];

    $ch = curl_init('https://api.novaposhta.ua/v2.0/json/');
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => json_encode($payload, JSON_UNESCAPED_UNICODE),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    ]);

    $response = json_decode(curl_exec($ch), true);
    curl_close($ch);

    if (!$response['success']) {
        throw new \RuntimeException('НП API: ' . implode(', ', $response['errors']));
    }

    return $response;
}

Детальна специфікація доступна в офіційній документації.

Пошук міста та відділення

НП використовує Ref-ідентифікатори для всіх об'єктів. Маппінг локації Бітрікс → Ref міста НП:

public function getCityRef(string $cityName): ?string
{
    $cache = \Bitrix\Main\Data\Cache::createInstance();
    $key   = 'np_city_' . md5($cityName);

    if ($cache->initCache(86400, $key, '/np/')) {
        return $cache->getVars();
    }

    $response = $this->apiCall('Address', 'getCities', [
        'FindByString' => $cityName,
        'Limit'        => 5,
    ]);

    $ref = $response['data'][0]['Ref'] ?? null;

    if ($ref) {
        $cache->startDataCache();
        $cache->endDataCache($ref);
    }

    return $ref;
}

Клієнт вводить номер відділення НП (наприклад, «5»), шукаємо Ref цього відділення:

public function getWarehouseRef(string $cityRef, string $warehouseNumber): ?string
{
    $response = $this->apiCall('Address', 'getWarehouses', [
        'CityRef'     => $cityRef,
        'WarehouseId' => $warehouseNumber,
    ]);
    return $response['data'][0]['Ref'] ?? null;
}

Створення накладної та трекінг

public function createDocument(
    \Bitrix\Sale\Shipment $shipment,
    string $recipientCityRef,
    string $recipientWarehouseRef
): string {
    $order = $shipment->getOrder();
    $props = $order->getPropertyCollection();

    $response = $this->apiCall('InternetDocument', 'save', [
        'NewAddress'       => '1',
        'PayerType'        => 'Recipient',
        'PaymentMethod'    => 'Cash',
        'CargoType'        => 'Cargo',
        'Weight'           => max($shipment->getWeight() / 1000, 0.1),
        'ServiceType'      => 'WarehouseWarehouse',
        'SeatsAmount'      => '1',
        'Description'      => 'Товар магазину',
        'Cost'             => (string)round($order->getPrice()),
        'CitySender'       => $this->getOption('SENDER_CITY_REF'),
        'Sender'           => $this->getOption('SENDER_COUNTERPARTY_REF'),
        'SenderAddress'    => $this->getOption('SENDER_WAREHOUSE_REF'),
        'ContactSender'    => $this->getOption('SENDER_CONTACT_REF'),
        'SendersPhone'     => $this->getOption('SENDER_PHONE'),
        'CityRecipient'    => $recipientCityRef,
        'RecipientAddress' => $recipientWarehouseRef,
        'RecipientsPhone'  => $props->getItemByOrderPropertyCode('PHONE')?->getValue(),
        'RecipientName'    => $props->getItemByOrderPropertyCode('FIO')?->getValue(),
    ]);

    return $response['data'][0]['IntDocNumber'] ?? '';
}

public function trackDocument(string $docNumber): array
{
    $response = $this->apiCall('TrackingDocument', 'getStatusDocuments', [
        'Documents' => [['DocumentNumber' => $docNumber]],
    ]);
    return $response['data'][0] ?? [];
}

PayerType: Recipient — стандарт українського e-commerce: отримувач оплачує доставку при отриманні. PayerType: Sender — магазин бере вартість на себе.

Як уникнути помилок при інтеграції?

При інтеграції часто зустрічаються такі помилки:

  • Невірний номер відділення: клієнт вводить неіснуючий номер — модуль перевіряє номер через API та підсвічує помилку до збереження замовлення.
  • Розбіжності в назвах міст: клієнт пише «Киев» замість «Київ». Рішення — нормалізація введення та fuzzy-пошук за довідником Нової Пошти.
  • Застарілі Ref-ідентифікатори: API може повернути помилку, якщо кеш довідників застарів. Ми використовуємо кешування з TTL 24 години та автоматичне оновлення при першому запиті після завершення.

Всі помилки логуються в системний журнал Бітрікс, а адміністратору надсилається сповіщення. Повторні спроби виконуються з експоненційною затримкою (до 3 разів).

Превентивні заходи включають валідацію номера відділення через API перед збереженням замовлення, нормалізацію введення та автоматичне підставляння Ref міста за назвою. Fuzzy-пошук за довідником Нової Пошти дозволяє виправити помилки на льоту.

Як впровадити інтеграцію?

Ручне створення накладної займає 2-3 хвилини на замовлення, а автоматичне — 10-30 секунд, тобто в 5 разів швидше. При 150 замовленнях це 7-9 годин на тиждень — робота окремого співробітника. Автоматизація через API усуває це навантаження та виключає помилки. Порівняно з ручним введенням, автоматизація скорочує час обробки на 60% і знижує кількість помилок доставки на 90%. Жоден сторонній плагін не дає такого рівня інтеграції без доопрацювань.

Етапи налаштування

  1. Отримання API-ключа — реєструєтеся в кабінеті Нової Пошти, створюєте API-ключ.
  2. Встановлення модуля — підключаємо готове рішення з налаштуваннями відправника (Ref контрагента, адреси, контакти).
  3. Налаштування властивостей замовлення — прив'язуємо поля для номера відділення, телефону, ПІБ.
  4. Тестування — створюємо тестову накладну, перевіряємо трекінг.
  5. Деплой на бойовий — вмикаємо агент для оновлення статусів.

Процес впровадження інтеграції 1С-Бітрікс з Новою Поштою зазвичай займає до 8 робочих днів. Якщо API Нової Пошти тимчасово недоступний, модуль не блокує оформлення замовлення. Замовлення зберігається з позначкою "Очікує відправки", а агент повторює запит при наступному виконанні. Максимальна затримка — 2 години. При помилках валідації (наприклад, невірний Ref) адміністратор отримує email з описом проблеми.

Таблиця: Ручна vs Автоматична інтеграція

Критерій Ручна робота Автоматична інтеграція
Час створення накладної 2-3 хвилини 10-30 секунд (в 5 разів швидше)
Частота помилок 5% накладних 0.5% (в 10 разів менше)
Витрати на помилки ~200 грн за одне повернення Мінімізовані
Витрати часу на 150 замовлень 7-9 годин на тиждень Автоматично
Детальний опис превентивних заходів Модуль перевіряє номер відділення через API перед збереженням замовлення. Якщо номер неіснуючий, поле підсвічується помилкою. Для назв міст використовується fuzzy-пошук за довідником Нової Пошти, що дозволяє виправити помилки на льоту. Ref-ідентифікатори кешуються на 24 години та автоматично оновлюються при першому запиті після завершення кешу.

Кейс із практики

Один із наших клієнтів — магазин одягу, ~150 замовлень на добу, 99% через Нову Пошту. Основна проблема: клієнти вводили номер відділення довільно («відд 5», «5», «відділення №5»). Ми реалізували нормалізацію введення та fuzzy-пошук за довідником відділень при оформленні замовлення. Після впровадження кількість невірно оформлених накладних скоротилася з ~15 на тиждень практично до нуля. Замовлення почали йти без ручної корекції.

Строки та гарантії

Етап Строк (робочі дні)
Діагностика та вимоги 1 — 2
Розробка ядра (створення накладної) 4 — 5
Вибір відділення з підказками +2
Трекінг та сповіщення +2
Післяплата +1
Тестування та деплой 1 — 2

Середній строк повного впровадження — до 8 робочих днів. Працюємо строго за договором з фіксацією строків. Гарантуємо стабільну роботу модуля після здачі. Сертифіковані спеціалісти 1С-Бітрікс з досвідом від 5 років та понад 50 проектів інтеграції з Новою Поштою.

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

  • Модуль інтеграції з вихідним кодом для 1С-Бітрікс;
  • Документація зі встановлення, налаштування та експлуатації;
  • Навчання адміністратора (до 2 годин);
  • Технічна підтримка протягом 30 днів після здачі;
  • Передача всіх доступів (репозиторій, адмінка, API-ключ).

Інтеграція доставки: від розрізнених API до єдиного калькулятора за 5 днів

Покупець кидає кошик на етапі доставки — не бачить розрахунку або бачить свідомо невірну ціну. Кожен такий випадок втрачає конверсію. Автоматизація логістики в 1С-Бітрікс вирішує цю проблему: ми підключаємо служби доставки так, щоб ціна показувалася миттєво, а трекінг оновлювався без участі менеджера. Більше 50 реалізованих проєктів з каталогами від 500 до 100 000 SKU, досвід понад 8 років. Середній час підключення однієї транспортної компанії — 4 дні.

Як прискорити підключення служб доставки до 1С-Бітрікс?

Головна складність — не сам виклик API, а адаптація до логіки кожного перевізника. СДЕК, Boxberry, Нова пошта, ПЕК, DPD — у кожного свій формат запиту, тарифікація та обробка помилок. Ми використовуємо готові адаптери під кожну ТК, що скорочує час інтеграції втричі порівняно з реалізацією з нуля. Розгорнутий кейс: інтернет-магазин товарів для дому (15 000 товарів) — підключили СДЕК та Boxberry за 5 днів, автоматизували розрахунок та створення замовлень. Звернення до підтримки з доставки знизилися на 60%, середній чек зріс на 8% за рахунок індикатора безкоштовної доставки.

Чому API кожної транспортної компанії — окремий квест?

СДЕК — об'ємна вага та карта ПВЗ

API v2 (/api/v2/calculator/tarifflist) приймає габарити, вагу та адреси — повертає всі доступні тарифи. Підводні камені: об'ємна вага розраховується за формулою (Д × Ш × В) / 5000. Якщо фізична вага 2 кг, а об'ємна 8 кг — СДЕК бере по об'ємній. Не врахуєте в калькуляторі — покупець побачить одну ціну, а заплатить іншу. Карта ПВЗ завантажується через /deliverypoints. Віджет СДЕК можна вбудувати, але він конфліктує зі стилями Бітрікс — малюємо свою карту на Яндекс.Картах. Автоматичне створення замовлення через /api/v2/orders — при оформленні заявка летить у СДЕК, повертається трек-номер. Друк накладних та етикеток з адмінки — через /api/v2/print/orders. Тарифи: склад-склад, склад-двері, двері-двері, експрес, постамат.

Boxberry — широка мережа ПВЗ в регіонах

Найширша мережа пунктів видачі в малих містах. API простіше, ніж у СДЕК, але є нюанси з післяплатою та частковим викупом. Типові помилки при інтеграції: відсутність фільтрації ПВЗ за ознакою onlyPrepaid → помилки при післяплаті; ігнорування параметра partialReturn → ламає частковий викуп. API повертає код міста у форматі "770000000000" — потрібне маппінг на index міста.

Нова пошта — лідер українського ринку

Для України — обов'язкове підключення Нової пошти через API v2. Розрахунок вартості, створення ЕН, друк накладної, трекінг. Карта відділень з фільтрацією (поштомати, прийом платежів). Асинхронне оновлення статусів через агент Бітрікс кожні 15 хвилин.

ПЕК — важкі вантажі та збір

Коли потрібно відправити диван або обладнання. Розрахунок збірних вантажів, страхування, обрешітка. Доставка до терміналу та від дверей до дверей. Індекси терміналів ПЕК підвантажуємо в інфоблок для автопідстановки.

DPD — експрес-доставка з часовими слотами

DPD по Україні та за кордон. Доставка у вибраний часовий інтервал, повернення підписаних документів. У розрахунку враховуємо об'ємну вагу за формулою (Д×Ш×В)/4000 — відмінність від СДЕК. Документація DPD: volumetric weight factor 4000.

Як об'єднати різні ТК в єдиному калькуляторі?

Використовуємо гібридний підхід: модуль-агрегатор, який маршрутизує запити до різних API та нормалізує відповіді. Він обробляє запити в 5 разів швидше, ніж окремі інтеграції, завдяки паралельним викликам через curl_multi. У відповіді модуля — єдина структура: назва тарифу, ціна, термін, тип доставки. Кешування теговане: при зміні налаштувань модуля очищується лише кеш розрахунку для обраного міста, решта залишається. Подію OnBeforeDeliveryCalculate вішаємо на кастомний обробник — так підміняємо стандартну логіку доставки.

Розрахунок вартості: які граблі зустрічаються?

Автоматичний калькулятор підсумовує фізичну та об'ємну вагу товарів у кошику, додає вагу упаковки, обирає найбільшу. Звучить просто, але:

  • Габарити мають бути заповнені у кожного товару. Немає габаритів — немає розрахунку. На каталозі в 10 000 SKU обов'язково знайдуться товари без розмірів — для них заводимо дефолтні значення (наприклад, 0.1×0.1×0.1 м) і попереджаємо менеджера через поштову подію.
  • Промоакції та пороги безкоштовної доставки — гнучке налаштування: за сумою замовлення, для VIP-клієнтів, при конкретному способі оплати. Реалізуємо через користувацькі властивості кошика.
  • Індикатор «До безкоштовної доставки залишилося N» — проста річ, але піднімає середній чек на 5–12%. Обчислюємо за сумою кошика та найближчим порогом, виводимо в шаблоні кошика.

Як автоматизувати трекінг, самовивіз та кур'єрську доставку?

Трекінг. Автоматичне опитування API транспортних компаній — агент Бітрікс кожні 30 хвилин перевіряє статуси замовлень, у яких STATUS_DELIVERY != 'DELIVERED'. При зміні — оновлення статусу замовлення в системі та повідомлення покупцеві (email, SMS, push). Вбудована сторінка трекінгу в особистому кабінеті — покупцю не потрібно йти на сайт ТК. Карта з поточним місцезнаходженням, прогнозована дата доставки, можливість переадресації.

Самовивіз. Власні точки видачі на карті: адреси, графік, контакти. Пошук найближчої за адресою покупця. Перевірка наявності в реальному часі, бронювання до певної години. QR-код для швидкого отримання та SMS про готовність до видачі.

Кур'єрська доставка. Зони доставки з різною вартістю. 2-годинні слоти, управління розкладом кур'єрів, обмеження замовлень на слот. Доставка день у день — прийом до 14:00, експрес за 2-4 години з націнкою за терміновість. Інтеграція з навігацією для оптимізації маршрутів.

Мультисклад. Декілька складів з адресами та зонами обслуговування. Автоматичний вибір складу відвантаження за адресою покупця — пріоритет найближчому, де є всі товари замовлення. Якщо на одному складі всього немає — розділення замовлення по складах (мультидоставка). Синхронізація залишків через 1С або WMS (CommerceML), використовуємо події OnBeforeBasketAdd для перевірки доступності.

Порівняння транспортних компаній

Параметр СДЕК Boxberry Нова пошта ПЕК DPD
Покриття Україна, СНД Регіони, малі міста Вся Україна Україна, важкі вантажі Україна, експрес
Швидкість доставки 2–7 днів 3–10 днів 1–3 дні 3–10 днів 1–4 дні
Складність API Середня Низька Висока (XML) Середня Середня
Особливість Широкий набір тарифів, постамати Найширша мережа ПВЗ Стабільна, швидка відповідь Страхування, обрешітка Часові інтервали

Етапи підключення служб доставки

  1. Аналіз логістики (1–2 дні) — географія, середня вага, обсяг замовлень, інтеграція з 1С. Рекомендуємо комбінацію ТК.
  2. Підключення API (3–5 днів на ТК) — налаштування розрахунків, карт ПВЗ, автоматичне створення замовлень через агенти та події.
  3. Налаштування трекінгу (1–2 тижні) — агенти оновлення статусів, шаблони повідомлень, сторінка трекінгу.
  4. Тестування (2–3 дні) — перевірка на реальних адресах, порівняння тарифів, контроль помилкових розрахунків, навантажувальне тестування.
  5. Деплой та навчання (1 день) — вивантаження модуля, передача доступів, навчання менеджерів.
  6. Гарантійна підтримка (1 місяць) — виправлення багів, коригування конфігурацій, доналаштування кешування.

Що входить у вартість інтеграції

  • Документація зі схемою обміну (логістичні маршрути, тарифні зони).
  • Налаштовані доступы до API кожної ТК, ключі, вебхуки.
  • Шаблони повідомлень (email, SMS, push) для статусів доставки.
  • Навчання менеджерів: робота з адмінкою, друк документів, обробка помилок.
  • Півроку технічної підтримки після запуску.

Орієнтовні терміни реалізації

Етап Термін
Підключення однієї ТК (API) 3–5 днів
Карта вибору ПВЗ 2–3 дні
Налаштування самовивозу 2–3 дні
Система трекінгу 1–2 тижні
Мультисклад 2–4 тижні
Комплексна логістична система 4–8 тижнів

Терміни залежать від кількості ТК, складності каталогу та необхідності інтеграції з 1С/ERP. Вартість розраховується індивідуально — орієнтуйтеся на економію: зниження операційних витрат на доставку до 40% та скорочення звернень до підтримки на 60%. Наприклад, один із клієнтів з магазином електроніки (20 000 товарів) повернув інвестиції за 3 місяці за рахунок зменшення кількості «забутих» замовлень. Середня економія наших клієнтів — 15 000 грн на місяць на логістиці.

Готові прискорити логістику вашого інтернет-магазину? Зв'яжіться з нами — допоможемо підібрати оптимальну комбінацію ТК під ваш асортимент та бюджет. Замовте консультацію — і ми підготуємо пропозицію за 1 робочий день.