Что внутри
- Виджет выбора отделения Укрпочты: область → город → отделение
- Данные из официального Адресного классификатора Укрпочты
- Живой расчёт стоимости доставки через eCom API
- Выбранное отделение фиксируется в заказе
- Кеш справочников — чекаут не тормозит
- Совместимость с OpenCart 4.x
- Бесплатный
Ukrposhta Shipping для OpenCart 4 — модуль доставки Укрпочтой: виджет выбора отделения (область → город → отделение) в чекауте на базе официального Адресного классификатора и живой расчёт стоимости доставки по Украине через eCom API. Выбранное покупателем отделение фиксируется в заказе, поэтому менеджеру не приходится переспрашивать адрес в мессенджере.
Модуль бесплатный. Устанавливается как стандартное расширение OpenCart (ocmod) и не требует правок темы — виджет подключается через систему событий.
Как это работает — шаг за шагом
- Админ устанавливает расширение, нажимает «Установить» на странице настроек — модуль создаёт свои таблицы, события и cron-задания, — и синхронизирует области одним кликом.
- Вводятся Bearer eCom и индекс отправителя; кнопки «Проверить соединение» и «Тестовый тариф» сразу показывают, что ключ принят и API отвечает.
- Покупатель в чекауте выбирает доставку Укрпочтой — событие
footer/afterподключает виджет, и он ведёт по цепочке область → город → отделение. - Модуль запрашивает тариф в eCom API по индексам отправителя и получателя; если API недоступен — показывается тариф по умолчанию из настроек.
- После оформления событие
order.addOrder/afterсохраняет выбранное отделение (индекс, город, название) вместе с заказом. - Раз в неделю cron OpenCart обновляет кеш классификатора областей — справочник не устаревает.
Как это выглядит




