Local Delivery Settings
Configure delivery radius, fees, free-delivery threshold, and preparation time for orders delivered by your own drivers
Overview
Local Delivery lets customers have orders dropped off by your own staff or drivers, rather than shipped by a carrier or picked up in person. Before you can turn it on, you need Google Maps configured — CMS Max uses it to verify a customer's address falls within your delivery area.
Prerequisites
Local Delivery has two hard requirements. Without both, the Local Delivery checkbox stays disabled (or, if already enabled, every delivery order at checkout will be rejected):
- Google Maps API enabled. Install and configure the Google Maps plugin with a valid API key. Go to eCommerce → Store Settings → Fulfillment Methods; if Google Maps isn't configured yet, the Local Delivery checkbox shows a link to enable it.
- Store address coordinates set. Your store's latitude and longitude must be saved. Go to eCommerce → Manage Store, open your store, and confirm the address has been geocoded (this happens automatically when you save a complete address with Google Maps enabled).
Warning: If either prerequisite is missing, customers will not be able to complete checkout with Local Delivery — CMS Max cannot verify their address is within your delivery radius, so it blocks the order rather than risk delivering outside your service area.
Enabling Local Delivery
- Navigate to eCommerce → Store Settings.
- Click the Fulfillment Methods tab.
- Turn on the Local Delivery checkbox (only available once the prerequisites above are met).
- Click Save.
Local Delivery Settings
Configure the delivery zone, pricing, and prep time under eCommerce → Store Settings → Checkout Date/Times → Local Delivery:
| Setting | Description | Default |
|---|---|---|
| Distance Calculation | How the delivery radius is measured. As the crow flies (straight-line) uses the direct distance between your store and the address — fast and free. Actual driving distance measures the real route along roads (more accurate; it uses the Google Maps Distance Matrix API, but only for stores already within range as the crow flies — an out-of-area address is rejected with no extra API call). | As the crow flies |
| Delivery Radius | The maximum distance, in miles, from your store that you'll deliver to. Orders from addresses further away than this are rejected at checkout. Measured using the Distance Calculation method above. | 10 miles |
| Delivery Fee | The flat fee charged for local delivery. | $15.00 |
| Free Delivery Threshold | The order subtotal at or above which the delivery fee is waived. Leave blank to always charge the fee. | None (always charge) |
| Default Preparation Time | How long, in minutes, it typically takes to prepare an order for delivery. Shown to customers during checkout. | 60 minutes |
Tip: These settings only affect Local Delivery — they're separate from your DoorDash, In-Store Pickup, or Curbside Pickup configuration.
Local Delivery Hours
Below these settings, set the days and times your delivery service operates. Customers can only select Local Delivery during these hours, unless Always Allow Checkout is turned on for the method.
To reuse one day's hours, click the copy icon next to that day, check the days that should get the same hours (or click Select all), and click Copy hours. Only the checked days change. Click Save changes to keep them.
The same copy icon is on every hours grid, including In-Store Pickup, Curbside Pickup and DoorDash hours.
Notifications
Send email to the customer when driver is on their way is on by default: when you mark an order Out for Delivery from the order detail page, the customer is automatically emailed. Turn the setting off if you do not want these notifications sent. See Managing Orders for the full Local Delivery fulfillment workflow.