Delivery & Pickup Scheduling – Documentation

Delivery & Pickup Scheduling — Documentation

This guide explains every setting in the plugin and how it behaves on WooCommerce checkout, orders, and customer rescheduling. Use this as a reference before enabling schedules on a live store.

WooCommerce Delivery + Pickup Slots • Holidays • Blackouts Exports • Analytics Email + SMS
Demo Tip

Keep the demo site lightweight. Install only what you need for testing and compatibility checks.

1) Installation

Install & activate
  1. Go to WP Admin → Plugins → Add New → Upload Plugin.
  2. Upload the plugin ZIP, install, and activate.
  3. Open WooCommerce → Delivery Settings (plugin menu location may differ by build).

If uploads fail with “The link you followed has expired”, increase PHP upload limits (server-side).

2) Delivery Settings

Core controls
  • Enable Delivery Scheduling: Turns delivery date/time selection on or off at checkout.
  • Day Wise Delivery Cut-off: Set weekday-specific same-day cut-off times.
  • Delivery Date: Label, Required (Yes/No), and Format.
  • Delivery Time: Label and Required (Yes/No).
  • Delivery Instructions: Label, Required (Yes/No), and Enable (Yes/No).
  • Delivery Schedule Title: Label and Enable (Yes/No).
  • Adjustment Fee: Fee label and discount label shown in order totals when slot has price adjustment.

Delivery Date — field meanings

Field Set in Admin Shown on Checkout What it does
Label Delivery Settings → Delivery Date → Label Field title above date input Changes only the visible text (example: Delivery Date, Delivery Day, Preferred Delivery Date).
Required Delivery Settings → Delivery Date → Required Validation on place order Yes = customer must select date. No = checkout can proceed without date.
Format Delivery Settings → Delivery Date → Format Date display in field and order meta Controls output format (example: DD/MM/YYYY). Calendar logic remains date-safe; only display changes.
Where this appears

Inside the WooCommerce checkout schedule box when Delivery is selected.

3) Pickup Settings

Pickup configuration
  • Enable Pickup Scheduling: Turns pickup date/time selection on or off at checkout.
  • Day Wise Pickup Cut-off: Weekday-specific same-day cut-off for pickup.
  • Pickup Date: Label and Required (Yes/No).
  • Pickup Time: Label and Required (Yes/No).
  • Pickup Instructions: Label, Required (Yes/No), and Enable (Yes/No).
  • Pickup Schedule Title: Label and Enable (Yes/No).
  • Adjustment Fee: Fee/discount labels for pickup slot pricing.

Pickup rows — behavior

Field Group Set in Admin What it does
Pickup Date Pickup Settings → Pickup Date (Label + Required) Label changes display text; Required controls mandatory validation.
Pickup Time Pickup Settings → Pickup Time (Label + Required) Controls slot selector text and required validation.
Pickup Instructions Pickup Settings → Pickup Instructions (Label + Required + Enable) Enable shows/hides field, Label changes title, Required controls validation.
Pickup Schedule Title Pickup Settings → Pickup Schedule Title (Label + Enable) Enable shows/hides heading; Label sets heading text.

4) Advanced Rules

Advanced rules (inside Delivery / Pickup tabs)

No separate Advanced Rules tab. These controls live inside Delivery and Pickup settings.

Field What it controls Example
Enable Advanced Rules Master switch for all controls below. Disabled = lead/max/filters/blackouts ignored
Delivery Lead Days Minimum days from today before a delivery date can be selected. 2 = today & tomorrow blocked
Delivery Max Booking Days Maximum future booking window for delivery. 15 = next 15 days allowed
Pickup Lead/Max Booking Days Same rules for pickup schedule. Lead 1, Max 10
Recurring Holidays Block selected weekdays every week (delivery/pickup separately). Sunday selected = all Sundays blocked
Shipping Methods Show Delivery/Pickup only for selected shipping methods. Flat rate only / Local pickup only
Zones Show Delivery/Pickup only for selected shipping zones. Only India zone
Blackout Date Ranges Block complete date periods. 24-12-2026 to 31-12-2026
Allowed Products / Categories Show Delivery/Pickup only when cart matches filters. Select Product A/B or specific category
Enable Customer Reschedule Global switch for customer-side reschedule in My Account. Enabled + order-level allow = customer can reschedule
Allowed Statuses Customer can reschedule only for selected order statuses. pending, processing, on-hold
Reschedule Pricing Mode Controls how slot price changes affect order. Keep original pricing (recommended)
Important behavior

If a filter field is empty, that specific filter is not applied. Checkout validates these rules server-side.

5) Time Slots

Slot creation & pricing

Create slots with Name, For, Day, Start, End, Max Orders, and Price Adjustment.

Field Shown on Checkout Meaning and behavior
Name Before time range Optional title. If empty, checkout shows only time range.
For Slot visibility All = visible for Delivery and Pickup. Delivery = only Delivery. Pickup = only Pickup.
Day After date selection All Days = available daily. Specific day = available only on that weekday.
Start / End Time range Defines slot window. End should be later than Start.
Max Orders Availability control Daily capacity per slot per schedule type. Once reached, slot becomes unavailable.
Price Adjustment Order total impact Positive adds fee, negative applies discount. Labels come from Delivery/Pickup settings.

