Связаться
  • WordPress
  • Доставка
  • v1.2.7

Ukrposhta — выбор отделения и тариф для WooCommerce

Выбор отделения Укрпочты в чекауте (область → город → отделение) и живой тариф через eCom API. Бесплатно, код открыт на GitHub.

Совместимость
WordPress 5.6+ / WooCommerce 6.0+
PHP
7.4 и новее
Обновлено
24 сентября 2026

Модуль в работе — 44 секунды

Понятно и без звука: субтитры на украинском

Что умеет модуль

Функция Free
Выбор отделения Укрпочты прямо в чекауте WooCommerce ✔
Справочник на базе официального Адресного классификатора ✔
Живой расчёт стоимости доставки через eCom API ✔
Комиссия за наложенный платёж — только для наложенных заказов ✔
Выбранное отделение видно в заказе, письмах и на странице благодарности ✔
Кеш справочников для быстрого чекаута ✔
Совместимость с HPOS ✔
Бесплатный ✔

Как это выглядит

Выбор области в виджете Укрпочты в чекауте WooCommerce
Виджет появляется, как только покупатель выбирает доставку Укрпочтой
Выбранное отделение Укрпочты и живой тариф в итоге заказа
Цепочка пройдена — в итоге сразу живой тариф Укрпочты, а не фиксированная ставка
Настройки метода доставки Укрпочта в WooCommerce
Настройки метода: Bearer, индекс отправителя, тип услуги, объявленная ценность, наложенный платёж

Технические требования

  • WordPress 5.6+ (протестировано до 7.0)
  • WooCommerce 6.0+ (протестировано до 10.7)
  • PHP 7.4+
  • Договор eCom с Укрпочтой: Bearer-ключ выдаёт ваш менеджер Укрпочты после подписания договора — он нужен и для классификатора адресов, и для тарифа

История версий

v1.2.7 Текущая 24 сентября 2026

Pro-версия, активированная рядом с бесплатной копией с WordPress.org, больше не загружает код бесплатной копии с предупреждениями PHP на каждом запросе.

v1.2.6 24 сентября 2026

Удаление плагина теперь убирает и его настройки (вместе с токенами API Укрпочты) и кеш поиска городов.

v1.2.5 24 сентября 2026

Гость, который создаёт аккаунт при оформлении (или на странице подтверждения заказа), больше не получает отделение Укрпочты как адрес нового аккаунта.

Все версии (10)
v1.2.4 24 сентября 2026

Сохранённый адрес покупателя в аккаунте больше не заменяется отделением Укрпочты.

v1.2.3 24 сентября 2026

Отделение Укрпочты, выбранное ранее, больше не попадает в заказ с курьером или Новой Почтой (строка «Отделение Укрпочты» в письмах и на странице заказа).

v1.2.2 23 сентября 2026

Виджет отделений работает на блочном чекауте («Оформление заказа» блоком), где его не было совсем.

v1.1.1 август 2026

Исходные строки переведены на английский, украинская локализация уехала отдельным переводом в составе плагина.

v1.1.0 август 2026

Живой тариф Укрпочты наконец считается.

v1.0.1 июль 2026

Работа на хостингах без mbstring: поиск городов и описание посылки больше не молчали.

v1.0.0 июль 2026

Первый публичный релиз: пикер отделения (область → город → отделение) в чекауте и живой расчёт тарифа через eCom API с фолбеком на фиксированную ставку.

Полное описание модуля

Ukrposhta Shipping for WooCommerce — плагин доставки Укрпочтой для магазинов на WooCommerce. Покупатель выбирает отделение прямо в чекауте по цепочке область → город → отделение, а стоимость доставки считается вживую через официальный eCom API Укрпочты. Данные берутся из официального Адресного классификатора, поэтому список отделений всегда актуален, а выбранный почтовый индекс сохраняется в заказе.

Плагин полностью бесплатный. Код открытый — репозиторий на GitHub (catcodestudio/woocommerce-ukrposhta-shipping), лицензия GPLv2.

Как это выглядит для покупателя

После выбора метода «Укрпочта» в чекауте появляется виджет: покупатель выбирает область, потом город, потом конкретное отделение. Как только отделение выбрано — плагин запрашивает тариф в eCom API (с учётом веса корзины и индексов отправителя и получателя) и показывает реальную стоимость доставки. Акцентный цвет виджета настраивается под дизайн темы.

Что получает админ

