I’ve heavily improved the Packlink module to fix major limitations and make it production-ready.
Here are the 3 major upgrades I implemented
LINK : https://addons.prestashop.com/en/shipping-pickup-solutions/22591-packlink-pro-shipping.html
New pricing policies:
✔ Then converted back to HT for PrestaShop
✔ Customers always see a clean, rounded final price
Modified files:
ShippingPricePolicy.php — added POLICY_ROUND_UP_90 & POLICY_ROUND_UP_99
ShippingCostCalculator.php — added roundUpTo90() & roundUpTo99()
PackageCostCalculator.php — TTC rounding logic
Before: everything was grouped under “Colissimo” 
Now: two distinct carriers ✔
Modified files:
ShippingMethodService.php
UpdateShippingServicesTask.php
Before: a fixed list of European countries → very limited
Now: the module automatically loads all active countries in PrestaShop.
✔ Packlink API is queried for every active destination
✔ If Packlink supports a country → carriers appear
✔ If not → simply no services shown (expected behavior)
Modified file:
WarehouseCountryService.php → new dynamic getAllDestinationCountries()
Packlink API limitation (not a module bug):
The module is now:
✔ Smarter
✔ Cleaner
✔ More flexible
✔ More merchant-friendly (better pricing strategies)
Here are the 3 major upgrades I implemented
LINK : https://addons.prestashop.com/en/shipping-pickup-solutions/22591-packlink-pro-shipping.html
Automatic Price Rounding (.90 and .99)
New pricing policies:- Round up to .90 → 9.12€ → 9.90€, 9.95€ → 10.90€
- Round up to .99 → 9.12€ → 9.99€, 10.00€ → 10.99€
✔ Then converted back to HT for PrestaShop
✔ Customers always see a clean, rounded final price
Modified files:
ShippingPricePolicy.php — added POLICY_ROUND_UP_90 & POLICY_ROUND_UP_99
ShippingCostCalculator.php — added roundUpTo90() & roundUpTo99()
PackageCostCalculator.php — TTC rounding logic
- Updated translations, BO templates & admin JS
Full Separation of Colissimo / Lettre Suivie
Before: everything was grouped under “Colissimo” Now: two distinct carriers ✔
- Colissimo = Colissimo services only
- Lettre Suivie = LS services only
- Cleaned service names (removed “up to X kg”)
- Added separate logos for each service
Modified files:
ShippingMethodService.php
UpdateShippingServicesTask.php
Dynamic Country Support (No more static list)
Before: a fixed list of European countries → very limitedNow: the module automatically loads all active countries in PrestaShop.
✔ Packlink API is queried for every active destination
✔ If Packlink supports a country → carriers appear
✔ If not → simply no services shown (expected behavior)
Modified file:
WarehouseCountryService.php → new dynamic getAllDestinationCountries()
Packlink API limitation (not a module bug):
- No Colissimo International via API (except Monaco)
- No Lettre Suivie International
→ Only UPS, FedEx, DHL, Chronopost, MR, etc. work for international shipments.
Done!
The module is now:✔ Smarter
✔ Cleaner
✔ More flexible
✔ More merchant-friendly (better pricing strategies)