Ukrposhta — выбор отделения и тариф для WooCommerce
Выбор отделения Укрпочты в чекауте (область → город → отделение) и живой тариф через eCom API. Бесплатно, код открыт на GitHub.
- Совместимость
- WordPress 5.6+ / WooCommerce 6.0+
- PHP
- 7.4 и новее
- Обновлено
- 24 сентября 2026
Модуль в работе — 44 секунды
Понятно и без звука: субтитры на украинском
Что умеет модуль
Технические требования
WordPress 5.6+ (протестировано до 7.0)
WooCommerce 6.0+ (протестировано до 10.7)
PHP 7.4+
Договор eCom с Укрпочтой: Bearer-ключ выдаёт ваш менеджер Укрпочты после подписания договора — он нужен и для классификатора адресов, и для тарифа
История версий
Pro-версия, активированная рядом с бесплатной копией с WordPress.org, больше не загружает код бесплатной копии с предупреждениями PHP на каждом запросе.
Удаление плагина теперь убирает и его настройки (вместе с токенами API Укрпочты) и кеш поиска городов.
Гость, который создаёт аккаунт при оформлении (или на странице подтверждения заказа), больше не получает отделение Укрпочты как адрес нового аккаунта.
Все версии (10)
Сохранённый адрес покупателя в аккаунте больше не заменяется отделением Укрпочты.
Отделение Укрпочты, выбранное ранее, больше не попадает в заказ с курьером или Новой Почтой (строка «Отделение Укрпочты» в письмах и на странице заказа).
Виджет отделений работает на блочном чекауте («Оформление заказа» блоком), где его не было совсем.
Исходные строки переведены на английский, украинская локализация уехала отдельным переводом в составе плагина.
Живой тариф Укрпочты наконец считается.
Работа на хостингах без mbstring: поиск городов и описание посылки больше не молчали.
Первый публичный релиз: пикер отделения (область → город → отделение) в чекауте и живой расчёт тарифа через 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 и порог бесплатной доставки от суммы заказа. Выбранное покупателем отделение видно прямо в заказе — отдельный блок «Укрпочта» с городом, отделением и индексом, а также строкой в письмах и на странице благодарности.
Как это работает — шаг за шагом
- Админ вводит Bearer eCom и индекс отправителя, добавляет метод «Укрпочта» в зону доставки.
- Покупатель в чекауте выбирает доставку Укрпочтой — появляется пикер область → город → отделение на базе официального Адресного классификатора.
- Плагин считает вес корзины и запрашивает тариф через эндпоинт
/domestic/delivery-price; если API недоступен — подставляется фиксированная ставка из настроек. - Если покупатель выбрал наложенный платёж, в тариф добавляется комиссия Укрпочты за него — и исчезает, как только он переключится на предоплату.
- Если сумма заказа превышает заданный порог — доставка становится бесплатной.
- Покупатель оформляет заказ — выбранный почтовый индекс отделения сохраняется в заказе и доступен админу для отправления.
Что под капотом
- Bearer-ключ хранится зашифрованным (at-rest), в форме настроек обратно в открытом виде не показывается.
- Справочник отделений кешируется в отдельной таблице
upwc_offices, список областей — в транзиенте: чекаут не дёргает API Укрпочты при каждом открытии. - Совместимость с HPOS (custom order tables) задекларирована официально; мета заказа снимается и на классическом чекауте, и на Store API (блочном) пути.
- Тариф учитывает вес товаров в корзине, объявленную ценность (по желанию) и комиссию за наложенный платёж — но только для тех способов оплаты, которые вы отметили как наложенный платёж.
- Выбранное отделение входит в пакет доставки WooCommerce, поэтому смена отделения или способа оплаты пересчитывает тариф, а не показывает закешированный.
- Поиск города понимает латиницу: «Drohobych» находит Дрогобыч.
- Translation-ready: текстовый домен и все строки готовы к переводу.
Как установить
- Скачайте
ukrposhta-shipping-for-woocommerce-1.2.7.zipи установите через «Плагины → Добавить новый → Загрузить плагин». - Активируйте плагин — таблица кеша отделений создастся автоматически.
- Перейдите в WooCommerce → Настройки → Доставка и добавьте метод «Укрпочта» в нужную зону.
- Введите Bearer eCom и индекс отправителя, сохраните.
- Включите метод — пикер отделения появится в чекауте.
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Можно ли отправлять наложенным платежом?
Да. В настройках есть поле «Способы оплаты = наложенный платёж» — впишите туда ID ваших платёжных методов (стандартный метод WooCommerce — cod). Для них плагин добавит в тариф комиссию Укрпочты за наложенный платёж. Создание самой ТТН с наложенным платежом — в следующем обновлении.
Почему тариф выше, чем на калькуляторе Укрпочты?
По умолчанию плагин передаёт сумму заказа как объявленную ценность — Укрпочта берёт за это процент, зато посылка застрахована. Это выключается одной галочкой в настройках.
Нужен ли договор с Укрпочтой?
Да. И Адресный классификатор, и расчёт тарифа авторизуются Bearer-ключом, который Укрпочта выдаёт после подписания договора eCom.
Работает ли с блочным чекаутом WooCommerce?
Пикер отделения таргетит классический чекаут. Мета заказа при этом снимается и на Store API (блочном) пути, а совместимость с cart/checkout blocks задекларирована.
Умеет ли плагин создавать ТТН и печатать наклейки?
Ещё нет. Создание отправления (штрихкод/ТТН), печать наклеек и наложенный платёж запланированы в следующем обновлении — после сквозной проверки на живом договоре.
Что будет, если API Укрпочты временно недоступен?
Чекаут не сломается: вместо живого тарифа подставится фиксированная ставка из настроек («Тариф по умолчанию»).
Можно ли протестировать без боевого ключа?
Да, в настройках есть переключатель Sandbox — плагин будет работать с тестовой средой dev.ukrposhta.ua.
Что останется после удаления плагина?
При удалении убираются таблица кеша отделений и опции плагина. Мета заказов (выбранные отделения) сохраняется — история доставок не теряется.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—