Метод добавляется в зону доставки WooCommerce, а креденшелы глобальные — один Bearer на весь магазин, независимо от количества зон. В настройках: тестовая среда (sandbox dev.ukrposhta.ua), тип услуги (Стандарт или Express), тариф по умолчанию на случай недоступности API и порог бесплатной доставки от суммы заказа. Выбранное покупателем отделение видно прямо в заказе — отдельный блок «Укрпочта» с городом, отделением и индексом, а также строкой в письмах и на странице благодарности.

Как это работает — шаг за шагом

  1. Админ вводит Bearer eCom и индекс отправителя, добавляет метод «Укрпочта» в зону доставки.
  2. Покупатель в чекауте выбирает доставку Укрпочтой — появляется пикер область → город → отделение на базе официального Адресного классификатора.
  3. Плагин считает вес корзины и запрашивает тариф через эндпоинт /domestic/delivery-price; если API недоступен — подставляется фиксированная ставка из настроек.
  4. Если покупатель выбрал наложенный платёж, в тариф добавляется комиссия Укрпочты за него — и исчезает, как только он переключится на предоплату.
  5. Если сумма заказа превышает заданный порог — доставка становится бесплатной.
  6. Покупатель оформляет заказ — выбранный почтовый индекс отделения сохраняется в заказе и доступен админу для отправления.

Что под капотом

  • Bearer-ключ хранится зашифрованным (at-rest), в форме настроек обратно в открытом виде не показывается.
  • Справочник отделений кешируется в отдельной таблице upwc_offices, список областей — в транзиенте: чекаут не дёргает API Укрпочты при каждом открытии.
  • Совместимость с HPOS (custom order tables) задекларирована официально; мета заказа снимается и на классическом чекауте, и на Store API (блочном) пути.
  • Тариф учитывает вес товаров в корзине, объявленную ценность (по желанию) и комиссию за наложенный платёж — но только для тех способов оплаты, которые вы отметили как наложенный платёж.
  • Выбранное отделение входит в пакет доставки WooCommerce, поэтому смена отделения или способа оплаты пересчитывает тариф, а не показывает закешированный.
  • Поиск города понимает латиницу: «Drohobych» находит Дрогобыч.
  • Translation-ready: текстовый домен и все строки готовы к переводу.

Как установить

  1. Скачайте ukrposhta-shipping-for-woocommerce-1.2.7.zip и установите через «Плагины → Добавить новый → Загрузить плагин».
  2. Активируйте плагин — таблица кеша отделений создастся автоматически.
  3. Перейдите в WooCommerce → Настройки → Доставка и добавьте метод «Укрпочта» в нужную зону.
  4. Введите Bearer eCom и индекс отправителя, сохраните.
  5. Включите метод — пикер отделения появится в чекауте.

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Можно ли отправлять наложенным платежом?

Да. В настройках есть поле «Способы оплаты = наложенный платёж» — впишите туда ID ваших платёжных методов (стандартный метод WooCommerce — cod). Для них плагин добавит в тариф комиссию Укрпочты за наложенный платёж. Создание самой ТТН с наложенным платежом — в следующем обновлении.

Почему тариф выше, чем на калькуляторе Укрпочты?

По умолчанию плагин передаёт сумму заказа как объявленную ценность — Укрпочта берёт за это процент, зато посылка застрахована. Это выключается одной галочкой в настройках.

Нужен ли договор с Укрпочтой?

Да. И Адресный классификатор, и расчёт тарифа авторизуются Bearer-ключом, который Укрпочта выдаёт после подписания договора eCom.

Работает ли с блочным чекаутом WooCommerce?

Пикер отделения таргетит классический чекаут. Мета заказа при этом снимается и на Store API (блочном) пути, а совместимость с cart/checkout blocks задекларирована.

Умеет ли плагин создавать ТТН и печатать наклейки?

Ещё нет. Создание отправления (штрихкод/ТТН), печать наклеек и наложенный платёж запланированы в следующем обновлении — после сквозной проверки на живом договоре.

Что будет, если API Укрпочты временно недоступен?

Чекаут не сломается: вместо живого тарифа подставится фиксированная ставка из настроек («Тариф по умолчанию»).

Можно ли протестировать без боевого ключа?

Да, в настройках есть переключатель Sandbox — плагин будет работать с тестовой средой dev.ukrposhta.ua.

Что останется после удаления плагина?

При удалении убираются таблица кеша отделений и опции плагина. Мета заказов (выбранные отделения) сохраняется — история доставок не теряется.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль