Към съдържанието

Новости

1.4.0 — 2026-09-25

heading.anchorLabel

Спрямо 1.3.1.

Внимание при деплой

heading.anchorLabel
  • Конструктор: сменена сигнатура на __construct — при деплоя се чисти generated/.
  • Зависимости: require в composer.json: webcode/module-carrier: ^2.10 → ^2.12.

Комити (2)

heading.anchorLabel
  • 33888d0 Release 1.4.0
  • c854598 feat(admin): searchable sender office picker

Бележки

heading.anchorLabel
  • „Choose office“ в конфигурацията на куриера е поле с търсене (UI Select от Webcode_Carrier 2.12.0) вместо <select> с всички офиси: търсене по град, име, адрес или номер, подредба по град и име, етикет [номер] ГРАД — име, адрес.
  • Model\Config\Source\Office е изтрит — оттам идва сигналът „Конструктор“ горе; нов конструктор няма. Запазената стойност (office_id) не се променя.
  • Списъкът вече идва от синхронизираните офиси, не на живо от API-то на Evropat.

При деплой

heading.anchorLabel
  • Изисква webcode/module-carrier ^2.12. Чисти generated/ и пусни setup:static-content:deploy за adminhtml (заради JS-а в Carrier).

1.3.1 — 2026-09-24

heading.anchorLabel

Спрямо 1.3.0.

Внимание при деплой

heading.anchorLabel
  • Конструктор: сменена сигнатура на __construct — при деплоя се чисти generated/.
  • Setup: data/schema patch — изпълнява се срещу жива база при setup:upgrade.

Комити (1)

heading.anchorLabel
  • 83c379c fix: записът на куриера се възстановява сам (RecurringData), patch-ът е идемпотентен

Бележки

heading.anchorLabel
  • Записът на куриера в webcode_carrier_entity се възстановява сам. Ако таблицата е празна, а отметката на AddEvropatCarrierEntityPatch е останала в patch_list (модулът е бил изключван и таблицата е създадена наново), куриерът досега оставаше без запис, докато някой не махне отметката на ръка. Сега новият Setup\RecurringData създава липсващия запис при всеки setup:upgrade: неактивен, както и при първа инсталация.
  • AddEvropatCarrierEntityPatch::apply() е идемпотентен. При махната отметка и съществуващ запис вече не гърми на уникалния code.

При деплой

heading.anchorLabel
  • Уточнение към автоматичните предупреждения: никоя съществуваща сигнатура не е сменена. __construct е на новия клас Setup\RecurringData. В production mode е нужен setup:di:compile заради новия клас.
  • Съществуващият data patch не се пуска наново. RecurringData при всеки setup:upgrade чете записа по code и създава нов само ако липсва. Съществуващ запис, вкл. is_active, не се пипа.

1.3.0 — 2026-09-19

heading.anchorLabel

Спрямо 1.2.1.

Внимание при деплой

heading.anchorLabel
  • Зависимости: require в composer.json: webcode/module-carrier: ^2.8 → ^2.10.

Комити (3)

heading.anchorLabel
  • e33cbef Release 1.3.0
  • 4cb0916 chore(carrier-11): изисквай webcode/module-carrier ^2.10
  • b2877ec feat(carrier-11): отказ на товарителница при отказ на поръчка

Бележки

heading.anchorLabel

Модулът вече може да анулира товарителницата при отказ на поръчка.

Закача вече съществуващия ShippingLabel::cancel() (cancelshipment), който до момента нямаше нито един извикващ — тоест кодът стоеше, но никога не се изпълняваше.

Включва се от Магазини → Конфигурация → Webcode Solutions → Delivery Methods → Товарителници. Настройката е обща за всички куриери и е изключена по подразбиране — това издание не променя нищо от само себе си.

Отказ от куриера никога не блокира отказа на поръчката; причината влиза в коментарите на поръчката и в лога.

Внимание при деплой

heading.anchorLabel
  • Изисква webcode/module-carrier ^2.10 — констрейнтът е стегнат в това издание, защото модулът вече ползва LabelCancellationInterface, който идва с carrier 2.10.0. Деплой без него би дал фатал при зареждане на класа.
  • Нужен е cache:flush (заради новия observer и конфигурация в carrier 2.10.0).
  • Няма промени по схема и по static content.

Известен проблем

heading.anchorLabel

Не е минат реален отказ на жива товарителница при куриера (DoD т. 2–3) — покритието е unit. Първият жив отказ да се наблюдава.

1.2.1 — 2026-09-17

heading.anchorLabel

Спрямо 1.2.0.

Комити (1)

heading.anchorLabel
  • f53877d fix(payer): тестовете и диалогът следват правилото за предплатена поръчка

Бележки

