Доставка · WordPress

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

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

Версия
v1.1.1
Совместимость
WordPress 5.6+ / WooCommerce 6.0+
Платформа
WordPress
Ukrposhta — выбор отделения и тариф для WooCommerce

Что внутри

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

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

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

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

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

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

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

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

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

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

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

Сколько стоит

Бесплатно. Плагин распространяется под лицензией GPLv2, код открыт на GitHub. Платных версий или подписок нет.

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

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

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

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

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

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

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

1.1.1 — август 2026
Исходные строки переведены на английский, украинская локализация уехала отдельным переводом в составе плагина — теперь модуль можно перевести на любой язык, а на украинском он выглядит так же. Подписи виджета в чекауте тоже стали переводимыми. Подготовлена сборка для каталога wordpress.org.
1.1.0 — август 2026
Живой тариф Укрпочты наконец считается: измерения надо слать в parcels, а индекс отправителя — строкой (01001 превращался в 1001, и API отклонял запрос). До этого в чекауте всегда показывалась фиксированная ставка. Комиссия за наложенный платёж больше не добавляется к предоплаченным заказам. Выбранное отделение видно в заказе, в письмах и на странице благодарности. Чекаут не пропускает заказ без выбранного отделения. Объявленная ценность стала опциональной. Поиск города понимает латиницу. Виджет прячется, пока не выбрана Укрпочта, и не появляется на странице благодарности.
1.0.1 — июль 2026
Работа на хостингах без mbstring: поиск городов и описание посылки больше не молчали. Планка требований снижена до WordPress 5.6 / WooCommerce 6.0 / PHP 7.4.
1.0.0 — июль 2026
Первый публичный релиз: пикер отделения (область → город → отделение) в чекауте и живой расчёт тарифа через eCom API с фолбеком на фиксированную ставку.

Частые вопросы

Можно ли отправлять наложенным платежом?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

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

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

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