Skip to main content
Guides

From Delivery Date to Ship Date: A Daily Fulfillment Workflow for Shopify

Jahangir AlamAugust 7, 20266 min read
CSVShift-JISใƒคใƒžใƒˆใƒปไฝๅทใƒปๆ—ฅๆœฌ้ƒตไพฟ

To ship every Shopify order in time for the delivery date a customer chose, let OrderRules capture that date at checkout and auto-tag each order delivery:YYYY-MM-DD. Each morning, filter orders by the delivery date that equals today plus your transit time, then export that batch to your carrier's CSV. That is a reliable ship-by-date workflow you can run today โ€” no spreadsheet, no guesswork.

This guide is for date-critical shops โ€” Japanese confectionery (ๅ’Œ่“ๅญใƒปๆด‹่“ๅญ), bakeries, florists, meal prep โ€” where a customer picks when they want the parcel and you have to work backward to when it must leave the kitchen. It shows exactly how to turn customer-chosen delivery dates into a daily "ship today" list and hand it to Yamato, Sagawa, or Japan Post.

The problem: customers pick a delivery date, you have to pick a ship date

A customer who orders on Tuesday for Friday delivery doesn't care how long transit takes โ€” that's your job. If your lead time to their region is two business days, that order has to leave on Wednesday. Multiply that across a hundred orders, each with its own delivery date and destination, and "what has to ship today?" becomes the question that decides whether anything arrives on time.

Shopify doesn't answer it. Out of the box there's no delivery-date field, no way to filter by it, and nothing that ties a chosen delivery date to the day an order must ship. Merchants end up exporting everything to a spreadsheet and eyeballing dates โ€” which breaks the moment volume rises or a holiday shifts the calendar.

The workflow OrderRules supports today

OrderRules (Advanced plan) gives you the four pieces that make a ship-by-date routine work: a delivery-date picker, checkout enforcement, delivery-date order tags, and carrier CSV export. Chained together, they replace the spreadsheet:

  1. The customer selects a delivery date (and optional time slot) on the product or cart page.
  2. The Shopify Function enforces a valid, available date at checkout.
  3. OrderRules writes delivery:YYYY-MM-DD (and slot:HHMM-HHMM) on the order.
  4. Each day you filter orders by the delivery-date tag and export the batch to your carrier.

The one thing to be clear about: OrderRules tags by delivery date, not ship date. There is no automatic "ship date" tag today. But because the delivery-date tag is written on every order, deriving what to ship is a fixed rule โ€” ship date = delivery date โˆ’ transit time โ€” and you filter for it in seconds. More on that below.

Step 1 โ€” Capture the delivery date at checkout

Add the OrderRules delivery date & time-slot picker to your product and cart pages as a theme app block โ€” no code. Set your delivery rules (lead time, an order cutoff, selectable weekdays, a booking horizon) and capacity limits per date and per slot so a day can sell out instead of overbooking. Full walkthrough: add a delivery date picker and offer delivery time slots.

The picker enforces the date server-side via Shopify Functions, so Shop Pay and express checkouts can't slip through with an impossible date.

Step 2 โ€” Every order tags itself by delivery date

Once a date is chosen, OrderRules auto-tags the order:

  • delivery:YYYY-MM-DD โ€” the delivery date
  • slot:HHMM-HHMM โ€” the time window (e.g. slot:1400-1600)
  • a pickup-date tag for in-store pickup orders

A backfill action tags existing orders too, so you can start filtering historical orders immediately. See order auto-tagging. These tags turn Shopify's own order search into a picking-list tool โ€” no third-party ops app required.

Step 3 โ€” Work out your ship-by rule

This is the step that replaces the spreadsheet math. You already know your transit time to each region โ€” and if you don't, OrderRules' estimated delivery date gives it to you: it computes arrival from a transit-zone matrix with holiday-aware business-day counting, skipping weekends, blackout dates, and national holidays.

Your ship date for any order is simply:

Ship date = delivery date โˆ’ transit time (in business days)

So "what do I ship today?" becomes "which orders have a delivery date equal to today + my transit days?" If your lead time to a region is two business days, today you ship everything due for delivery two business days from now.

Step 4 โ€” Build today's ship list in Shopify

In Orders, filter unfulfilled orders by the OrderRules delivery-date tag for the target date(s). That filtered set is your daily picking-and-shipping list โ€” and because the delivery: tag is written exactly on every order, the filter is exact. No manual date-reading, no missed parcels.

If you ship to regions with different transit times, run one filter per lead-time band (e.g. delivery-date = today+1 for local, today+2 for the next zone). Each band is one saved order filter.

