Skip to main content

Managing Ship Dates and Delivery Dates in Storefronts

Updated over 2 weeks ago

Zest lets you collect either a ship date or a delivery date from customers at checkout:

  • Ship date — The date the order leaves your warehouse. This is fully within your control and is the most popular choice among brands.

  • Delivery date — The date the order is expected to arrive at the recipient. Because delivery depends on carrier performance, weather, and other factors, this option requires more conservative lead times and accepts that you may not always meet the promised date. Your fulfillment system will need to work backwards from the delivery date to calculate the actual ship date.

You can switch between these modes at any time in Settings > Shipping under Order scheduling. When switching, remember to review and update your valid days of the week, lead times, and blocked dates to match the new date type.

Configuring Your Shipping Calendar

Navigate to Settings > Shipping in your Zest dashboard. You'll find four key calendar controls:

Valid Days of the Week

Select which days of the week customers are allowed to choose. For example, if you only ship Monday through Wednesday, select only those days. Customers will not be able to pick dates that fall on unselected days.

Lead Time (Days)

The minimum number of calendar days between when an order is placed and the earliest selectable date. For example, a lead time of 2 means a customer ordering on Monday will see Wednesday as the earliest option.

Lead time is counted in calendar days — weekends are included in the count. However, if the calculated earliest date lands on a day you don't ship (a blocked date or an invalid day of the week), the system automatically skips forward to the next valid day.

  • If your order scheduling mode is Hold orders in Zest, lead time controls how many days before the scheduled date the order gets released to your ecommerce system.

  • If your order scheduling mode is Collect a shipping/delivery date and submit immediately, lead time controls how far in advance orders must be placed.

Blocked Dates

Select specific dates when you do not ship — holidays, warehouse closures, etc. Each date must be selected individually using the date picker. Blocked dates prevent customers from choosing those days in the calendar.

Maximum Order Delay (Weeks)

Controls how far into the future customers can schedule orders. This is configured in weeks (default: 8 weeks, minimum: 1 week). If you need customers to schedule further out — for example, for an annual gifting program — increase this value.

Tip: Review and update these settings seasonally, especially before peak periods like holidays.

Order Submission Options: Submit Immediately vs. Hold in Zest

Under Settings > Shipping > Order scheduling, you'll see three options:

Hold orders in Zest

Orders stay in Zest and are automatically released to your ecommerce system a set number of days before the customer's selected date. The number of days is controlled by your Lead time setting.

This option is useful if your fulfillment system cannot interpret future ship date metadata, but it delays inventory deduction. Monitor Zest's Outstanding Inventory report to track orders waiting to be released.

Collect a shipping date and submit orders immediately

Orders push to your ecommerce system (e.g., Shopify) right away with the shipping date attached as metadata. Inventory is decremented at purchase time, giving your fulfillment team better visibility for planning ahead.

Collect a delivery date and submit orders immediately

Same as above, but the date collected and attached is the expected delivery date rather than the ship date.

Most brands prefer submitting orders immediately because it provides better inventory visibility and lets fulfillment teams plan ahead.

How Ship Dates Appear in Shopify Orders

When an order is submitted to Shopify, the selected date can appear in three places:

Order attributes

The date is included under Additional Details on the Shopify order. By default, the attribute is named "Scheduled Date."

Order tags

The date is added as an order tag. Note that Shopify enforces a 40-character limit on individual tags, so very long tag formats will be truncated.

Metafields (optional)

You can configure the date to be pushed as a Shopify order metafield. Metafields of type date must use the format YYYY-MM-DD.

Format customization

The date format is fully customizable via Liquid templates to match your ERP or fulfillment system requirements. The default format is MM-DD-YYYY (e.g., 03-15-2026). Common alternative formats include:

  • YYYY-MM-DD (e.g., 2026-03-15)

  • MM/DD/YYYY (e.g., 03/15/2026)

  • DD-MM-YYYY (e.g., 15-03-2026)

Tag format is also customizable — for example, ship-date-2026-03-15 or ship by 03/15/2026.

Work with Zest during onboarding or via support to specify the exact format, field names, and placement your downstream systems need.

Setting Per-Recipient Ship Dates via CSV Upload

When uploading a recipient CSV for a bulk order, you can include a scheduled_date (also accepted as scheduleddate) column with a different date for each row. This enables use cases like:

  • Employee birthday gifting — Upload an entire year's worth of recipients on January 1st, each with their birthday as the scheduled date.

  • Work anniversaries — Schedule gifts to go out on each employee's anniversary date.

Zest will automatically process each order as the specified date approaches (if using Hold in Zest mode) or immediately with the date attached (if using Submit Immediately mode).