Сколько стоит
Бесплатно. Скачиваете ukrposhta-1.1.2.ocmod.zip со страницы модуля и пользуетесь без подписок и платных версий.
Технические требования
- OpenCart 4.0.2 – 4.1.x
- PHP 7.4 и новее
- Договор eCom с Укрпочтой: Bearer-ключ выдаётся в кабинете eCom после подписания договора — он нужен для классификатора адресов и расчёта тарифа
- Для расчёта тарифа — почтовый индекс склада отправителя
Что под капотом
- Bearer-ключ шифруется перед записью в базу; в форме настроек показывается только маска «сохранено», без открытого значения.
- Классификатор кешируется в собственных таблицах (
up_regions,up_cities,up_offices) — чекаут читает локальную базу, а не дёргает API на каждый запрос. - Интеграция через события OpenCart (footer inject, order added) — без OCMOD-патчей контроллеров и правок шаблонов темы.
- Стандартные для методов доставки OpenCart настройки: гео-зона, класс налога, порядок сортировки.
- Вид виджета настраивается: акцентный цвет, радиус скругления, тема (авто/светлая/тёмная).
- Есть переключатель sandbox для работы с тестовой средой Укрпочты.
Как установить
- Скачайте
ukrposhta-1.1.2.ocmod.zipи установите через «Расширения → Установка расширений». - В «Расширения → Расширения → Доставка» найдите «Укрпочта — доставка» и нажмите Install.
- Откройте настройки, нажмите «Установить» — создадутся таблицы, события и cron-задания.
- Введите Bearer eCom и индекс отправителя, нажмите «Проверить соединение», затем «Синхронизировать области».
- Включите метод доставки и сохраните — виджет выбора отделения появится в чекауте.
История версий
- 1.1.2 (4.x) · 1.1.1 (3.x) · 1.0.1 (2.3) — август 2026
- Живой тариф Укрпочты наконец считается. Оказалось, что запрос
/domestic/delivery-priceне проходил вообще: измерения надо слать вparcels, а индекс отправителя — строкой (01001 превращался в 1001, и API отклонял запрос). До этого на витрине всегда показывалась фиксированная ставка из настроек. Проверено вживую на всех трёх платформах: Киев → Дрогобыч, 3 кг — 55 грн, с объявленной ценностью — 67,50, комиссия за наложенный платёж — 65. - 3.x 1.1.0 — 11 августа 2026
- Сборка для OpenCart 3 подтянута до уровня 2.3 и 4.x. Виджет теперь прячет в шаге доставки только те поля, которые сам и заполняет: имя и фамилия получателя остаются на экране — раньше они прятались вместе с адресом, и «Продолжить» упиралось в ошибку на невидимом поле. Область в нативном списке проставляется надёжно: OpenCart перезагружает перечень областей после смены страны, поэтому выбор повторяется несколько секунд, пока список не осядет. Если покупатель переключается на другого перевозчика, нативная адресная форма возвращается (раньше она оставалась скрытой навсегда). Выбранное отделение теперь штампуется в адрес заказа на сервере, а черновик отправления больше не создаётся для заказов с другим способом доставки. Без ключа Укрпочты работает офлайн-список областей, город и 5-значный индекс вводятся вручную. Нулевой тариф подписывается «оплата при получении», а не «0 ₴». Защита адреса перенесена на события OpenCart 3 — ядровые файлы чекаута не патчатся.
- 1.1.0 — 5 августа 2026
- Починен мёртвый полифил PHP 7.4: в файл полифилов был скопирован WordPress-гард
ABSPATH, которого в OpenCart не существует никогда — поэтому подключение файла обрывало весь запрос, функции не объявлялись, и страница умирала пустой. Теперь модуль реально работает на PHP 7.4. СобытиеaddOrderрегистрируется одним правилом с*— оно покрывает и 4.0.x, и 4.1.x (раньше писалось две строки, и на 4.0.2 событие дублировалось); старая строка убирается при установке. В админке убран второй контейнер уведомлений, из-за которого тосты о сохранении выводились не туда, а подсказка «первый запуск — нажмите Установить» больше не висит на уже установленном модуле. - 1.0.12 — 24 июля 2026
- Виджет подскроливается в видимую зону, как только выбрана Укрпочта — на мобильном он рендерится выше селектора методов доставки, и его легко было не заметить.
- 1.0.11 — 24 июля 2026
- Поиск города больше не падает молча без расширения
mbstring:mb_strlen/mb_strtolowerпод гардом, автодополнение работает на любом хостинге. - 1.0.10 — 23 июля 2026
- Сохранение контактных данных больше не сбрасывает уже выбранный способ доставки и оплаты.
- 1.0.8–1.0.9 — 23 июля 2026
- Адрес заказа заполняется точно тем, что выбрал покупатель (город из классификатора, область кириллицей, реальный индекс отделения), плюс ручной ввод индекса.
- 1.0.4 — 23 июля 2026
- Исправлена фатальная ошибка в расчёте способов доставки:
getQuote()загружал несуществующую в OpenCart 4.x catalog-модельlocalisation/geo_zone, из-за чего весь список способов доставки не появлялся («Требуется адрес доставки»). Гео-зона теперь проверяется прямым запросом кzone_to_geo_zone. Плюс: блок область → город → отделение появляется только после выбора метода «Укрпочта» (сначала метод — потом поля) и имеет демо-набор областей/городов/отделений для кликабельного теста без Bearer-ключа eCom. - 1.0.0 — июль 2026
- Первый публичный релиз: виджет область → город → отделение в чекауте, живой тариф по Украине через eCom API, шифрование ключа, еженедельная синхронизация классификатора через cron.
Частые вопросы
Нужен ли договор с Укрпочтой?
Да. Адресный классификатор и тариф авторизуются Bearer-ключом, который выдаётся после подписания договора eCom.
Надо ли править тему, чтобы виджет появился в чекауте?
Нет. Виджет подключается событием на footer/after — шаблоны темы не меняются, конфликтов с кастомными чекаутами по коду темы нет.
Создаёт ли модуль ТТН и наклейки?
Ещё нет. Создание отправления (ТТН) запланировано в следующем обновлении; текущая версия — выбор отделения и расчёт тарифа.
Что будет, если API Укрпочты недоступен?
Метод доставки не исчезнет из чекаута: покупателю покажется тариф по умолчанию, который вы задали в настройках.
Можно ли протестировать без боевого ключа?
Да, во вкладке «Ключи доступа» есть переключатель тестовой среды (sandbox).
Что произойдёт с данными после удаления модуля?
События и cron-задания убираются, а таблицы со справочником и сохранёнными выборами отделений намеренно сохраняются — после переустановки ничего не теряется.
Вопросы по модулю?
Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.
Пока ни одного отзыва. Будь первым — ниже.
Оставить отзыв
Отзыв модерируется перед публикацией — обычно это занимает до 24 часов.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Задать вопрос
Обычно отвечаем в течение 24 часов в рабочее время.
Покупка модуля
—