heading.anchorLabel
  • Платец на куриерската услуга при предплатена поръчка. От Webcode_Carrier 2.9.4 политиката „Courier Service Payer = Recipient“ отстъпва на подателя за всяка поръчка, която не е с наложен платеж: клиентът вече е платил доставката онлайн и куриерът не бива да я събира втори път на гишето. Evropat наследява правилото в товарителницата (в брой: paymentWay 1 вместо 2; с договорен номер: 3 вместо 4).
  • Диалогът „Create Shipping Label“ вече предлага същия платец, който товарителницата ще запише — дотук при предплатена поръчка предлагаше „Recipient“. „Third party“ не се променя.
  • Правилото за самата товарителница идва от Carrier: с Carrier по-стар от 2.9.4 товарителница, издадена без диалога, остава за сметка на получателя.

При деплой

heading.anchorLabel
  • Без DI, схема или static промени — стига cache:flush.

1.2.0 — 2026-08-28

heading.anchorLabel

Спрямо 1.1.4.

Внимание при деплой

heading.anchorLabel
  • DI: di.xml е променен — при деплоя се чисти generated/.
  • Конструктор: сменена сигнатура на __construct — при деплоя се чисти generated/.
  • Static: стилове/JS/шаблони във view/*/web (или requirejs-config.js) са променени — при деплоя setup:static-content:deploy.
  • Зависимости: require в composer.json: webcode/module-carrier: ^2.0 → ^2.8.

Комити (6)

heading.anchorLabel
  • f683659 chore: изисквай module-carrier ^2.8 за споделената политика
  • e9ed522 Take the Evropat payer through the shared delivery-payment policy
  • 6081aa0 Use the shared carrier login and go-live guards
  • 76a9e8f Add the Evropat carrier logo
  • 54de4b3 Fix Evropat logout crash; hide the auto-filled contract number
  • 658efe2 chore: bump version field to next dev version 1.1.5

Бележки

heading.anchorLabel
  • Какво: платецът на куриерската услуга минава през общата политика на Webcode_Carrier — при „Recipient“ доставката излиза от сумата на наложения платеж (дотук клиентът я плащаше два пъти); безплатната доставка остава за сметка на подателя, „Third party“ не се пипа. Входът/изходът в Evropat и guard-ът при включване на метода ползват общите класове от Carrier (поведението е същото).
  • Поправка: изходът (Logout) от Evropat гърмеше с ArgumentCountError при всяко натискане — регресия от 1.1.3.
  • Конфигурация: полето „Client / Contract Number“ вече не се въвежда на ръка — попълва се от профила при вход и е скрито.
  • Checkout: Evropat показва логото си като Econt, Speedy и BoxNow.
  • Изисква Webcode_Carrier ^2.8.

Release-ът е попълнен на 17.09.2026 по историята в git; датата е тази на тага.

1.1.4 — 2026-08-25

heading.anchorLabel

Sender configuration from the Evropat client profile: the Sender Destination is a dropdown of the profile’s registered addresses (getclientaddresses), and a successful login now prefills the destination, sender name/phone/address and contract number. The API key is the only login credential. (Covers the sender-destination-select and login-prefill changes.)

1.1.3 — 2026-08-25

heading.anchorLabel

—

1.1.2 — 2026-08-25

heading.anchorLabel

Changes since 1.1.1

heading.anchorLabel
  • Config: register carriers/evropat/api_url as a hidden system.xml field, so the API base URL is manageable per environment via bin/magento config:set / env.php (no merchant UI; default stays in config.xml).
  • CI: drop derivable keys from .gitlab-ci.yml.

1.1.1 — 2026-08-19

heading.anchorLabel

Поправено

heading.anchorLabel

Теглото на пратката идва от поръчката, не от конфигурацията.

buildContent() подаваше default_weight винаги, когато няма override — тоест при масово генериране и при автоматичното създаване на товарителница. Реалното тегло на поръчката се игнорираше, пратката тръгваше с подценено тегло и куриерът дотаксуваше. Дефектът е невидим: нищо не гърми и нищо не влиза в лог.

Мерено на bilki.bg (Speedy, 30 дни, същият дефект): средно 1.41 кг, максимум 44.13 кг, а 764 от 1756 поръчки (43%) са над 1 кг при default_weight = 1.

Редът става override → тегло на поръчката → default_weight, по модела на BoxNow — единственият от петте куриера, който го правеше правилно. Същата поправка влезе в Speedy 2.2.3 и Econt 2.3.1.

1.1.0 — 2026-07-28

heading.anchorLabel

Delivery Methods config cleanup:

  • API base URL default живее в etc/config.xml (carriers/evropat/api_url), не като PHP const; override през config:set / env.php / DB (DEV URL остава override-only).
  • Креденшълите (номер/API ключ) вече не са required за Save на секцията; валидацията е бутонът Login & Configure.

1.0.0 — 2026-07-22

heading.anchorLabel

First tagged release — Evropat shipping on the shared Webcode_Carrier 2.0 pipeline. Uses Webcode_Base for the shared Console command. Requires carrier ^2.0 and webcode/module-base.