> ## Documentation Index
> Fetch the complete documentation index at: https://docs.launchmystore.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Slot Picker

> Delivery date and time-slot picker at checkout with per-slot capacity

# Slot Picker

Scheduled delivery for grocery, florists, bakeries and furniture: the shopper
picks a day and a window at checkout, and no window can be oversold.
Comparable to Pickeasy / Stellar / Bird.

## For merchants

* **Weekly template**: which days you deliver, the windows on each day, how
  many orders each window can take, and an optional surcharge per window.
* **Cut-off & lead time**: a daily cut-off, lead days / minimum preparation
  minutes, blackout dates and per-date overrides.
* **Where**: restrict scheduling to postcode prefixes or countries; optionally
  require a slot to check out.
* **At checkout**: the picker appears after the shipping address; full windows
  are greyed out; choosing one adds a `Scheduled delivery · <window>` rate and
  hides the other delivery options.
* **Dispatch**: the day view on the orders list lists every booking per
  window; the slot is shown on each order.

## For developers

| Contract | Used for |
| - | - |
| [Checkout UI extension](https://docs.launchmystore.io/extensions/checkout-ui.md) at `checkout-shipping-after` | The calendar / slot grid; reads the address with `SHIPPING_ADDRESS_GET`, stores the choice with `ATTRIBUTE_CHANGE` |
| [`shipping_rate`](https://docs.launchmystore.io/functions/shipping-rate) | The scheduled-delivery rate, priced from the chosen slot in `cart.attributes` |
| [`delivery_customization`](https://docs.launchmystore.io/functions/delivery-customization) | Hides other options once a slot is chosen |
| [`order_validation`](https://docs.launchmystore.io/functions/order-validation) | Re-checks capacity and cut-off at placement (race-safe) |
| [`orders/create` webhook](https://docs.launchmystore.io/api-reference/webhooks/topics) | Books the slot: bumps the per-day ledger, pins the booking to the order; reads the choice from `note_attributes` |
| App data + [order metafields](https://docs.launchmystore.io/api-reference/metafields/list.md) | Capacity ledger; the booking on the order |

Cart attributes set with `ATTRIBUTE_CHANGE` travel with the cart into every
function input and land on the order as `note_attributes`, which is what makes
"choose in the checkout, enforce on the server" possible.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.