controlaltdelete / magento2-colissimo-hyva-checkout

controlaltdelete/magento2-colissimo-hyva-checkout

Hyvä Checkout compatibility module for LaPoste Colissimo relay point selection

magento2-module Compatibility: Not yet tested Code Quality: Fail Tests: N/A Security: Pass MIT

Colissimo Relay Point Picker for Hyvä Checkout

A Magento 2 module that integrates Colissimo relay point selection into the Hyvä Checkout experience.

Developed by Control Alt Delete BV — a Magento and Hyvä specialist agency with deep expertise in Hyvä Checkout integrations. We've built production-grade shipping, payment, and pickup-point integrations for merchants across Europe, and we hold ourselves to a high bar: the proof is in the pudding — this repo ships with automated end-to-end tests so you know the checkout flow keeps working.

This module is an independent, community-developed integration. It is not affiliated with, endorsed by, or developed in partnership with La Poste or Colissimo.


Screenshots

Onepage checkout implementation
Onepage checkout
Multistep checkout implementation
Multistep checkout
Delivery method label in checkout
Delivery method label
Address search bar for finding nearby relay points
Address search
Relay points displayed on Google Maps
Google Maps view
List of available Colissimo pick-up points
Pick-up points list
Opening hours for a relay point
Opening hours
Selected relay point
Selected relay point

Overview

When customers choose the Colissimo relay point (PR) shipping method during checkout, this module presents an interactive picker that lets them search for and select a nearby relay point -- either by entering an address, using their browser's geolocation, or browsing an embedded Google Map.

The selected relay point is saved to the quote and passed along to the order, making it available for fulfilment via the standard Colissimo module.

Features

  • Relay point search by address (with Google Places autocomplete) or by geolocation
  • Interactive Google Map with markers for all available relay points
  • List/map view toggle for browsing results
  • Opening hours accordion per relay point
  • Fully reactive UI using Magewire and Alpine.js
  • Validates checkout step completion (customer must pick a point before proceeding)
  • Stores selected relay point in the checkout session for downstream processing
  • Admin configuration for Google Maps API key, default region, and map starting coordinates

Requirements

Dependency Version
PHP 8.1 or higher
Magento 2.4.4 or higher
La Poste Colissimo module *
Hyvä Checkout 1.3 or higher
Google Maps API key --

The La Poste Colissimo module is free and must be downloaded and installed separately from the Adobe Commerce Marketplace. This module is a compatibility layer on top of it — it does not replace or include the Colissimo shipping logic itself.

A Google Maps API key with the following APIs enabled is required:

  • Maps JavaScript API
  • Places API
  • Geocoding API

Note: Billing must be enabled on your Google Cloud project, even if you stay within Google's free tier. Requests from a key that has no billing account attached will fail silently, and the map will render blank with an ApiNotActivatedMapError or similar message in the browser console.

Installation

Install via Composer:

composer require controlaltdelete/magento2-colissimo-hyva-checkout
bin/magento module:enable ControlAltDelete_ColissimoHyva
bin/magento setup:upgrade

Configuration

Go to Stores > Configuration > Carriers > LaPoste > Hyvä Checkout integration and fill in:

Field Description
Google Maps API Key Your Google Maps API key
Region Default geocoding region (default: fr)
Starting Latitude Initial map centre latitude (default: 48.8566, Paris)
Starting Longitude Initial map centre longitude (default: 2.3522, Paris)

How It Works

  1. The customer selects the Colissimo relay point (PR) shipping method in Hyvä Checkout.
  2. A relay picker modal is shown, prompting the customer to find a pickup point.
  3. The customer searches by address or uses their device location.
  4. Available relay points are fetched from the Colissimo API and displayed as a list and on a map.
  5. When the customer selects a relay point, the quote's shipping address is updated with the relay point's details (name, address, postal code, city, country).
  6. The selected relay information is persisted in the checkout session.
  7. The checkout step validates that a relay point has been selected before allowing the customer to proceed.

Testing

