Delivery Guard

How to require a delivery date at Shopify checkout

A required field on your cart page stops some customers, but not all. To be sure, the check has to run in checkout itself.

Add to Shopify for free

Why a cart page field isn't enough

Most date pickers run on your storefront. That leaves several ways to reach checkout without a valid date:

  • Buy it now skips the cart page, along with anything on it.
  • Express checkout buttons can skip the picker too.
  • A cart saved days ago can still hold a date that has since passed or filled up.
  • A slow-loading picker may not appear before the customer moves on.

What runs in checkout

Shopify has a feature for this called Cart and Checkout Validation. An app adds a rule that runs on Shopify's side when the customer tries to complete their order. If the rule fails, they see a message and can't pay until they fix it. Public apps can use it on every Shopify plan, not only Plus.

One thing to check in any app that does this: the rule has to allow adding to the cart. Validation also runs while the cart is being changed, so a careless rule can refuse the very first add to cart, before the customer has had a chance to choose.

Which rules to set

A date being filled in isn't the same as a date you can do. Check:

  • The date is present and not in the past
  • It gives you enough notice, counting today's cutoff
  • You're open that day
  • It isn't a holiday or closed date
  • The time slot exists and isn't full
  • The address is in your delivery area

Write messages customers can act on

Shopify shows the message at the top of checkout, with no link back to the cart. So it has to say what to do next, for example: "We don't deliver on Sundays. Please go back to the product page or your cart and choose a date."

Plan for orders that still arrive without a date

Have a plan for any order that gets through without a date. Delivery Guard holds its fulfilment on paid plans and asks the customer to choose on the thank-you page or from a personal link. Without an app, you can filter for those orders and contact each customer yourself.

Test it

  1. Add a product to the cart without a date. It should work.
  2. Go to checkout without a date. It should be refused.
  3. Choose a closed day, then a past date. Both should be refused.
  4. Use Buy it now with a valid date. The order should complete.