Shopify Delivery Date Report: Plan Tomorrow's Production

Bakeries, florists, catering kitchens, meal-kit brands. If your customer picks a delivery date at checkout, Mipler turns that property into a real date filter - so you can pull tomorrow's deliveries grouped by product and quantity without opening a single order by hand.

A bakery takes 38 pre-orders for Saturday. Each customer picked a delivery date at checkout. By Friday evening, someone has to answer one question: how many of each product do we bake tomorrow?

In Shopify Admin, that takes opening 38 orders one by one, reading each line-item property, and tallying by hand into a spreadsheet. Thirty to sixty minutes, every evening, with a real risk of missing an order. In Mipler, it is one filter and one group-by. Thirty seconds.

The reason Shopify cannot give you this report natively is structural - delivery dates live in order_item.properties as plain text, not a typed date field. Mipler closes that gap by parsing the text into a real Date column. From there it behaves like any other date you can filter, sort, group, or chart by.

Tomorrow's production list: the killer use case

The concrete problem most merchants land here for - production planning from pre-orders:

  • Bakery / pastry: tomorrow's bake list - how many sourdough loaves, croissants, cakes by SKU.
  • Florist: tomorrow's arrangement list by bouquet type and stem count.
  • Catering: Saturday's portion counts by menu item, derived from this week's orders.
  • Meal-kit / subscription food: next week's pick-and-pack plan grouped by SKU and ship date.

The shape of the answer is the same in every case: a list grouped by product, summing quantity, filtered to a delivery-date range. Mipler builds it once as a saved report you reuse every shift.

Adjacent verticals where the same recipe applies: gift shops with chosen delivery dates, grocery / produce delivery, custom-fabrication shops with "needed by" dates, restaurant pre-orders, and pop-up / event sales. Same formula, same output - production list by date.

Mipler production list grouped by product and delivery date

How it looks in Shopify today vs in Mipler

The same daily workflow, side by side. Time and risk are the part that matters.

Step Shopify Admin Mipler
1. Find tomorrow's deliveries Open the Orders tab. The list shows order date, not delivery date. No filter exists for line-item properties. Filter the Order Items report: Delivery Date = tomorrow.
2. Read each order's delivery date Open every open order one by one. Scroll to line items. Find the "Delivery Date" property in the gray text under each item. Done in step 1.
3. Select the orders that ship tomorrow Manually note the matching order numbers in a spreadsheet. Done in step 1.
4. Build the product list For each tomorrow-order: copy line items and quantity into the spreadsheet. Sum by SKU at the bottom. Group by product, sum quantity. Two clicks.
5. Hand off to production Print the spreadsheet. Hope no new orders come in before you start baking. Export PDF, or schedule the report to email the kitchen at 6 p.m. every evening with the next day's list.
Time per day 30 - 60 minutes 30 seconds (after one-time setup)
Risk of a missed order High - one skipped order means missing inventory. None - the filter catches every matching order automatically.
Late-coming orders You re-do the manual pass. Re-open the report. It reflects current state.

The annual time saving is real - even at 40 minutes a day, that is roughly 240 hours a year a small kitchen owner gets back.

Why Shopify Analytics can't filter on a property date

Shopify stores line-item properties as a JSON array on each line item, in the shape:

[
  { "name": "Delivery Date", "value": "2026-06-15" },
  { "name": "Gift Message", "value": "Happy birthday!" }
]

The value is always a string. There is no schema enforcement, no type, no canonical format. Two checkout apps writing the same property might emit 2026-06-15, 15/06/2026, or June 15, 2026. Native Shopify reporting cannot bridge that gap because it does not interpret property values - it treats them as opaque display text.

How Mipler turns the property string into a date

Mipler exposes line-item properties through the order_items.properties JSON column. Two MQL functions do the work:

  • json_path(order_items.properties, '#(name="Delivery Date").value') - extracts the value of the named property as text.
  • date_value(<text>) - converts that text into a typed Date, with auto-detection of common formats or an explicit layout when needed.

Combined, you add one custom column to any order or order-items report:

date_value(
  json_path(order_items.properties, '#(name="Delivery Date").value')
)

That column is now a real date. Filter by it, group by it, sort by it, chart by it. Use it in date-range filters like "this week" or "next 14 days". Use it as the primary date axis in any time-series report.

Custom column converting line-item property text to a date type
节省时间并减少错误 Mipler Reports Shopify

Other reports you can build on the same data

Once the delivery-date column exists, the same report shape solves several adjacent problems:

  • This week's pipeline. Filter to "next 7 days" instead of "tomorrow" - useful for staffing decisions and ingredient ordering.
  • Lead-time analysis. Combine with order.created_at to compute days between order and requested delivery. Surface customers who order last-minute vs a month ahead - useful for capacity planning.
  • Gift orders by month. Group by month of the delivery date to see seasonal patterns - which months drive volume, which months drive same-day urgency.
  • Pre-order release schedule. Group by release date stored in properties. Each row is a release wave with order count, units, and revenue locked in.
  • Subscription next-ship dashboard. Count next-ship dates by week to plan fulfilment capacity.
  • Overdue deliveries. Filter to delivery dates earlier than today on unfulfilled orders - a list nobody wants but every operations team needs.