Important: If a recipient row has a scheduled_date value, it takes priority. If the column is left blank for a given recipient, the order-level date is used as a fallback.

This column may not appear in the default CSV template — add it manually when preparing your file.

When uploading, you'll see a "Schedule shipment at dates specified in CSV upload" option in the scheduling step.

Handling ASAP / "Ship as Soon as It's Ready" Orders

When a customer selects "Ship gift as soon as it's ready" (the ASAP option), the behavior depends on your Infer date on ASAP orders setting (found in Settings > Shipping, visible when using Submit Immediately mode):

Attach a date to orders where a date is not selected (enabled)

The system automatically calculates the next available date based on your calendar rules (lead time, valid days, blocked dates) and attaches it to the Shopify order. The customer will see a preview like "Expected to ship on Mar 10, 2026" (or "Expected delivery on…" if using delivery date mode).

Do not attach a date (disabled)

No date is pushed to Shopify. This can cause issues if your downstream fulfillment flows depend on a date field being present on every order.

Recommendation: Enable this setting if your fulfillment system requires a date on every order.

Note: This setting is only available when using Submit Immediately mode (shipping or delivery). It does not appear when using Hold orders in Zest mode.

Per-Product Lead Times

You can configure a required lead time at the individual product variant level within Zest. This is useful for products that need extra preparation time — for example, custom-engraved or made-to-order items.

How it works: When a product variant has its own lead time set, the system uses whichever lead time is greater — the global calendar lead time or the product's lead time. For example:

  • Global lead time: 2 days

  • Custom-engraved product lead time: 5 days

  • Result: Customers will see the earliest available date 5 days out when that product is in their order.

If the product's lead time is shorter than the global lead time, the global lead time still applies. This ensures the minimum fulfillment window is always respected.

When product-based lead times are active for an order, customers may see a note indicating that their gifts may require additional lead time.

Troubleshooting Common Issues

Timezone Errors

The calendar operates based on your store's configured timezone (set in your Zest account settings; defaults to America/New_York if not set). Users in different timezones may experience date shifts. For example, a customer in Europe who is 9 hours ahead of US Pacific time may see different available dates because the two locations can be on different calendar dates during parts of the day.

Additionally, when Zest passes dates as UTC timestamps (midnight of the selected date), downstream systems interpreting in a different timezone may display the date as one day earlier. The system mitigates this by using noon of the selected date internally, but ensure your store's timezone setting matches your primary operating timezone and coordinate with your ERP on how timestamps are interpreted.

The calendar displays the timezone to customers so they know which timezone dates are shown in.

Missing dates on Shopify orders

If ship dates are not appearing on your Shopify orders:

  1. Check that your Order scheduling mode is set to one of the "Submit immediately" options (not "Hold orders in Zest").

  2. If customers are choosing ASAP shipping, verify that "Attach a date to orders where a date is not selected" is enabled.

  3. Confirm your Shopify order settings (attributes, tags, metafields) include the {{scheduledDate}} Liquid variable.

Invalid date selected

If a customer reports they cannot select a valid date:

  • Verify your valid days of the week include at least one day.

  • Check that your lead time and blocked dates don't inadvertently block all near-term dates. The system can scan up to 60 days forward to find a valid date — if all 60 days are blocked, no date will be available.

  • Ensure the maximum order delay is set high enough for the customer's needs.

Blackout date gaps

If you have many consecutive blocked dates (e.g., a two-week holiday closure), the calendar will skip over them and show the next available date. However, if the gap between available dates is large, customers may be confused by the jump. Consider adding a direct ship date help text message (configurable in Settings > Shipping) to explain the gap — for example, "Our warehouse is closed Dec 23–Jan 2. The next available ship date is Jan 3."

Settings apply globally

Remember that all shipping calendar settings (valid days, lead times, blocked dates, maximum delay) are configured at the account level and apply to all storefronts.

They cannot currently be customized per individual storefront. If you need different calendar rules for a specific business line, the recommended approach is to create a separate Zest instance.

Exception: Concierge
Calendar rules from self-service storefronts do not apply in Concierge. Concierge allows selecting any future date as an intentional flexibility measure for managed orders.

No hourly cutoff support

Zest does not support time-of-day cutoff times for corporate storefronts — cutoffs are day-based only (effectively midnight in your store's timezone). If your warehouse has a specific cutoff time (e.g., 2 PM) and you need a buffer, set a more conservative lead time by adding an extra day. Any cutoff time text displayed on storefronts is informational only and does not trigger system behavior.

Did this answer your question?