The proof is in the pudding: this repository ships with a full suite of automated end-to-end tests written in Playwright, covering the relay-point picker, address search, map interactions, and the full checkout flow from cart to order confirmation.

Every change is validated against these tests before it lands, so you can upgrade with confidence that the checkout integration keeps working in both onepage and multistep Hyvä Checkout layouts.

npm install
npx playwright test

Test reports are written to playwright-report/.

Troubleshooting

The relay picker opens but the map is blank or the address autocomplete doesn't work.
Check the browser console for errors from maps.googleapis.com. The most common causes are:

  • The Google Maps API key has no billing account attached on the Google Cloud project.
  • One of the required APIs (Maps JavaScript API, Places API, Geocoding API) is not enabled.
  • HTTP referrer restrictions on the key don't include your storefront domain.

"Please select a pickup point before proceeding" keeps showing after I picked one.
The selected point is stored in the checkout session under lpc_relay_information. If this keeps happening, check that the underlying La Poste Colissimo module is properly configured (account credentials, relay-point shipping method enabled) and that the shipping method code is colissimo_pr.

Pickup points fail to load ("An error occurred while fetching pickup points").
This call goes through the La Poste Colissimo SOAP API. Check var/log/system.log / exception.log — this module logs the upstream error message. Verify the Colissimo account credentials and that the shipping address country is one Colissimo services.

The map view shows deprecation warnings in the browser console.
This module currently uses google.maps.Marker, which Google has deprecated in favour of AdvancedMarkerElement. The markers still render today; migration is on the roadmap.

Changelog

See the GitHub Releases page for version history and upgrade notes.

Automated testing is a core part of how Control Alt Delete delivers checkout integrations — if you need a bespoke shipping, payment, or pickup-point integration for Hyvä Checkout, get in touch.


About Control Alt Delete

Control Alt Delete BV is a Magento and Hyvä specialist agency. We build fast, maintainable storefronts and open-source tooling for the Magento ecosystem, with a particular focus on Hyvä Checkout integrations — shipping methods, payment providers, pickup-point pickers, and custom checkout steps.

Every integration we ship is backed by automated end-to-end tests, because a checkout that silently breaks is worse than no checkout at all. The proof is in the pudding: this repo is a live example of how we work.

Disclaimer

This module is developed and maintained by Control Alt Delete BV. It has no affiliation with La Poste, Colissimo, or any of their subsidiaries. All Colissimo trademarks and service names belong to their respective owners.

License

Released under the MIT License. Copyright (c) Control Alt Delete BV.

No changelog yet

The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.

Versions
Version Stability QA Status Compatibility Released
v1.0.0 stable Fail Not yet tested Details 2026-04-20 18:18:18

Requires 4

Package Constraint
hyva-themes/magento2-hyva-checkout ^1.3
laposte/magento2-colissimo-module ^1.11
magento/framework ^103.0.4
php ^8.1

Compatibility

Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.

Compatibility matrix (Magento × PHP)
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 not tested not tested
2.4.8 not tested not tested
2.4.9 not tested not tested

Code Quality

Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — a phpcs finding can't make a module incompatible.

Static analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

Static analysis results
Tool Status Findings Summary
PHPCS Fail 55 8 errors, 47 warnings (ruleset: Magento2) — 11 auto-fixable with phpcbf
PHPMD Pass 0
Cpd Pass 0
Composer validate Pass 0

PHPStan

Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.

PHPStan results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 Error Error
2.4.8 Error Error
2.4.9 Error Error

Tests

Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.

Unit tests

Unit tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Integration tests

Integration tests results by Magento and PHP version
Magento PHP 8.2 PHP 8.3 PHP 8.4 PHP 8.5
2.4.7 N/A N/A
2.4.8 N/A N/A
2.4.9 N/A N/A

Security

Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.

Security results
Tool Status Findings Summary
Composer audit N/A 0 no resolvable dependency tree to audit — Your requirements could not be resolved to an installable set of packages. Problem 1
Malware scan Pass 0
License
MIT
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.