Appearance
Pickup Settings
Overview
Pickup Settings configure how customers can order for pickup (collection) at your location. Set preparation times, scheduling options, and pickup instructions.
Key Purpose: Configure pickup ordering options and timing.
Purpose
This page lets you configure all pickup-related settings for a location, including preparation times, scheduling options, time slot durations, pickup hours, and customer instructions.
Key Concepts
- Preparation Time: The minimum time needed to prepare a pickup order, used to calculate the earliest available pickup slot (current time + prep time + pickup delay).
- Pickup Delay: An additional buffer added on top of preparation time to give the kitchen extra breathing room, especially useful during busy periods.
- Time Slot Duration: The interval at which pickup time slots are offered to customers (e.g., every 15 minutes: 12:00, 12:15, 12:30). Shorter slots give more precise times but require tighter kitchen management.
- Advance Ordering Days: How many days into the future customers can schedule pickup orders, controlling the calendar range shown in the time picker.
- Pickup Instructions: Free-text guidance shown to customers on the order confirmation and confirmation email, telling them where and how to collect their order.
Actions
Configure Pickup Settings
Set up or update all pickup parameters including enabling/disabling pickup, preparation time, delay, ASAP and scheduled ordering toggles, time slot duration, advance days, and pickup hours.
Set Pickup Instructions
Define the pickup location description and instructions text that customers see after placing their order, such as "Collect at the side entrance" or "Show order number at counter."
Enable Customer Notifications
Toggle the "Notify When Ready" setting to send customers an SMS, email, or push notification when their pickup order is ready for collection.
Location
- Backoffice Route:
/pickup-and-delivery/pickup - Backend Controller:
app/Http/Controllers/Api/PickupController.php - Vue Component:
src/views/pickup-and-delivery/pickup/index.vue
Fields
Pickup Enabled
| Property | Value |
|---|---|
| Field ID | enabled |
| Label | Enable Pickup |
| Type | Toggle |
| Default | true |
Description: Allow customers to order for pickup.
Customer Impact:
- Enabled: "Pickup" option available at checkout
- Disabled: Only delivery or dine-in available
Preparation Time
| Property | Value |
|---|---|
| Field ID | prep_time |
| Label | Preparation Time |
| Type | Number |
| Unit | Minutes |
| Default | 15 |
| Validation | min: 5, max: 120 |
Description: Minimum time needed to prepare a pickup order.
Business Logic:
- Earliest pickup time = Now + Prep Time
- Added to item-specific prep times
Customer Impact:
- "Ready in approximately X minutes"
- Earliest available time slot
Examples:
- Fast food: 10-15 minutes
- Casual dining: 20-30 minutes
- Complex orders: 30-45 minutes
Pickup Delay
| Property | Value |
|---|---|
| Field ID | pickup_delay |
| Label | Additional Delay |
| Type | Number |
| Unit | Minutes |
| Default | 0 |
| Validation | min: 0, max: 60 |
Description: Extra buffer time added to preparation time.
Use Cases:
- Busy periods: Add 10-15 minutes
- Kitchen constraints: Add buffer
- Quality control: Extra time for checking
ASAP Orders
| Property | Value |
|---|---|
| Field ID | asap_enabled |
| Label | Allow ASAP Orders |
| Type | Toggle |
| Default | true |
Description: Allow customers to order for "As Soon As Possible".
Customer Impact:
- Enabled: "ASAP" option shown (ready in ~X min)
- Disabled: Must select specific time slot
Scheduled Orders
| Property | Value |
|---|---|
| Field ID | scheduled_enabled |
| Label | Allow Scheduled Orders |
| Type | Toggle |
| Default | true |
Description: Allow customers to schedule pickup for later.
Customer Impact:
- Enabled: Date/time picker shown
- Disabled: Only ASAP orders
Advance Ordering Days
| Property | Value |
|---|---|
| Field ID | advance_days |
| Label | Order Ahead Days |
| Type | Number |
| Unit | Days |
| Default | 7 |
| Validation | min: 1, max: 30 |
Description: How far in advance customers can schedule pickup.
Customer Impact:
- Calendar shows available days
- Can't select dates beyond this limit
Examples:
- 1 day: Today and tomorrow only
- 7 days: Up to a week ahead
- 14 days: Two weeks ahead
Time Slot Duration
| Property | Value |
|---|---|
| Field ID | time_slot_duration |
| Label | Time Slot Duration |
| Type | Number |
| Unit | Minutes |
| Default | 15 |
| Validation | min: 5, max: 60 |
Description: Length of each pickup time slot.
Customer Impact:
- Time picker shows slots (e.g., 12:00, 12:15, 12:30)
- Smaller slots = more precise times
Examples:
- 15 min: 12:00, 12:15, 12:30, 12:45
- 30 min: 12:00, 12:30, 13:00, 13:30
Pickup Hours
| Property | Value |
|---|---|
| Field ID | pickup_hours |
| Label | Pickup Hours |
| Type | Schedule |
| Default | Same as business hours |
Description: Specific hours when pickup is available.
Business Logic:
- Can be different from business hours
- Can be different from delivery hours
Example:
- Business hours: 9:00 - 22:00
- Pickup hours: 10:00 - 21:30 (kitchen closes early)
Pickup Instructions
| Property | Value |
|---|---|
| Field ID | pickup_instructions |
| Label | Pickup Instructions |
| Type | Textarea |
| Required | No |
| Validation | max: 500 characters |
Description: Instructions shown to customers about pickup.
Customer Impact:
- Shown on order confirmation
- Included in confirmation email
Examples:
- "Please collect your order at the counter"
- "Ring the bell at the side entrance"
- "Parking available in rear lot"
Pickup Location
| Property | Value |
|---|---|
| Field ID | pickup_location |
| Label | Pickup Location |
| Type | Text |
| Required | No |
| Validation | max: 100 characters |
Description: Specific location for pickup within the venue.
Examples:
- "Main counter"
- "Side entrance"
- "Pickup window"
- "Ask at reception"
Customer Notification
| Property | Value |
|---|---|
| Field ID | notify_when_ready |
| Label | Notify When Ready |
| Type | Toggle |
| Default | true |
Description: Send notification when order is ready for pickup.
Customer Impact:
- SMS/Email: "Your order is ready for pickup!"
- Push notification (if app)
Business Logic
Pickup Time Calculation
Current time: 12:00
Prep time: 20 minutes
Pickup delay: 5 minutes
Earliest pickup: 12:00 + 20 + 5 = 12:25
Rounded to next slot (15 min slots):
Available from: 12:30Time Slot Availability
For each time slot:
├── Within pickup hours? No → Skip
├── In the past? Yes → Skip
├── Before earliest time? Yes → Skip
├── Capacity available? No → Skip
└── All checks pass → Show as availableOrder Flow
Customer selects Pickup
│
▼
Choose time:
├── ASAP → Calculate earliest time
└── Scheduled → Select from available slots
│
▼
Complete order
│
▼
Order sent to kitchen
│
▼
Order prepared
│
▼
Marked as ready
│
▼
Customer notified (if enabled)
│
▼
Customer collects orderCustomer Impact
Online Ordering Checkout
- Select "Pickup" as order type
- Choose ASAP or scheduled time
- See estimated ready time
- Complete payment
- Receive confirmation with pickup details
- Get notification when ready
- Collect order at location
Confirmation Display
Order Confirmed!
Pickup Details:
📍 Mario's Restaurant
123 Main Street, Amsterdam
⏰ Ready at: 12:30 PM
(approximately 25 minutes)
📋 Order #1234
Instructions:
Please collect your order at the main counter.
Show this confirmation to staff.Relations
Depends On
- Locations: Pickup settings per location
- Business Hours: Pickup within open hours
- Order Capacity: Affects slot availability
Affects
- Online Ordering: Pickup option
- Transactions: Pickup orders
- KDS: Order preparation
Related Features
Business Rules
- The earliest pickup time is calculated as: current time + preparation time + pickup delay, then rounded up to the next available time slot boundary.
- Pickup hours can be configured independently from business hours and delivery hours, allowing a narrower or different pickup window.
- Time slots that fall outside pickup hours, are in the past, are before the earliest calculated time, or have reached capacity limits are all hidden from the customer.
- The advance ordering days setting limits how far into the future the scheduling calendar extends; dates beyond this limit are disabled in the date picker.
- If both ASAP and scheduled pickup are disabled, no pickup options will be available and customers cannot place pickup orders.
FAQs
- What happens when a customer selects ASAP? The system calculates the earliest possible pickup time (current time + prep time + delay, rounded to next slot) and assigns the order to that slot. The customer sees an estimated ready time.
- Can pickup hours differ from delivery hours? Yes. Pickup hours, delivery hours, and general business hours are all independent settings. For example, you might accept pickup until 21:30 but stop delivery at 21:00.
- How does the "Notify When Ready" feature work? When enabled and the kitchen marks the order as ready, the customer receives a notification (SMS, email, or push) telling them their order is ready for collection.
- What is the pickup delay used for? The pickup delay adds a buffer on top of the preparation time. It is useful during busy periods to prevent orders from being promised too soon. You can adjust it temporarily without changing the base prep time.
- Can I disable ASAP and only allow scheduled pickup? Yes. Turn off the ASAP toggle and keep scheduled orders enabled. Customers must then choose a specific future time slot, which is useful for businesses with long preparation times or pre-order models.
Troubleshooting
Problem: No pickup times available
Causes:
- Outside pickup hours
- Capacity limits reached
- Prep time too long
- All slots in past
Solutions:
- Check pickup hours
- Increase capacity limits
- Reduce prep time
- Try scheduling for later
Problem: Pickup time too far in future
Causes:
- Long prep time configured
- Large pickup delay
- Capacity constraints
Solutions:
- Review prep time setting
- Reduce pickup delay
- Increase capacity
Problem: Customer arrived but order not ready
Causes:
- Kitchen behind schedule
- Prep time underestimated
- High order volume
Solutions:
- Increase prep time buffer
- Add pickup delay during busy times
- Manage capacity limits
Examples
Fast Food Pickup
json
{
"enabled": true,
"prep_time": 10,
"pickup_delay": 0,
"asap_enabled": true,
"scheduled_enabled": true,
"advance_days": 1,
"time_slot_duration": 15,
"pickup_instructions": "Collect at the counter. Show your order number.",
"notify_when_ready": true
}Restaurant Pickup
json
{
"enabled": true,
"prep_time": 25,
"pickup_delay": 5,
"asap_enabled": true,
"scheduled_enabled": true,
"advance_days": 7,
"time_slot_duration": 15,
"pickup_hours": {
"Monday": { "from": "11:00", "to": "21:00" },
"Tuesday": { "from": "11:00", "to": "21:00" },
"Wednesday": { "from": "11:00", "to": "21:00" },
"Thursday": { "from": "11:00", "to": "21:00" },
"Friday": { "from": "11:00", "to": "21:30" },
"Saturday": { "from": "11:00", "to": "21:30" },
"Sunday": { "from": "12:00", "to": "20:00" }
},
"pickup_instructions": "Please use the side entrance for pickup orders. Parking available in rear.",
"pickup_location": "Side entrance pickup window",
"notify_when_ready": true
}Scheduled Only (No ASAP)
json
{
"enabled": true,
"prep_time": 45,
"pickup_delay": 0,
"asap_enabled": false,
"scheduled_enabled": true,
"advance_days": 14,
"time_slot_duration": 30,
"pickup_instructions": "Orders must be scheduled at least 1 hour in advance.",
"notify_when_ready": true
}Pickup Time Selection UI
┌─────────────────────────────────────┐
│ When would you like to pick up? │
├─────────────────────────────────────┤
│ │
│ ○ ASAP (Ready in ~25 min) │
│ │
│ ● Schedule for later │
│ │
│ Date: [Today ▼] │
│ │
│ Time: │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │12:30│ │12:45│ │13:00│ │13:15│ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │13:30│ │13:45│ │14:00│ │14:15│ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
│ [Continue] │
└─────────────────────────────────────┘