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

# 4. Configure fulfillment methods and order scheduling

> Configure fulfillment for your storekit store including pickup, delivery, dine-in, and catering. Set delivery zones, prep times, and order method options.

Configure how customers receive their orders. You can offer pickup, delivery, dine-in, or any combination.

## Fulfillment Methods

storekit supports five fulfillment methods:

| Method                | Internal Name      | Description                                |
| --------------------- | ------------------ | ------------------------------------------ |
| **Pickup**            | `Pickup`           | Customers collect from your location       |
| **Delivery**          | `Delivery`         | You deliver to the customer's address      |
| **Dine-in**           | `InStore`          | Customers order to their table via QR code |
| **Catering Pickup**   | `CateringPickup`   | Large orders collected by the customer     |
| **Catering Delivery** | `CateringDelivery` | Large orders delivered to an event         |

When a customer visits your store, they're prompted to choose their fulfillment method (if multiple are enabled). This selection determines available time slots, minimum order values, and delivery fees.

## Enable Pickup

Pickup is the simplest option:

1. Go to **Store Settings > Fulfillment**
2. Enable **Pickup**
3. Configure pickup settings:

| Setting                 | Description                                                  |
| ----------------------- | ------------------------------------------------------------ |
| **Prep time**           | How long to prepare orders (affects earliest available slot) |
| **Minimum order**       | Minimum basket value for pickup orders                       |
| **Maximum order**       | Maximum basket value (optional)                              |
| **Pickup instructions** | Message shown to customers after ordering                    |

## Enable Delivery

To offer delivery:

1. Go to **Store Settings > Fulfillment**
2. Enable **Delivery**
3. Configure delivery settings:

| Setting                  | Description                           |
| ------------------------ | ------------------------------------- |
| **Delivery fee**         | Base fee charged for delivery         |
| **Minimum order**        | Minimum basket value for delivery     |
| **Maximum order**        | Maximum basket value (optional)       |
| **Prep + delivery time** | Total estimated time including travel |

### Delivery Zones

For distance-based pricing and delivery areas:

1. Go to **Store Settings > Delivery Zones**
2. Click **Add Zone**
3. Set the zone radius (in miles or kilometres based on your country)
4. Configure zone-specific settings:

| Setting           | Description                      |
| ----------------- | -------------------------------- |
| **Radius**        | Maximum distance from your store |
| **Delivery fee**  | Fee for this zone                |
| **Minimum order** | Minimum basket for this zone     |

When a customer enters their address, the system calculates distance from your store and determines which zone applies. If they're outside all zones, delivery is unavailable for that address.

<Tip>
  Create multiple zones with increasing fees based on distance. For example: 0-2 miles = free delivery, 2-4 miles = £2.50, 4-6 miles = £4.00.
</Tip>

### Third-Party Delivery

If you use a delivery service:

1. Go to **Store Settings > Integrations**
2. Connect your delivery provider ([Uber Direct](/guides/integrations/delivery/uber-direct), [Shipday](/guides/integrations/delivery/shipday), [Nash](/guides/integrations/delivery/nash), etc.)
3. Orders are automatically dispatched to drivers

## Enable Dine-in (InStore)

For table ordering:

1. Go to **Store Settings > Fulfillment**
2. Enable **Dine-in**
3. Set up table areas and tables in the **Tables** section
4. Generate QR codes for each table

When customers scan a table's QR code:

* The table is automatically selected
* Orders include the table number/name
* Pay-at-table can be enabled for bill splitting

Table areas can have their own settings (e.g., enable/disable pay-at-table per area).

<Note>
  You can configure a **table descriptor** to customise how tables are referred to (e.g., "Table", "Booth", "Room").
</Note>

## Enable Catering

For large event orders with separate fulfillment options:

1. Go to **Store Settings > Fulfillment**
2. Enable **Catering**
3. Configure catering-specific settings

Catering orders have their own:

* Pickup and delivery options (`CateringPickup` and `CateringDelivery`)
* Minimum order values (typically higher)
* Lead time requirements
* Pre-order date selection

## Order Scheduling

Let customers choose when they want their order:

| Option         | Description                                  |
| -------------- | -------------------------------------------- |
| **ASAP only**  | Orders prepared immediately                  |
| **Pre-orders** | Customers select a future date and time slot |
| **Both**       | Customer chooses ASAP or scheduled           |

<Warning>
  When ASAP is enabled, customers can place orders up to the configured lead time (default **45 minutes**) before the first available delivery or pickup slot. If your first slot starts before your venue's stated opening time, customers may be able to order before you officially open. For example, if your first delivery slot is 4:00 PM and ASAP is enabled with a 45-minute lead time, a customer could place an order as early as 3:15 PM — even if your venue opens at 5:00 PM. To prevent pre-opening orders, either disable ASAP or set your first slot to at least your opening time plus the lead time (e.g., 5:45 PM for a 5:00 PM opening with a 45-minute lead time). See [How ASAP Delivery Interacts with Opening Hours](/guides/store-settings/opening-hours#how-asap-delivery-interacts-with-opening-hours) for more detail.
</Warning>

Pre-order settings are configured separately for pickup and delivery, with different available days for each.

## Minimum Order Values

You can set minimum order values per fulfillment method:

* **Pickup minimum** - Applies to pickup orders
* **Delivery minimum** - Applies to delivery orders (can be overridden per zone)
* **Dine-in minimum** - Applies to table orders

If a customer's basket is below the minimum, they see a message showing how much more they need to spend.

## Next Step

Now configure your payment methods → [Set up payments](/getting-started/launch/set-up-payments)
