Delivery Slots

(m2-delivery-slots)
30-day money back guarantee

30-day money back guarantee

Delivery Slots for Magento 2 & Mage-OS with live capacity control, safe booking reservations, Hyvä Checkout support, REST & GraphQL APIs, postcode rules, delivery pricing and rescheduling built for real-world delivery operations.
SKU m2-delivery-slots

Gitlab access is only given to Agencies and Freelancers after
approval process.

Please note: we do not provide installation or implementation services for our extensions.

Installation should be handled by the developer or agency managing your store. This approach ensures:

  • Compatibility with your current setup
  • Proper configuration based on your specific version
  • Implementation by someone familiar with your codebase

Although we don’t offer installation, we maintain a curated list of recommended development agencies experienced with our solutions.

If you'd like to receive this list, please contact us at [email protected].

Partnership Inquiries

Delivery Slots for Magento 2 & Mage-OS That Never Overbook. | qoliber

Magento 2 & Mage-OS Delivery Slots Extension

Delivery Slots for Magento 2 & Mage-OS That Never Overbook.

A Magento 2 delivery date extension should do far more than put a calendar on the checkout. qoliber Delivery Slots runs delivery capacity like inventory — reserving slots before checkout, re-validating availability under a database lock when the order is placed, and automatically returning capacity when an order is canceled or fully refunded.

The result is a delivery scheduling system designed for stores where the date and time shown to the customer must remain operationally true — even when multiple customers race for the same slot, a checkout fails halfway through, or an existing delivery is rescheduled.

8.1 – 8.5
PHP
Hyvä Theme + Checkout
Storefront
REST + GraphQL
APIs
One delivery day · capacity, live

Tuesday, 11 August

  • 10:00 – 12:00Fully booked
  • 12:00 – 14:002 left
  • 14:00 – 18:005 left
  • 18:00 – 21:00+4.995 left
Confirm date 11 Aug · 12:00–14:00 (29:49)

The “2 left” is the line to look at: it counts confirmed orders plus every live 30-minute hold except your own. Capacity is then re-checked under a lock when the order is placed, so the slot count cannot silently drop below zero. The green pill represents the customer's active hold, prolonged while they continue shopping.

Magento delivery scheduling in the real world

Where Magento 2 Delivery Slots Usually Fail

Almost every Magento delivery date extension can display a calendar and save a delivery date on the order. The architectural differences appear when real-world events collide: two checkouts racing for the final slot, an order placement crashing midway, or a canceled order continuing to consume delivery capacity.

01

Two checkouts, one slot left

Without it: the last slot sells twice.

The booking is recorded under a per-method-and-date database lock, with capacity re-validated inside it. An over-capacity slot aborts order placement instead of silently overbooking — and the lock fails closed.

02

A crash mid-placement

Without it: ghost bookings eat real capacity.

A failure observer releases the booking unless the order actually committed, and an hourly reconciliation removes booking rows that no order accounts for — batched and split-database safe.

03

The idle tab

Without it: an abandoned browser holds a slot all day.

Holds slide — 30 minutes, prolonged on activity — but carry an absolute lifetime cap of 4× the window. Expired holds are purged by cron, while a customer's own hold never blocks their own checkout.

04

Cancelations and refunds

Without it: canceled orders still consume slots.

Canceling an order or fully refunding it frees the delivery slot immediately. Capacity goes straight back on sale, while partial refunds correctly leave the delivery booking in place.

05

Midnight, somewhere else

Without it: “today” drifts in non-UTC stores.

Availability, delivery cut-offs, change policies and reminders all resolve in the store's own timezone and scope. No availability flicker around midnight and no delivery reminder sent on the wrong day.

06

The moved delivery

Without it: a reschedule overbooks the target slot.

Customer and admin reschedules run in one transaction under the same lock, judged on net effect for same-day moves and gated by your cut-off policy. The delivery reminder automatically re-arms for the new date.

The pattern is the same everywhere: the calendar is the easy part. The real engineering is building a Magento delivery scheduling system whose slot count is still correct after concurrency, checkout failures, cancelations and rescheduling.

Magento delivery date extension comparison

qoliber vs Typical Magento Delivery Extensions

There are solid Magento delivery date and delivery scheduler extensions available. A checkout calendar, cut-off times, holiday lists and order-grid columns are now table stakes. The meaningful difference is what happens after the customer selects a date: capacity control, concurrent bookings, cancellation recovery, rescheduling and operational reliability.

