Appearance
Changelog
Based on CHANGELOG.md in the plugin repository.
0.9.0-beta.2
- Customers see a readable message (English, German, French) when Instant Delivery is unavailable for their address, instead of a raw text key.
- Surcharges are rounded to the currency's own precision, so zero-decimal (e.g. JPY) and three-decimal (e.g. KWD) currencies are charged correctly.
- When a delivery is verified, every delivery of a split order is set to Shipped, not only the main one.
- Map lookups give up sooner (3 seconds without a response, 5 seconds per request in total), so a slow map provider holds checkout up for less time.
- Distances are reused for 30 days by default (was 1 day), and the same address typed slightly differently (case, spaces, commas) no longer triggers a new lookup. Shops still on the old 1-day default are moved to 30 days on update; a value you set yourself is kept.
0.9.0-beta.1
Initial release.
Instant Delivery shipping method
- New shipping method Instant Delivery, created and kept up to date on install, activate and update. Priced live from the driving distance between your fulfilment location and the customer's address, plus the cart's weight and size; other shipping methods are untouched.
- Recalculated automatically when the cart, address, sales channel or currency changes; taxed like any shipping method.
- Checkout is blocked with a clear message when the address is incomplete, the distance can't be determined, or no price rule matches.
Delivery price rules (Settings → Shop → Delivery price rules)
- Ordered rules combining distance, total / volumetric / chargeable weight, longest edge, item count and order value, with an optional Rule Builder scope. The highest-priority match wins; active rules need unique priorities.
- Prices per sales channel; a missing currency price is converted from the default currency with the currency factor; net prices for customers who see net prices or are tax-exempt.
- Duplicate creates an independent, inactive copy.
- Invalid ranges, duplicate priorities and unknown metrics are rejected on save with a specific message.
Delivery surcharges (Settings → Shop → Delivery surcharges)
- Peak-hour, weekend/holiday, remote-area, bulky and fuel surcharges, fixed or percentage (of the base price or the running total), stacking in priority order.
- Limits by validity dates, sales channels, a Rule Builder rule, numeric conditions and weekly time periods in a configurable fulfilment timezone, crossing midnight if needed.
- The full price breakdown is stored with the order and shown on the order page, labelled net, gross or tax-free; a later manual shipping-cost change is pointed out.
- Editing an order in the Administration keeps its original or manually entered delivery cost.
Distance and maps
- Google Maps (Geocoding + Distance Matrix) or OpenStreetMap (Nominatim + OSRM), per sales channel. No external delivery API.
- Only street-level addresses are priced.
- Distances cached; unfound addresses remembered for an hour. Google key and billing problems logged as errors, temporary problems as warnings.
Delivery confirmation (OTP and proof of delivery)
- New delivery status In transit. Setting it creates a one-time code (4–10 digits, stored only as a hash) emailed through an editable order on its way flow, with a localised expiry date.
- Delivery verification card on the order: enter the code, resend a new one, or attach a proof-of-delivery photo. The code is never shown.
- Codes expire, can't be reused, and lock after a configurable number of wrong attempts, also under concurrent requests. Empty or malformed input doesn't use an attempt.
- Proof-of-delivery photos must be images uploaded after the order was placed.
- Choose what confirms a delivery: code, photo, both or either. Once satisfied, the delivery is set to Shipped automatically (can be switched off). A verified code sends the editable delivery confirmed email.
- Flow Builder triggers order on its way (with the code), in transit and delivery confirmed.
- Permission Last-Mile Delivery → Manage for the modules and the verification card.
Installation and compatibility
- Shopware 6.6 and 6.7 (an Administration build for each).
- Uninstalling without keeping data removes the plugin's tables, flows, mail templates and configuration, and the In transit status when no order uses it. Instant Delivery is only deactivated. Uninstalling doesn't remove the plugin from the shop's Composer dependencies.