Step 5 โ€” Export to Yamato B2 Cloud, Sagawa, or Japan Post

Export the filtered batch to your carrier's CSV in its official layout โ€” Yamato B2 Cloud (B2ใ‚ฏใƒฉใ‚ฆใƒ‰, 97 columns), Sagawa e้ฃ›ไผIII (74 columns), or Japan Post ใ‚†ใ†ใƒ—ใƒชR (118 columns) โ€” all in Shift-JIS, so the carrier tool accepts them without cleanup. The delivery-date tag makes the "export exactly today's shipments" filter trivial. Full detail: carrier CSV export and the Japanese carrier CSV guide.

Then import tracking numbers back to fulfill the orders and trigger Shopify's shipping notifications automatically.

What OrderRules does โ€” and doesn't โ€” do here

Being precise saves you a support ticket:

  • โœ… Enforces a valid delivery date (and slot) at checkout, server-side.
  • โœ… Tags every order delivery:YYYY-MM-DD (+ slot, + pickup date), with backfill.
  • โœ… Estimates transit with a holiday-aware, zone-based calendar.
  • โœ… Exports the filtered batch to Yamato / Sagawa / Japan Post CSV, and imports tracking to auto-fulfill.
  • โŒ Does not write a separate ship:YYYY-MM-DD tag, and does not auto-move orders onto a ship-date board. You derive the ship date with the fixed rule above and filter on the delivery-date tag.

For most date-critical shops that rule is enough: the delivery-date filter, run once per lead-time band each morning, produces the same "ship today" batch a ship-date tag would โ€” reliably, and without leaving Shopify.

Why this matters for Japanese confectionery and gift shops

In Japan, choosing a delivery date and time window (้…้€ๆ—ฅๆ™‚ๆŒ‡ๅฎš) is a baseline consumer expectation, and gift seasons like ใŠไธญๅ…ƒ and ใŠๆญณๆšฎ concentrate huge volume onto specific dates. A ship-by-date routine keyed to Yamato and Sagawa lead times is the difference between a smooth season and a wall of "it arrived late" messages. The same workflow serves any perishable or made-to-order shop โ€” see the delivery date picker apps comparison for how the pieces fit together.

Delivery dates are the other half of controlling capacity: OrderRules governs when customers can order (store hours, daily caps, per-customer limits) and when you deliver โ€” in one app, one checkout. See the Delivery Dates feature or start a free 14-day trial.

Frequently asked questions

Not directly today. OrderRules tags every order by its delivery date (delivery:YYYY-MM-DD), not a separate ship date. You derive what to ship today by filtering for the delivery date that equals today plus your transit time โ€” a fixed, reliable rule once you know your lead time per region. A dedicated ship-date tag is on our radar.

Filter unfulfilled Shopify orders by the OrderRules delivery-date tag. If your transit time to a region is two business days, the orders to ship today are the ones tagged with the delivery date two business days from now. Because the tag is written on every order, the filter is exact โ€” no spreadsheet.

Yes. On the Advanced plan, OrderRules exports the filtered orders as a carrier CSV in the official Yamato B2 Cloud (B2ใ‚ฏใƒฉใ‚ฆใƒ‰) layout, as well as Sagawa e้ฃ›ไผIII and Japan Post ใ‚†ใ†ใƒ—ใƒชR โ€” all in Shift-JIS. You can then import tracking numbers back to auto-fulfill.

OrderRules estimates arrival with a transit-zone matrix and holiday-aware business-day counting (it skips weekends, blackout dates, and national holidays). That estimate powers the 'Arrives Jul 10 โ€“ Jul 11' display and gives you the per-region lead time you use for your ship-by rule.

Yes. The picker offers a date and an optional time window (e.g. 14:00โ€“16:00), with lead time, an order cutoff, selectable weekdays, and per-date and per-slot capacity limits so a day can sell out and never overbook.

Yes. The check runs server-side as a Shopify Function, so a missing, sold-out, or blacked-out date is blocked at checkout even through Shop Pay, Apple Pay, or a direct checkout URL โ€” not just on the cart page.

The carrier CSV layouts are Japan-first (Yamato, Sagawa, Japan Post), but the whole workflow โ€” delivery-date selection, delivery-date tagging, capacity, and daily filtering โ€” works for any store. Non-JP stores use the delivery-date filter to build the same daily ship list and export generically.

Comparing apps?

See how OrderRules stacks up against every other Shopify app in this category.

Ready to take control of your orders?

Try OrderRules Free