keirontw/relay-point-bundle
A PHP bundle for adding relay point and pickup location support to your application. It provides configuration and service integration for shipping, checkout, and delivery workflows, making it easier to manage selectable parcel pickup points.
RelayPointProviderInterface. Auto-discovered providers mean regional or contract carriers can be added later without forking — preserves negotiating leverage and avoids lock-in to the bundle's built-in list.checkout_listener.enabled + event_class auto-applies the selection. Useful for a fast launch; a deliberate architectural choice to accept or reject, since it couples selection to your order/checkout event flow. Session-backed, framework-agnostic storage with no assumed Order/cart model is a plus for non-standard checkout flows.Adopt when:
Look elsewhere / build when:
keirontw Packagist vendor vs. BastienMesnil repository — clarify ownership/provenance in diligence) is a supply-chain risk to record.To executives: This is a mature-enough (v1.0.0) open-source component that gives us pickup-point delivery across 12 European carriers in one dependency instead of 3–6 engineer-weeks of bespoke carrier work. It lowers time-to-market for new EU markets and keeps geocoding costs tunable. Two caveats to state plainly: it is Symfony-only, so on a Laravel stack the value is the design and carrier coverage, not plug-and-play install; and it is a single-maintainer v1.0.0, so we should pin the version, wrap it behind our own interface, and accept a maintenance contingency.
To engineering: Composer-installable Symfony bundle. Carriers auto-register via RelayPointProviderInterface (tagged services, no manual wiring). Geocoding is an injected strategy — swap Addok/Nominatim/Google/Photon or supply your own. Selection persists in session with no Order model dependency, and an optional checkout_listener bridges to your checkout event via a configurable event_class. Frontend ships as a Stimulus controller with CSS-variable theming and Twig block overrides; AssetMapper registration is automatic. Integration risk is concentrated in (a) the checkout listener contract, (b) geocoder rate limits and fallback behaviour, and (c) the absent Laravel bridge if we are not on Symfony. Recommend an interface wrapper on our side so carrier coverage and the bundle itself remain replaceable.
How can I help you explore Laravel packages today?