Setup in five steps

  1. Open Mipler from your Shopify admin.
  2. Open the Order Items report (or any custom report built on order items).
  3. Add a custom column. Open the column editor and paste this formula:
    date_value(
      json_path(order_items.properties, '#(name="Delivery Date").value')
    )
    Replace "Delivery Date" with whatever your storefront actually calls the property. Common variants: Send Date, Ship Date, Gift Date, delivery_date.
  4. Save the column with a friendly name like "Delivery date". It now behaves like a native date column.
  5. Filter the report to the date range you care about - tomorrow, this week, custom range - and group by product to get the production list.

One-time setup. From day two, the report runs in seconds. Schedule it to email the kitchen at 6 p.m. every evening and the workflow disappears entirely.

Edge cases worth knowing

  • Multiple property keys for the same concept. Some checkouts use Delivery Date, others use Send Date or Ship Date. Use a case expression to fall back across several names:
    date_value(
      case
        when json_path(order_items.properties, '#(name="Delivery Date").value') != "" then
          json_path(order_items.properties, '#(name="Delivery Date").value')
        else
          json_path(order_items.properties, '#(name="Send Date").value')
      end
    )
  • Non-standard date formats. If the checkout emits something like 15/06/2026 instead of ISO, pass an explicit layout to date_value: date_value(text, "DD/MM/YYYY").
  • Missing values. Orders without the property return blank from json_path. date_value returns null, and those rows simply do not match a date filter. No errors.
  • Multiple line items per order with different delivery dates. A property is per-line-item, so one order can technically have two delivery dates if a customer ordered two products with different requested dates. Group at the line-item level for accuracy.
  • Delivery slots, not just dates. If your checkout captures a time slot ("9 a.m. - 11 a.m.") in a separate property, add another column with the same json_path recipe and group by both date and slot.

Schedule the daily production email

Build the report once. Then schedule it to email at the cadence that matches your shift:

  • Bakery / pastry: 6 p.m. evening email with tomorrow's bake list grouped by product. Or 3 a.m. for stores that bake overnight.
  • Florist: 7 a.m. email with today's arrangements plus tomorrow's pre-orders.
  • Catering: Friday afternoon email with Saturday + Sunday combined, broken down by menu item.
  • Meal-kit: Sunday evening email with the week's pick-and-pack plan grouped by SKU.

Add the AI summary toggle and the kitchen lead sees a one-line narrative at the top - "32 orders ship tomorrow; 4 are gift orders flagged for a personal note; 1 is overdue from last week" - before opening anything.

FAQ

Can Shopify Admin show orders by delivery date instead of order date?

No. The Orders tab and Shopify Analytics both filter and sort by order-creation date or fulfilment status. Line-item properties (where delivery date is stored) are not exposed as filterable fields anywhere in native Shopify reporting.

Why does Shopify store delivery dates in line-item properties instead of a dedicated field?

Shopify's order schema is fixed. Anything custom - delivery date, gift message, engraving text, allergy notes - has to go into order notes, order metafields, or line-item properties. Most date-picker apps choose line-item properties because the data is naturally per item.

I run a bakery / catering / florist on Shopify. Will this work for me?

Yes - this is the primary use case for the feature. Any merchant whose customers choose a delivery date at checkout (via a date-picker app or a custom property) can build a daily production report grouped by product. Setup is a single custom column.

What if my checkout uses a different property name than "Delivery Date"?

Replace the string in the formula with whatever your storefront actually writes. Common names: Delivery Date, Send Date, Ship Date, Gift Date, delivery_date. The case in the property name matters - it must match exactly.

What date formats does date_value support?

date_value auto-detects common formats (ISO 2026-06-15, US 06/15/2026, written June 15, 2026, and similar). For non-standard layouts, pass an explicit format string as the second argument: date_value(text, "DD/MM/YYYY").

Does this work with date-picker apps like Zapiet, Bukket, Order Delivery Date, BSS Date Picker?

Yes. Any app that writes its data into a line-item property is compatible. The four named above all use this mechanism. If you are unsure how your app stores the date, open any order with a delivery date set and look at the line-item properties shown under the product.

Can I do the same for delivery slots or other property types?

Yes. Properties extract as text by default. For dates, use date_value. For numbers, wrap with int or float. For lists, use json_array_elements. Combine multiple property extractions on the same report - typical use is one column for the date plus one column for the time slot, then group by both.

How is this different from Shopify metafields?

Metafields are stored per-order (or per-product, per-customer) - one value per parent entity. Line-item properties are stored per line item, which is what you want when the date is specific to the item being shipped, not the order as a whole.

Can I combine this with multi-store reporting?

Yes. Multi-store aggregation happens at the data layer, so a delivery-date report built on order items works across linked stores automatically. Useful when you run separate Shopify stores per region but produce from one kitchen.

Can the daily production list be emailed automatically?

Yes. Use scheduled reports to email the report at any cadence (daily, weekly, custom cron). Choose a format - PDF for printing, XLSX for spreadsheet edits, CSV for import into a kitchen-display system.

Why this matters

For a bakery, a catering service, or a florist, the delivery date drives the entire daily operation. Native Shopify cannot surface it. The standard workaround is exporting CSV and parsing in Excel - fine on day one and a tax on every following day. date_value over json_path turns the property into a first-class column. Twenty seconds of formula buys you a permanent dashboard and a daily production list that emails itself.

准备好开始了吗?

立即加入Mipler,今天就享受有意义的报告。