Checkout Validation
Accurately capturing dates, time slots, and delivery surcharges during checkout is crucial for seamless order fulfilment. However, theme configurations, conflicts with other applications, and slow mobile connections can occasionally result in missing or invalid information.
To improve reliability, Buunto's Checkout Validation feature verifies the presence and validity of the selected date, time slot, and delivery surcharge (if applicable). If a required selection is missing or no longer meets your configuration, such as your cutoff or preparation time, the customer is prompted to correct the order before completing checkout.

The following checks are performed:
- If a date or time slot was expected on the order, is it missing?
- Is the selected date or time slot currently available?
- Is a pickup or delivery location selected (if required)?
- Is a surcharge product on the order (if mandatory)?
How to activate the checkout validation
-
In Buunto, go to Settings > Validation and advanced settings.

-
In the Checkout validation card, click Activate.

- Buunto automatically creates and activates its checkout rule in Shopify.
- Please test the checkout thoroughly by making test order. This feature might prevent customers from completing their orders if something is wrong.
Deactivating the checkout validation
To turn the feature off, click Deactivate in the Checkout validation card. Buunto disables checkout validation and removes its checkout rule from Shopify.
If checkout validation needs attention
Avoid deleting or deactivating Buunto's rule directly in Shopify. If the rule is changed manually, Buunto may no longer match Shopify's current state. The setup checklist and Checkout validation card will show Needs attention and explain the issue.
- If the rule is missing or deactivated, click Activate to restore it.
- If an active Buunto rule already exists while the feature is inactive in Buunto, click Activate to let Buunto manage the existing rule.
- If multiple Buunto rules exist, click Deactivate to remove them, then click Activate to create a clean rule.
Modify the wording of the errors (optional)
This feature comes with a default wording but don't hesitate to customise it if needed.
For that, in Buunto, go to Settings > Text and languages > English (or other language), search for the Checkout validation section.

You can modify the messages above appropriately and click Save.
Shopify size limit
Shopify imposes a 10,000 character limit on the data that checkout functions can read. The checkout validation relies on two pieces of data stored in Shopify metafields: your widget settings and your product context maps (built from collection and tag filters in custom settings).
If either of these exceeds the limit, the validation will not run at checkout — even if the checkbox is enabled.
When this happens, Buunto displays a warning banner in Settings > Validation and advanced settings:

How to reduce the size
- Too many custom settings: Each custom setting adds to the widget settings payload. Try removing unused or redundant custom settings.
- Large collection or tag filters: Custom settings that filter by many collections or tags generate large product context maps. Check that all the collections or tags used as filters are actually needed, and avoid filtering by very large collections (for example, "All products").
Draft orders
If you use Shopify's draft order feature, you may notice the checkout validation displaying a message about a missing date.

This is a known Shopify platform limitation - Shopify does not provide a way for apps to tell whether a checkout comes from a draft order or from your online store. Because of this, the validation cannot be skipped for draft orders only.
You can safely ignore this message when creating draft orders, as it is informational and does not block the order from being created.
New hidden property
After activating this feature you might notice a new internal property attached to your order items or as order attribute.

This property is called __buunto_selection and contains information that is only meant meant to be read by our checkout validation script.
It shouldn't be visible to your customers, however it will show in Shopify admin's order page. You can simply ignore it.

