boxcart.dev

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

FieldDescriptionRequired
NameDisplay name for the location (e.g. "Main Shop", "Market Stall")Yes
Address Line 1Street addressNo
Address Line 2Additional address lineNo
CityCity or townNo
CountyCounty, state, or regionNo
PostcodePostal or ZIP codeNo
PhoneContact phone number for this locationNo
EmailContact email for this locationNo
InstructionsCollection instructions shown to customers (e.g. "Enter via the side gate")No
ActiveToggle the location on or off. Inactive locations are hidden from customers
Sort OrderNumeric value to control the display order of locations (lower numbers appear first)No
Screenshot: Location cards in the admin showing name, address, today's slots, and action buttons
Tip

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:

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.

Tip

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:

FieldDescription
Day of WeekThe day this slot applies to (Monday–Sunday)
Start TimeWhen the collection window opens (e.g. 09:00)
End TimeWhen the collection window closes (e.g. 10:00)
CapacityMaximum number of orders for this slot (default: 10). Once capacity is reached the slot is shown as full
ActiveToggle individual slots on or off without deleting them
Screenshot: Time slot configuration for a location showing day, start/end times, and capacity

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.

Tip

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:

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.

Important

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:

Common use cases include:

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.

SettingKeyTypeDefaultDescription
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.

SettingKeyDefaultDescription
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:

  1. The customer visits the products page
  2. The slot selector modal opens automatically, prompting them to choose a location, date, and time slot
  3. Once a slot is selected, the products page loads and the customer can browse and add items to their basket
  4. The selected slot is stored on the basket and carried through to checkout
Screenshot: Slot selector modal on the products page prompting the customer to choose a collection window
Tip

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:

Slot Bar Position

SettingKeyDefaultDescription
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:

Date & Time Display Options

Two settings control how the slot bar (and the slot selector) display dates and times: