same-day-delivery
Offer same-day local delivery with geographic zone management, customer-facing time-slot booking, and driver dispatch coordination
What this skill does
# Same-Day Delivery
## Overview
Same-day local delivery requires three things working together: a way for customers to select a delivery time slot at checkout, a way for you to dispatch orders to drivers, and a way to communicate delivery status back to customers. For most merchants, third-party last-mile services (DoorDash Drive, Uber Direct, Onfleet) are the fastest path to same-day delivery — they handle driver logistics so you focus on operations.
## When to Use This Skill
- When launching a same-day or next-hour delivery service in a defined geographic area
- When allowing customers to select a preferred delivery window at checkout
- When building a driver dispatch dashboard that shows outstanding orders and optimizes routes
- When integrating with a third-party last-mile courier (DoorDash Drive, Uber Direct, Onfleet)
- When managing capacity limits per time slot to prevent over-committing delivery resources
## Core Instructions
### Step 1: Determine your platform and delivery model
| Platform | Recommended Tool | Why |
|----------|-----------------|-----|
| **Shopify** | Local Delivery by Zapiet + DoorDash Drive or Uber Direct | Zapiet handles time-slot booking at checkout; DoorDash Drive / Uber Direct dispatch drivers automatically |
| **WooCommerce** | WooCommerce Local Pickup Plus + Onfleet or your own drivers | Local Pickup Plus handles zones and time slots; Onfleet provides driver dispatch and tracking |
| **BigCommerce** | Zapiet Delivery + Onfleet or Dispatch Science | Zapiet and similar apps add delivery scheduling; Dispatch Science optimizes routes |
| **Custom / Headless** | Build time-slot booking + integrate Onfleet/DoorDash Drive API for dispatch | Full control over zone management, slot capacity, and driver routing |
**Choose your delivery model first:**
- **Your own drivers:** You control quality and cost but must manage driver availability, vehicles, and routing. Best for: florists, grocery, restaurants with a regular local customer base.
- **On-demand couriers (DoorDash Drive, Uber Direct):** Drivers appear on demand with no fixed cost. Best for: merchants who need occasional same-day delivery without committing to a driver fleet.
- **Hybrid:** Your drivers for scheduled slots; on-demand couriers for rush orders.
### Step 2: Set up delivery zones and time slot booking
#### Shopify
**Using Zapiet — Pickup + Delivery (the most feature-complete app):**
1. Install **Zapiet — Pickup + Delivery** from the Shopify App Store
2. In Zapiet, go to **Delivery → Zones** and define your delivery coverage area by:
- Postal/ZIP codes (simplest): list all ZIP codes you deliver to
- Radius from your store address
- Custom drawn polygon (requires higher Zapiet plan)
3. Set up time slots in **Delivery → Time Slots**:
- Define daily windows (e.g., 10am–12pm, 12pm–2pm, 2pm–4pm, 4pm–6pm)
- Set capacity per slot (e.g., max 20 orders per 2-hour window)
- Set the order cutoff time for each slot (e.g., orders for the 2pm–4pm slot must be placed by 12pm)
4. Set delivery fees per zone in **Delivery → Rates** (can be distance-based or flat)
5. Customers see available time slots during Shopify checkout after entering their address
**Order management in Zapiet:**
- Go to Zapiet → Orders to see all delivery orders sorted by time slot
- Export the pick list and manifest for your drivers from this view
- Mark orders as "out for delivery" and "delivered" to update customers
#### WooCommerce
**Using WooCommerce Local Pickup Plus (WooCommerce.com official extension):**
1. Install **Local Pickup Plus** from WooCommerce.com
2. Go to **WooCommerce → Settings → Shipping → Local Pickup Plus**
3. Add pickup/delivery locations — for delivery, define your service area by postal code or radius
4. Enable "Delivery date & time selection" to let customers pick slots
5. Configure time slots and capacity in the plugin settings
**For more advanced zone management:** use the **Flexible Shipping** plugin or **WooCommerce Table Rate Shipping** to create delivery rates based on postal code matching.
**For driver dispatch:** use **Onfleet** (onfleet.com) which has a WooCommerce webhook integration — new delivery orders automatically appear in Onfleet for driver assignment.
#### BigCommerce
**Using Zapiet on BigCommerce:**
1. Install Zapiet from the BigCommerce App Marketplace
2. Same configuration as the Shopify workflow above — define zones, time slots, and capacity
**Using ShipperHQ:**
- ShipperHQ has local delivery zones and time-window restrictions built in
- Go to ShipperHQ → Carrier Manager → Add Local Delivery carrier and define your zone rules
### Step 3: Connect to a driver dispatch platform
#### Using DoorDash Drive (on-demand, no fixed driver costs)
DoorDash Drive sends DoorDash gig-economy drivers to pick up and deliver your orders. Available in most major US cities.
1. Sign up at developer.doordash.com/portal for a DoorDash Drive API key
2. For Shopify: install **DoorDash Drive** from the Shopify App Store — it creates a DoorDash delivery automatically when you mark an order for dispatch
3. DoorDash notifies the customer with a real-time tracking link via SMS
4. You pay per delivery (typically $7–$15 depending on distance)
#### Using Uber Direct (on-demand)
Similar to DoorDash Drive — Uber Direct uses Uber drivers for local delivery.
1. Sign up at developer.uber.com/products/uber-direct
2. Install the Uber Direct app if available for your platform, or use the REST API
3. Create a delivery by sending the pickup address (your store) and drop-off address (customer) to the Uber Direct API
#### Using Onfleet (your own drivers + route optimization)
Best if you have your own delivery team and need route optimization and real-time tracking.
1. Sign up at onfleet.com (starts at $349/month for up to 3 drivers)
2. Install the WooCommerce webhook integration or use Zapier to connect your platform to Onfleet
3. New orders auto-create Onfleet tasks
4. Dispatchers assign tasks to drivers in the Onfleet web dashboard
5. Drivers get a mobile app with turn-by-turn navigation and proof-of-delivery photo capture
6. Customers receive an SMS with a real-time tracking link when the driver starts their route
### Step 4: Handle edge cases
**Slot fills up after customer views it:**
- Most apps (Zapiet, Onfleet scheduling) use real-time slot availability checks at checkout
- Enable slot capacity enforcement in your app settings to prevent overbooking
**Address outside delivery zone:**
- Zapiet checks the delivery zone before showing time slots — if the address is outside your zone, delivery options are hidden and only pickup/standard shipping shows
- Test this thoroughly with addresses near your zone boundary before going live
**Driver can't fulfill an order:**
- For DoorDash Drive / Uber Direct: the platform automatically reassigns to another driver
- For your own drivers (Onfleet): the dispatcher must manually reassign in the dashboard; set up Onfleet alerts for unassigned tasks approaching their slot window
**Cutoff time management:**
- Set your order cutoff 2–3 hours before the delivery window to give time for picking, packing, and loading
- Zapiet automatically hides time slots that have passed their cutoff
### Step 5: Custom / Headless Implementation
For headless stores that need full control over zone management and slot booking:
```typescript
// Check if a customer address is in a delivery zone
async function checkDeliveryEligibility(params: {
customerZip: string;
deliveryZones: { name: string; zipCodes: string[]; deliveryFeeCents: number }[];
}): Promise<{ eligible: boolean; zone?: string; feeCents?: number }> {
const zone = params.deliveryZones.find(z => z.zipCodes.includes(params.customerZip));
if (!zone) return { eligible: false };
return { eligible: true, zone: zone.name, feeCents: zone.deliveryFeeCents };
}
// Get available time slots for today (slots with remaining capacity)
async function getAvailableSlots(paramRelated in fulfillment-shipping
order-fulfillment-workflow
IncludedStreamline your warehouse with digital pick-pack-ship workflows, barcode scanning for accuracy, and automatic packing slip generation
dropshipping-integration
IncludedConnect to supplier APIs for automatic order routing to dropship vendors, real-time inventory sync, and margin calculation per order
free-shipping-thresholds
IncludedMotivate larger orders by showing a progress bar toward free shipping and nudging customers to add more items to qualify
returns-management
IncludedProcess returns end to end — generate prepaid labels, apply refund or exchange logic, update inventory, and notify customers automatically
shipment-tracking
IncludedGive customers live package tracking by aggregating carrier status updates via webhooks and sending proactive delivery notifications
international-shipping
IncludedHandle cross-border orders with customs form generation, duties and taxes estimation, HS code assignment, and restricted items blocking