Locations & Collection
Configure collection locations, set opening hours, create time slots, manage closures and capacity overrides, and control how customers select their collection window.
Multi-Location Setup
BoxCart supports multiple collection locations. Each location represents a physical pickup point where customers can collect their orders. Navigate to BoxCart → Locations and click Add Location to create a new one.
The admin Locations page uses a card grid layout. Each card displays the location name, address, today's available slots, pending orders count, and action buttons for editing, viewing the schedule, and deleting.
Location Fields
| Field | Description | Required |
|---|---|---|
| Name | Display name for the location (e.g. "Main Shop", "Market Stall") | Yes |
| Address Line 1 | Street address | No |
| Address Line 2 | Additional address line | No |
| City | City or town | No |
| County | County, state, or region | No |
| Postcode | Postal or ZIP code | No |
| Phone | Contact phone number for this location | No |
| Contact email for this location | No | |
| Instructions | Collection instructions shown to customers (e.g. "Enter via the side gate") | No |
| Active | Toggle the location on or off. Inactive locations are hidden from customers | — |
| Sort Order | Numeric value to control the display order of locations (lower numbers appear first) | No |
Use the Active toggle to temporarily hide a location without deleting it. This is useful for seasonal locations or when a site is temporarily unavailable.
Opening Hours
Each location has its own weekly schedule. Navigate to a location's schedule page by clicking Schedule on the location card, then select the Opening Hours tab.
The schedule displays all seven days of the week. For each day you can:
- Toggle the day Open or Closed
- Closed days will not appear in the slot selector for customers
Opening hours are stored per-location with a unique constraint on the combination of location and day of week, ensuring each location has exactly one schedule entry per day.
Opening hours determine which days appear in the date picker. Time slots (below) control the specific collection windows within those open days.
Time Slots
Time slots define the specific collection windows available at each location. Navigate to the location schedule and select the Time Slots tab to manage them.
Each time slot is configured per-location and per-day of the week. The following fields are available:
| Field | Description |
|---|---|
| Day of Week | The day this slot applies to (Monday–Sunday) |
| Start Time | When the collection window opens (e.g. 09:00) |
| End Time | When the collection window closes (e.g. 10:00) |
| Capacity | Maximum number of orders for this slot (default: 10). Once capacity is reached the slot is shown as full |
| Active | Toggle individual slots on or off without deleting them |
You can create multiple slots per day to offer different collection windows. For example, a location open on Saturday might have three slots: 09:00–10:00, 10:00–12:00, and 14:00–16:00.
Set the Capacity to a higher number for busier periods. You can also use Capacity Overrides to adjust capacity for specific dates without changing the default.
Location Closures
Closures let you block specific dates for a location. This is useful for bank holidays, maintenance days, staff holidays, or any ad-hoc day when a location will not be accepting collections.
Navigate to the location schedule and select the Closures tab. For each closure you specify:
- Closure Date — the specific date the location will be closed
- Reason (optional) — a text note explaining the closure (e.g. "Bank Holiday", "Staff Training Day")
Each location can only have one closure entry per date. Closed dates are automatically excluded from the customer-facing date picker, so no collection slots will be offered on those days.
Closures take priority over opening hours. Even if a day is normally marked as open, adding a closure for that date will prevent any slots from being available.
Capacity Overrides
Capacity overrides let you change the order limit for a specific slot on a specific date, without altering the slot's default capacity. This is managed from the Capacity Overrides tab on the location schedule page.
Each override requires:
- Slot — the time slot to override
- Override Date — the specific date the override applies to
- Capacity — the new maximum number of orders for that slot on that date
Common use cases include:
- Increasing capacity for a slot you expect to be busy (e.g. the day before a bank holiday)
- Reducing capacity when you have limited staff
- Setting capacity to zero to effectively close a single slot on a particular date without creating a full closure
Each slot can only have one override per date. The override is uniquely keyed on the combination of slot ID and date.
Collection Settings
Global collection behaviour is configured under BoxCart → Settings → Collection. These settings apply across all locations.
| Setting | Key | Type | Default | Description |
|---|---|---|---|---|
| Lead Time | lead_time_hours |
Number (0–168) | 24 |
Minimum hours notice required before the earliest available collection slot. For example, a value of 24 means customers must book at least 24 hours in advance. |
| Days Available | days_ahead |
Number (1–90) | 14 |
How many days ahead customers can book collection slots. Limits the date picker range. |
| Slot Expiry | slot_expiry_minutes |
Number (0–1440) | 0 |
Minutes before a reserved slot expires and is released back to availability. Set to 0 to disable expiry. |
| Slot Buffer Minutes | slot_buffer_minutes |
Number (0+) | 0 |
Buffer time in minutes added between the current time and the first available slot. Useful for ensuring shops have preparation time. |
| Show Remaining Capacity | show_remaining_capacity |
Toggle | false |
Display the remaining slot capacity to customers during slot selection (e.g. "3 slots remaining"). |
| Show Date and Time on One Line | show_slot_one_line |
Checkbox | false |
Show the collection date and time side by side instead of stacked. Useful for shorter slot descriptions. |
| Use Simple Date Format | use_simple_date_format |
Checkbox | false |
Show dates in a shorter format (e.g. "Mon 15 Jan" instead of "Monday 15th January 2025"). |
Slot-First Shopping
By default, customers can browse products and add items to their basket before selecting a collection slot. Enabling slot-first shopping reverses this flow so that customers must choose a location, date, and time slot before they can begin shopping.
| Setting | Key | Default | Description |
|---|---|---|---|
| Require Slot Selection Before Shopping | require_slot_before_shopping |
false |
When enabled, customers must select a collection slot before they can browse and add products. The slot selector modal is presented immediately on the products page. |
| Allow Customers to Change Location | allow_location_change |
true |
Let customers switch their collection location after initial selection. This setting only appears when require_slot_before_shopping is enabled. |
When slot-first shopping is active:
- The customer visits the products page
- The slot selector modal opens automatically, prompting them to choose a location, date, and time slot
- Once a slot is selected, the products page loads and the customer can browse and add items to their basket
- The selected slot is stored on the basket and carried through to checkout
Slot-first shopping is ideal for businesses that prepare orders in advance and need to know the collection time before the customer starts shopping. If you prefer a more flexible experience, leave this disabled and customers can select their slot at checkout instead.
Slot Bar
The collection slot bar is displayed at the top of the products page and shows the customer's currently selected collection slot. It provides a quick visual summary of the chosen location, date, and time, and allows the customer to open the slot selector modal to change their selection.
The slot bar has three visual states:
- Empty — no slot selected yet; prompts the customer to choose a collection time
- Valid — a slot is selected and confirmed
- Warning — the selected slot has an issue (e.g. it has expired or capacity has been reached)
Slot Bar Position
| Setting | Key | Default | Description |
|---|---|---|---|
| Slot Bar Position | slot_bar_position |
sticky |
Controls how the slot bar behaves when the customer scrolls the products page. |
Two position options are available:
- Sticky (default) — the slot bar stays visible at the top of the viewport as the customer scrolls down the page. This keeps the collection details always in view.
- Static — the slot bar scrolls with the rest of the page content. Choose this if you prefer a cleaner layout or if the sticky behaviour conflicts with your theme's header.
Date & Time Display Options
Two settings control how the slot bar (and the slot selector) display dates and times:
- Show date and time on one line (
show_slot_one_line) — displays the date and time side by side instead of stacked. Enable this for a more compact appearance. - Use simple date format (
use_simple_date_format) — uses a shorter date format such as "Mon 15 Jan" rather than the full "Monday 15th January 2025".