You set up a delivery date picker, you tested it, and it works. Then a Saturday order arrives with no delivery date. The customer clicked Buy it now, or paid with Apple Pay straight from the product page, and never saw your calendar.
This is the most common complaint about delivery date apps on Shopify, and the usual advice is "hide the button". That helps, but it isn't the whole fix. Here's what actually happens, what Shopify still checks, and the settings that stop dateless orders on any plan.
The short answer
Buy It Now and the express buttons on the product page skip the cart, so a delivery date picker on the cart never runs, and a date picked on the product page often doesn't go with them. Shopify's checkout validation still runs on every checkout, express ones included, on every plan. So the fix is a checkout rule that requires a valid date, plus turning off the buttons that skip your picker.
Why the date goes missing
There are three different buttons, and they skip different things:
| Button | Where | What it skips |
|---|---|---|
| Buy it now (unbranded) | Product page | The cart |
| Shop Pay / Apple Pay / Google Pay | Product page | The cart |
| Express buttons | Cart page | Nothing before them, but see below |
Shopify's help centre says it plainly: when a customer clicks an unbranded button, "they skip the cart." Any date picker that lives on the cart page never runs.
A picker on the product page has a different problem. Many date apps, OrderRules included, save the date when the customer clicks Add to cart. Buy It Now doesn't click Add to cart, so the date is never saved. Shopify also notes that accelerated checkout buttons don't support cart attributes, and that's where many apps keep the date.
On the standard plan, there's no way to show a date picker inside checkout. That's a checkout UI extension on the information, shipping or payment steps, which is Shopify Plus only. Even on Plus, Shopify staff have said Apple Pay and Google Pay don't support writing attributes from a checkout UI extension.
So the date can't be collected on the express path. What you can do is refuse the order until the customer goes back and chooses one.
What still gets checked: the checkout rule
Shopify has a separate mechanism that doesn't care which button was pressed: cart and checkout validation Functions. An app installs a small rule that Shopify runs on the server during checkout. Shopify's documentation says this "includes express checkouts, such as Shop Pay, PayPal, Google Pay, and Apple Pay."
Two details matter for non-Plus stores:
- It runs on every plan. Shopify allows any store to use public App Store apps that contain Functions. Only custom apps with Functions need Plus.
- It runs on the server. A shopper can't skip it by using a different button, and it re-checks the date at payment time instead of trusting what the cart page said earlier.
OrderRules uses a validation Function to check the delivery date on every checkout. With Require a delivery date at checkout on, it blocks an order that has:
- no delivery date
- a closed or blackout date
- a date before the earliest allowed (lead time and cut-off)
- a date or time slot that's already full
What we saw when we tested it
On a development store with OrderRules, we picked 30 October on a cake's product page, chose a time slot and clicked Buy it now. Checkout opened without the date, and showed:
Please choose a delivery date before checking out.
The customer can't pay until they go back, pick a date and check out through the cart. That's the safety net working. It isn't a great experience, though, so the next step is to stop customers reaching it.
The three settings that stop dateless orders
1. Require a delivery date at checkout
In OrderRules, open Delivery Dates and tick Require a delivery date at checkout on the rule for your dated products. Then check the checkout rule is switched on in Shopify: Settings β Checkout β Checkout rules. Without the rule, nothing is checked at checkout.
This is the setting that makes the date stick. Everything else improves the experience.
2. Turn off dynamic checkout buttons on dated products
In the theme editor, open your product template and find the buy buttons block. Most themes have a Show dynamic checkout buttons checkbox. Untick it. Customers now go through Add to cart, and the date picked on the product page goes with the item.
If only some products need a date, use a separate product template for them, with the buttons off, and keep Buy It Now on everything else.
3. Test the cart page too
Express buttons can also appear on the cart page and at the top of checkout. If your date lives on the cart (OrderRules can collect one date for the whole order there), test an Apple Pay or Shop Pay checkout from the cart on a real device. If the date doesn't come through, the checkout rule stops the order with the same message, and you'll know to remove those buttons from the cart too.
Plus vs. non-Plus: what changes
| Standard Shopify plans | Shopify Plus | |
|---|---|---|
| Date picker on product and cart pages | Yes | Yes |
| Date picker inside checkout | No | Yes (OrderRules guide) |
| Checkout rule blocks a missing or full date | Yes | Yes |
| Rule covers Shop Pay, Apple Pay, Google Pay | Yes | Yes |
| Customer can fix the date without leaving checkout | No, they go back to the store | Yes with the checkout picker, except Apple Pay and Google Pay |
On Plus, the checkout picker lets most customers fix a missing date on the spot. On every plan, the rule is what stops the order.
What OrderRules won't do
- Hide Buy It Now for you. It's a theme setting, so you turn it off in the theme editor.
- Collect a date on the express path. No app can write to an Apple Pay or Google Pay checkout today. The rule refuses the order instead.
- Reserve the last place. Capacity updates when each order arrives, so two customers checking out for the very last place at the same moment can both get through.
Checklist
- Require a delivery date at checkout is on for your dated products
- The OrderRules rule is on in Settings β Checkout β Checkout rules
- Show dynamic checkout buttons is off on dated product templates
- Tested: product page β Buy It Now is blocked or has no button
- Tested: cart page β Apple Pay or Shop Pay keeps the date or is blocked
- Tested: a full date shows
Delivery on {date} is fully booked. Please choose another date.
Related: 10 questions a UK bakery asked before choosing a delivery date app Β· where to put the delivery date picker Β· best delivery date picker apps compared