qoliber Delivery Slots compared with typical Magento 2 delivery date extensions
What can go wrong qoliber Competing modules
Two checkouts race for the last slot Lock at placement
per method + date, capacity re-checked inside, fail-closed
Not published
Booking before checkout 30-minute sliding hold
header widget; live holds count against capacity
Checkout-only
Capacity limits Per slot, per date, per day
peak-date overrides, e.g. Christmas Eve = 2
Premium tier only
Canceled or refunded order Slot freed automatically
cancel + full-refund observers, hourly reconciliation
Not published
Public holidays Computed, 11 countries
fixed + Easter-derived, this year and next
Manual date lists
Delivery pricing Distance, fees, surcharges
per-km (Google), base fee, minimum charge, free-above, slot premiums
Flat surcharges at best
Customer moves the delivery Self-service, capacity-safe
same lock, one transaction, cut-off policy, reminder re-armed
Sometimes; checks not published
Full-page cache Safe by design
no session data in markup, hydrates client-side
Not published
Hyvä storefront + checkout Native companions, included
Alpine.js widget + Magewire picker
Often a paid add-on
After the order Reminder + .ics invite
token-protected calendar link, manifest export, REST + GraphQL
Reminders at best

The “Competing modules” column reflects what nine competing Magento delivery extensions publish on their public feature pages, reviewed August 2026. “Not published” means it isn't advertised — not that it is absent. The qoliber column describes what the shipped code does, and every row is verifiable in the repository.

Already running another Magento delivery-date extension?
Switching doesn't reset your delivery calendar. We help you map existing schedule rules onto delivery methods and carry upcoming deliveries across, so no booked delivery is lost during migration.
Architecture & compatibility

Magento 2 Delivery Slots: Platform & Stack

Built for agencies and technical teams delivering Magento and Mage-OS projects, qoliber Delivery Slots combines native storefront integrations with API access, cache-safe frontend behaviour and operational tooling for real delivery workflows.

Platform

Magento Open Source 2.4.x and Mage-OS.

PHP

8.1 – 8.5, PHPStan level 8, zero findings.

Storefront

Luma, and Hyvä with Hyvä Checkout — Alpine.js and Magewire companions, verified end-to-end on Hyvä 1.5.

Headless

Typed REST availability endpoint, slot data on the order REST API, and GraphQL support.

In the box

  • Header booking widget with a 30-minute sliding hold
  • Inline delivery slot picker on the checkout shipping step
  • Per-slot capacity, per-date overrides and daily caps
  • Lead times, same-day cut-offs and per-weekday overrides
  • Weekday slot plans and a slot generator (10:00-18:00/2h)
  • Blackout dates + computed public holidays for 11 countries
  • Per-km pricing, base fee, minimum charge, free-above and slot surcharges
  • Postcode zones, weight, size and cart-value limits, plus product opt-out
  • Bookings grid as the driver's daily manifest, with CSV/Excel export
  • Capacity overview: booked vs available, two weeks ahead
  • Delivery reminder emails + token-protected add-to-calendar (.ics)
  • Reschedule/cancel: customer self-service and admin delivery slot manager
Magento Delivery Slots FAQ

Questions

Can two customers book the last delivery slot at the same time?

No. The booking is recorded under a per-method-and-date database lock with capacity re-validated inside it, so the second order aborts with a clear message instead of overbooking. If the lock itself cannot be acquired, the system fails closed — a “try again in a moment”, never a double-booked van.

What happens when a customer books a slot and walks away?

The hold slides — 30 minutes by default, prolonged while they keep shopping — but has an absolute lifetime cap of four times the window. Expired holds are purged by cron every 15 minutes, so nobody can park on a slot indefinitely, while a customer's own hold never blocks their own checkout.

Does the Magento delivery scheduler work with Hyvä?

Yes, natively and at no extra charge: an Alpine.js header widget for the Hyvä theme and a Magewire delivery slot picker for Hyvä Checkout, including the required-slot step gate. Both are companions to the same booking engine, so Luma and Hyvä storefronts cannot drift apart.

Can customers change or cancel a delivery themselves?

If you allow it. Reschedule and cancel are available from My Account while the order hasn't shipped, gated by a merchant-defined cut-off such as “no changes closer than N hours to the slot”. Every move re-checks capacity under the same lock, and the reminder re-arms for the new date. Admins get the same controls on the order view.

Does it work with headless Magento storefronts?

Yes. Availability is exposed through a typed REST endpoint described in the generated Swagger schema, the booked slot travels as checkout extension attributes validated server-side, and delivery information is exposed on the order REST API and GraphQL for ERPs, PWAs and custom storefronts.

Will delivery slots slow down a cached Magento storefront?

No. The widget markup contains no session data, so pages remain fully cacheable. Reservation state hydrates client-side from a customer-data section, allowing full-page cache and the delivery booking widget to coexist by design.

Can delivery availability be restricted by postcode?

Yes. The extension includes postcode zones alongside weight, size, cart-value and product-level eligibility controls, allowing delivery methods and slot availability to reflect the operational limits of your delivery service.

What happens if the distance API is unavailable?

Distance-based pricing is optional. Without a Google key, methods price flat. With a key, a failed lookup fails closed for methods enforcing a maximum distance — the method hides rather than guessing — and degrades to flat pricing where no distance limit is configured.