Zest's built-in date picker gives your shoppers a smooth, guided way to choose a ship date for each recipient in a multiship order. This article walks you through everything you need to set it up, customize it, and keep it running smoothly.
Before you begin:
You need the Zest Gift Notes app installed on your Shopify Plus store.
Multiship must be enabled on your account.
You'll configure the date picker inside the Zest admin, under Settings → Multi-Ship Settings → Date Picker.
Overview: What Is a Multiship Date Picker?
When a shopper sends gifts to multiple recipients in one checkout, they may want each gift to arrive on a specific date — or you may need to set shipping schedules to support your fulfillment operations. The Zest multiship date picker lets shoppers select a ship date (or delivery date) for each recipient, one at a time, as they build their multi-recipient order.
Unlike a standard one-to-one order where any third-party date picker app can work, multi-recipient (multiship) orders require Zest's native date picker.
This is because multiship orders use Shopify draft orders under the hood, which means standard checkout form fields and external date picker apps cannot interact with the per-recipient flow. Zest's picker is designed specifically for this context.
You control every aspect of the calendar — available days, lead times, blocked dates, and how the selected date is written to your orders — all from the Zest admin.
Four Common Date Picker Scenarios
Before configuring, it helps to know which scenario matches your setup:
Scenario 1: You do not have an existing date picker, but you don't need one for multiship
Each Child Order ships as soon as possible based on available shipping methods. Shoppers still select a shipping method per recipient. No date picker configuration is needed.
Scenario 2: You do not have an existing date picker, and you want to use Zest's for multiship
You configure Zest's date picker with your calendar rules (lead times, blackout dates, etc.) and define how the selected date gets written to Child Orders. After each recipient's address is entered, the picker appears and the shopper selects a date. Shoppers also select a shipping method per recipient separately.
If you present the picker as a send date, your lead time should account for order preparation time.
If you present the picker as a delivery date, your lead time should account for preparation time plus the longest expected transit time, since shipping method selection and date selection are independent.
Scenario 3: You have an existing date picker, and you want to use Zest's for multiship
You'll need to conditionally deactivate your existing date picker when a multiship session is active, so Zest's picker can take over. Otherwise, the behavior is the same as Scenario 2. Coordinate with your theme developer or app support to set up that conditional logic.
Scenario 4: You have an existing date picker, and you want to keep using it for multiship
Do not enable Zest's native date picker. Your existing picker can be placed on the checkout page and will apply to the Parent Order. To push the selected date down to Child Orders, you'll need custom propagation logic (for example, using Shopify Flows).
Note that shipping methods and dates are not linked — the picker is not shipping-method-aware — so if you express dates as delivery dates, use lead times based on your slowest expected shipping method.
Tip: It's generally fine for multiship calendar rules to differ slightly from your regular-order rules, since shoppers will see either your standard date picker (for regular orders) or Zest's picker (for multi-recipient orders) — never both in the same session.
Configuring Your Shipping Calendar
Navigate to Settings → Multi-Ship Settings → Date Picker in the Zest admin to access these options.
Enabling or disabling the date picker
Toggle the date picker on or off at any time from the Date Picker settings page. If your fulfillment system cannot handle order attributes or scheduled holds, disabling the feature entirely is a straightforward option.
Note: Multiship uses Shopify draft orders, so third-party date picker apps (such as Checkout Blocks or Flair) cannot replace Zest's native picker for multiship orders. Zest's picker is required.
Label and help text
In Edit Label, enter the heading shoppers will see above the calendar (for example, "Select your ship date"). This field is required — the settings will not save without it.
In Help Text, optionally add a short description below the label (up to 200 characters).
Important: If your settings fail to save, check that the Label field is not empty. This is the most common cause of save failures in the date picker configuration.
Lead time (minimum advance days)
Set Minimum Lead Time (Days) to the earliest number of calendar days before a shopper can select a ship date. For example, entering 3 means today's orders can be scheduled no earlier than 3 days from now.
Send date setup: Lead time should cover order preparation time only.
Delivery date setup: Lead time should cover preparation time plus the maximum expected transit time for any shipping method you offer.
You can set a value between 0 and 20 days.
Cutoff time
Set a Daily Cutoff Time (hour 0–23 in your store's timezone). Orders placed after this hour are treated as if they were placed the next day before the lead time calculation runs. For example, a cutoff of 12 means orders placed at or after noon are considered next-day for scheduling purposes.
Restricted days of the week
Under Restricted Days, check any days of the week that should never be selectable (for example, Sunday and Saturday for weekend blackouts). By default, Saturday and Sunday are restricted.
Blackout dates
Add specific calendar dates that should be unavailable — for holidays, facility closures, or other exceptions — under Restricted Dates. Dates are entered in YYYY-MM-DD format.
Maximum advance window
Set Maximum Lead Time (Days) to limit how far in advance a shopper can schedule. For example, 60 means no date more than 60 days out is selectable. The allowed range is 7 to 200 days.
Timezone
Your date picker uses your Shopify store's timezone by default. This is set automatically and is read-only — no action needed.
Tip: Are disabled/restricted days counted toward the lead time? You can control this with the Disabled Dates Count Toward Lead Time toggle. When enabled (the default), restricted days still count as lead time days, so the picker skips over them without extending the window unnecessarily.
How Ship Dates Appear in Shopify Orders
When a shopper selects a date, Zest writes it to the relevant Child Order. You can configure this to write as an order attribute, a metafield, or both.
You must configure at least one of the following output options before saving your date picker settings.
Order attributes
Order attributes appear in Shopify as custom attributes on the order. To configure:
Enter an Attribute Key — this is the name that will appear in Shopify (for example,
ship_date).Choose a Date Format for how the date is written:
yyyy-MM-dd(e.g., 2025-12-20)MM/dd/yyyy(e.g., 12/20/2025)dd/MM/yyyy(e.g., 20/12/2025)
Order metafields
Metafields allow for richer data structures. To configure:
Enter a Metafield Namespace and Metafield Key.
Choose an output type:
Date — stores the date in standard Shopify
dateformat (yyyy-MM-dd).String — stores the date as a formatted string; you select the date format.
JSON — stores the date using a custom Liquid template you define (for advanced use cases).
Tags
Ship dates are not written to order tags. Tags on Child Orders include zest-child; tags on Parent Orders include zest-parent.
What appears on the Parent Order vs. Child Orders
The selected ship date is written per Child Order only. Each Child Order receives its own recipient's selected date as an attribute or metafield. The Parent Order does not receive individual ship date attributes from the date picker.
Per-Product Lead Times
At this time, Zest's multiship date picker applies a single set of calendar rules across all products in an order. Product-specific calendars (for example, different lead times for perishable vs. non-perishable items) are not currently supported.
Recommended: Use the most restrictive lead time and restrictions that work for all products you sell through multiship. This ensures every product can be fulfilled within the selected window.
Third-Party Date Pickers and Single-Address Orders
For single-address Gift Notes orders (one shopper, one recipient), Zest does not include a built-in date picker. For these orders, you can use:
Shopify's native Checkout Blocks
The Flair app
Other third-party date picker apps
For consistency across your fulfillment system, align the date format and any metafield structure between your single-address picker and your Zest multiship picker settings.
Troubleshooting Common Issues
Timezone errors — dates appear one day off
Zest's date picker calculates available dates using your Shopify store's timezone, not the shopper's local timezone. If you notice dates appearing off by one day, verify that your Shopify store timezone is set correctly in your Shopify admin under Settings → General. The timezone in Zest's date picker is read from Shopify automatically.
Missing dates — expected dates are not showing up
Check the following:
Minimum lead time: Dates within the lead time window are excluded. Increase the minimum lead time if needed.
Restricted days: Verify the correct days of the week are marked as available.
Blackout dates: Check your restricted dates list for unintended entries.
Cutoff time: If the cutoff hour has passed today, today's date (and possibly tomorrow's, depending on lead time) may be excluded.
Maximum advance window: Dates beyond the maximum lead time days will not appear.
"Invalid date" errors on orders
If a shopper's order shows an invalid or missing scheduled date, verify:
The date picker is enabled and properly configured in Zest settings.
At least one output (attribute or metafield) is configured.
The Label field is not empty (which would prevent settings from saving).
Blackout date gaps appearing unexpectedly
If you notice unexpected gaps in the calendar around holidays, check your Restricted Dates list. Entries must use the exact format YYYY-MM-DD. Incorrect formatting may cause dates to be skipped or ignored.
Multi-ship date picker causing checkout failures
If enabling the Zest date picker for multiship orders causes checkout to fail, disable the date picker immediately and contact Zest support. Always test date picker configuration thoroughly in a staging environment before going live.
Additional Resources
Contact Zest support for help with custom date formatting, Liquid templates, or complex fulfillment integrations.
