Customers Checking Out After Delivery Date

Topic summary

Main issue: Customers can complete checkout with a delivery date earlier than the purchase date because the date is stored as a line item (per‑item cart attribute) rather than using Shopify’s native delivery date fields.

Context: Example given where a customer selected Nov 17 for delivery when adding to cart on Nov 17, but completed checkout on Nov 18; the order still went through with the past date. Shopify does not validate past dates for custom line-item fields at checkout.

App constraints: The store relies on Dynamic Product Options (DPO) for complex variants, add-ons, and conditional logic. DPO’s support confirms delivery date/time will always be passed as line items with no option to change to native fields.

Desired outcome: Block checkout or show an error if the selected delivery date is in the past.

Tried alternatives: Other variant/delivery apps were tested but lack required functionality.

Status: Unresolved. The poster is seeking a workaround or method to enforce date validation despite the line-item limitation.

Summarized with AI on December 15. AI used: gpt-5.

Hello, we’ve run into an issue where customers are able to complete checkout with a delivery date that’s earlier than their purchase date. In one case, a customer added an item to their cart on November 17 and selected November 17 as the delivery date, but didn’t complete checkout until November 18. Because the delivery date was already stored in the cart as a line item, the order was still able to go through.

We use Dynamic Product Options for all product variants and add-ons, including our delivery calendar and delivery times. Since these dates are treated as line items rather than Shopify’s native delivery date fields, Shopify doesn’t appear to validate whether the selected date is in the past at checkout.

Ideally, we’d like checkout to block the order or show an error if the selected delivery date is earlier than the current date, but we understand this may not be possible when using a third-party app that stores dates as line items.

We’ve tested other variant and delivery apps, but none support the level of complex variants, add-ons, and conditional logic we need. Dynamic Product Options is currently the only app that works for our setup. Their support team has confirmed that delivery date and time fields will always be passed as line items, with no way to change that structure.

Does anyone know how we can resolve this?

You could probably find out what the line item is called, and any IDs it has, and create a cancel order workflow in Shopify Flow using conditions to check the date or other attributes. Since it’s a paid app, only those with subscriptions can say for sure what the values are.

As far as blocking checkout beforehand, you can probably do that with on the cart page, but only if the cart page isn’t bypassed by a “Checkout Now” button on the product page. You would run a script to disable checkout button until a valid future date is selected.

1 Like

Your best bet would be using Shopify Functions – About cart and checkout validation

There are several Apps built on this which offer checkout validation: Search results for "checkout validation" – Ecommerce Plugins for Online Stores – Shopify App Store

Not sure if any of them that flexible though, but some app developers may accomodate your need.

Otherwise, yes, you can accept all orders, but then cancel invalid ones with Flow (free App from Shopify).

If using this approach, probably good idea is to change your payments to “manual capture” to avoid charges.
And Flow can also capture payments for valid orders in this case.

2 Likes