Slot display examples

  • If Name is set: Afternoon (12:00 PM - 4:00 PM)
  • If Name is empty: 9:00 AM - 12:00 PM

6) Holidays

Delivery holidays vs pickup holidays

Manage delivery and pickup holidays separately. These dates are blocked in the calendar UI and validated again on checkout submit.

Field Shown on Checkout Meaning and behavior
Delivery Holidays Delivery calendar only Blocked only when customer selects Delivery.
Pickup Holidays Pickup calendar only Blocked only when customer selects Pickup.
Note

Holiday blocking is enforced server-side, so blocked dates cannot be bypassed using manual requests.

7) Calendar Sync (ICS)

Public feed, download, token regeneration
  • Public ICS Feed URL: Use in Google/Apple/Outlook calendars.
  • Download ICS Now: Export current schedule events as a .ics file.
  • Regenerate Feed Token: Invalidate old feed links and generate a new secure URL.

8) Analytics

Summary view and order calendar view
  • Summary: Date range + filters (Type, Status, Category, Shipping Method) → KPIs and tables.
  • Order Calendar: Month navigation with operational filters and day-wise order view.

Calendar popup shows type, date, time slot, instructions, and relevant details.

9) Exports

CSV exports for reporting

Export schedule-level reporting data by date range and filters.

  • Order number
  • Customer details
  • Delivery/Pickup type
  • Date and time slot
  • Instructions
  • Amount adjustments

10) Notifications

Email + Admin Alerts + Manual Send + SMS Notifications

The Notifications tab contains 5 sub-tabs:

  • Email Notifications
  • Admin Alerts
  • Send Alerts
  • SMS Notifications
  • SMS Gateway
Sub-tab Purpose Key behavior
Email Notifications Automatic customer emails. Template status, subject, content, trigger rules (before/after, unit, value, scope).
SMS Notifications Automatic customer SMS. Template rules + per-template test SMS with gateway response output.
Admin Alerts Daily summary emails to store admin. Runs through WordPress cron; recommended to set server cron for reliability.
Send Alerts Manual sending for selected orders. Enter order IDs/numbers; email and SMS are separate actions.
SMS Gateway Generic provider API support. GET/POST, custom headers, templates, success keyword matching.

11) SMS Gateway Setup

Method, URL, headers, templates, placeholders, test SMS

Standard placeholders: {phone}, {message}, {phone_json}, {message_json}

Custom aliases: {NACS_TECH_MOBILE}, {NACS_TECH_TEXT}, {NACS_TECH_MOBILE_JSON}, {NACS_TECH_TEXT_JSON}

Validation rules

  • GET: query template must contain {phone} and {message}
  • POST: body template must contain {phone}/{message} OR JSON variants

Template examples

  • GET Query: User=abc&Password=xyz&Number={phone}&Text={message}
  • POST form-urlencoded: phone={phone}&message={message}
  • POST JSON: {"Number":{phone_json},"Text":{message_json}}
Test SMS

Use “Send Test SMS” inside the template form. It returns HTTP status, response body, and transport error (if any).

12) Rescheduling

Customer vs admin reschedule + pricing mode
  • Admin can reschedule from order edit.
  • Customer reschedule requires global enable + order permission + allowed statuses.
  • Reschedule Pricing Mode controls whether pricing changes are kept or recalculated.

Recommended mode for most stores: Keep Original Pricing.

13) Cron

Reliable scheduling for alerts and automation

Automatic email/SMS notifications and admin alerts run through WordPress cron. On low-traffic sites, configure a real server cron.

Recommended

Use a server cron to call WP-Cron every 5 minutes for reliable triggers.

14) Troubleshooting

Common issues checklist

Date unexpectedly blocked

  • Check Holidays, Recurring Holidays, Blackout Ranges
  • Check Lead/Max limits
  • Check Day-wise Cut-off

Delivery/Pickup option not showing

  • Enable switch ON
  • Shipping method filter / Zone filter
  • Allowed products/categories filters
  • Enable Advanced Rules (if using rules)

SMS not sent

  • Verify Gateway URL, method (GET/POST), headers
  • Ensure required placeholders are present
  • Verify success keyword (if configured)

Screenshots

Add screenshots here for faster understanding. Replace placeholder boxes with WordPress images.

Delivery Settings Screenshot

Delivery Settings — show enable toggle, delivery date/time rows, cut-off controls.

Pickup Settings Screenshot

Pickup Settings — show pickup date/time + instructions + title.

Screenshot Placeholder

Time Slots — show slot table with name, day, max orders, price adjustment.

Screenshot Placeholder

Checkout UI — show delivery vs pickup switch + calendar + slots.

Screenshot Placeholder

Analytics — show summary KPIs and order calendar popup.

Screenshot Placeholder

Notifications — show email/SMS templates + SMS gateway settings.

Need help?

Use the plugin “Help” tab or contact info@nacstech.in with your checkout scenario and expected behavior.

↑ Back to top