Skip to content

Release 3.3.1#174

Merged
GytisZum merged 38 commits into
mainfrom
release-3.3.1
Jun 30, 2026
Merged

Release 3.3.1#174
GytisZum merged 38 commits into
mainfrom
release-3.3.1

Conversation

@GytisZum

Copy link
Copy Markdown
Collaborator

No description provided.

MarijusDilys and others added 30 commits November 19, 2025 10:36
Issue: When discount codes are applied, the COD label shows incorrect goods price
because discount is subtracted twice from order total.

Root cause: createNonDistributedShipment method was subtracting order discount
from order.total_paid, which already includes all discounts.

Solution: Removed duplicate discount calculation in createNonDistributedShipment
method. The order.total_paid value correctly reflects the final amount customer pays.

Also fixed syntax error on line 283 (removed stray character).

DGS-410
…alculation

DGS-410 Fix double discount calculation in COD label goods price
… calls (#157)

Add null coalescing operator to prevent PHP 8.1 deprecation warning when
null is passed to preg_replace() in AddressAdapter.php on lines 91, 123, 156.

Co-authored-by: Tadas Labutis <tadaslabutis@Tadas-Labutis.local>
…datory (#158)

Enable DPD Predict SMS service by setting predict=y on all shipment
creation requests. Some DPD client accounts (notably Latvia) require
this parameter, causing shipment creation to fail without it.

Co-authored-by: Tadas Labutis <tadaslabutis@Tadas-Labutis.local>
…#155)

* update large parcel update logic and cron job to ensure it will not time out

* fix Poland parcel shops and various null pointer errors (#156)

* fix Poland parcel shops and various null pointer errors

- Add logger argument to ParcelTrackingEmailHandler service definitions
- Fix null pointer errors when accessing parcel shop arrays
- Fix postcode formatting for PUDO return shipments (strip hyphens)
- Add null checks for selectedPudo in admin template
- Change frontend message from "No pickup points found" to "Select a city to view pickup points"
- Update console command to lazy-load services from module container
- Register console command with PrestaShop's Symfony container

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix dpdbaltics JS variable undefined on standard checkout

The dpdbaltics JS variable was only defined inside the OPC module
conditional block, causing ReferenceError on standard checkout when
pudo.js references dpdbaltics.isOnePageCheckout. This prevented
PUDO pickup point selection from working on any PS version without
an OPC module installed.

---------

Co-authored-by: Tadas Labutis <tadaslabutis@Tadass-MacBook-Air.local>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Tadas Labutis <tadaslabutis@Tadas-Labutis.local>

* DGS-414 Fix pudo display and save data overwrite in backoffice order view (#160)

* fix Poland parcel shops and various null pointer errors

- Add logger argument to ParcelTrackingEmailHandler service definitions
- Fix null pointer errors when accessing parcel shop arrays
- Fix postcode formatting for PUDO return shipments (strip hyphens)
- Add null checks for selectedPudo in admin template
- Change frontend message from "No pickup points found" to "Select a city to view pickup points"
- Update console command to lazy-load services from module container
- Register console command with PrestaShop's Symfony container

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix dpdbaltics JS variable undefined on standard checkout

The dpdbaltics JS variable was only defined inside the OPC module
conditional block, causing ReferenceError on standard checkout when
pudo.js references dpdbaltics.isOnePageCheckout. This prevented
PUDO pickup point selection from working on any PS version without
an OPC module installed.

* DGS-414 Fix pudo display bug and save data overwrite

- Fix backoffice order view not showing parcelshop info when customer
  city differs from parcelshop city by looking up shop by pudo_id first
  instead of gating it behind city-based search results
- Fix savePudoOrder overwriting correct parcelshop city/street/postcode
  with customer address data by using dpd_shop data as source of truth
- Fix Lithuanian translation "laivyba" -> "siuntimas"
- Fix Latvian translation "kuģniecība" -> "piegāde"

* DGS-414 Add changelog entry for v3.3.1

---------

Co-authored-by: Tadas Labutis <tadaslabutis@Tadass-MacBook-Air.local>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Tadas Labutis <tadaslabutis@Tadas-Labutis.local>
Co-authored-by: Tadas Labutis <tadaslabutis@MacBookAir.localdomain>
Co-authored-by: Gytautas Zumaras <96050852+GytisZum@users.noreply.github.com>

---------

Co-authored-by: Gytautas Zumaras <gytautaszumaras@Gytautass-MacBook-Pro.local>
Co-authored-by: TLabutis <tadas.labutis@invertus.eu>
Co-authored-by: Tadas Labutis <tadaslabutis@Tadass-MacBook-Air.local>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Tadas Labutis <tadaslabutis@Tadas-Labutis.local>
Co-authored-by: Tadas Labutis <tadaslabutis@MacBookAir.localdomain>
Added placeholder option to street dropdown requiring explicit selection
before loading PUDO points, preventing customer confusion from unintended
pre-selection.
* add timeframes to request

* fix

* remove backslash
The city dropdown change event handler was commented out,
preventing parcel point reload when switching cities.
The city dropdown change event handler was commented out,
preventing parcel point reload when switching cities.

Co-authored-by: Tadas Labutis <tadaslabutis@Tadas-Labutis.local>
* Fix pudo pickup points not reloading on city change

The city dropdown change event handler was commented out,
preventing parcel point reload when switching cities.

* Fix admin pudo pickup point display for non-LT orders

The admin order page showed "No pickup point selected" for orders
with delivery addresses outside Lithuania (e.g. Poland). Two issues:

1. Country code was derived from cart context which fell back to
   WEB_SERVICE_COUNTRY (LT) instead of the order's delivery address.
2. ParcelShopRepository::getShopsByShopId() used INNER JOIN on
   dpd_shop_work_hours, returning no results for shops without
   work hours records (all PL shops).

Changes:
- Pass country code from order delivery address to pudo search
- Make CurrentCountryProvider::getCountryIsoCodeByAddress() public
- Remove unnecessary INNER JOIN in getShopsByShopId()
- Use $this instead of container self-reference in PudoService
- Use constructor-injected pudoRepository instead of container lookup

---------

Co-authored-by: Tadas Labutis <tadaslabutis@Tadas-Labutis.local>
CSS rule #subtab-AdminDPDBalticsModule { display: none } hid the
entire <li> wrapping the sidebar link, so the DPDBaltics entry
vanished whenever a DPDBaltics admin controller loaded
global_module.css. Refined selector targets only nested submenu
elements, keeping the parent link visible.
…ewer

Long DPD API request URLs rendered inline in the Logs list table caused
the table to overflow horizontally and squeeze other columns off-screen.

Adopted the same modal pattern already used in SaferPay, Square, Klarna
and Mollie modules: request/response cells now render a "View" button
that opens a modal loaded via AJAX with the formatted payload.

Pretty-prints JSON when applicable; otherwise splits URL query strings
into one decoded key = value per line so long DPD shipment URLs become
readable.
- Reorder log columns to ID | Severity (1-4) | Message | Request | Response | Context | Date with severity badge, message preview and endpoint context callbacks.
- Encode logged request as structured JSON (endpoint + params) and mask username/password in stored payload.
- Encode logged response as JSON envelope with level and message so the modal renders pretty-printed JSON.
- Refine modal layout: wider window, centered title with id prefix, absolute close button and Esc key support.
- Replace PrestaShop default exporter with a clean fputcsv stream so JSON request/response columns are not HTML-mangled.
- Prepend store info, module configuration and PrestaShop settings so support can read environment context without follow-up.
- Derive Severity, Message and Context columns directly from the JSON payloads stored in the log table.
Sorts on Tracking number, Receiver, Address, and City fell back to
the main shipment table and produced no meaningful ordering. Added
order_key entries pointing at the correct join aliases so PS uses
the right columns in ORDER BY. filter_key is intentionally left
unset so HAVING filters keep targeting the SELECT aliases.

Also set default sort to id_dpd_shipment DESC so the latest
shipments appear first.
…on-dpd-pages

Fix DPDBaltics sidebar item disappearing on module pages
TLabutis and others added 8 commits May 25, 2026 08:36
Fix Shipment list sorting on joined-table columns
DGS-427 Improve logs section: collapse request/response into modal vi…
…rier-switch

DGS-425 Fix chosen select width on carrier switch in checkout
The composer.lock pins PHP 7+/8+ package versions while composer.json
still declares config.platform.php=5.6. composer install --no-dev then
fails with 'lock file does not contain a compatible set of packages',
so the release job produced no dpdbaltics.zip and users only saw the
source archive without vendor (module invalid and cannot be loaded).

Ignoring platform reqs lets the locked set install as-is so the build
attaches the vendor-bundled zip again.

Co-authored-by: Tadas Labutis <tadaslabutis@MacBookAir.localdomain>
@GytisZum GytisZum merged commit b08b97f into main Jun 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants