How can public apps collect required custom fields (e.g. delivery date) in UCP / agentic checkout?

Hi everyone,

We’re working on supporting agentic checkout in our public Shopify app, and we’ve run into a use case where we’d appreciate some guidance from the Shopify team.

The use case

Our app allows merchants to require customers to select a delivery date, with an optional time slot, before placing an order.

This is especially important for bakeries, florists, meal delivery businesses, and other merchants that need to know when an order should be delivered.

Currently, we handle this through:

  • Online storefront: A date picker saves the selected date as a cart attribute (order-level) or line item property (product-level).

  • Cart and Checkout Validation Function: Validates the required date and prevents checkout completion if it’s missing.

  • Checkout UI extension: Allows customers to select a delivery date during checkout on eligible Plus stores.

This approach works for our existing storefront flows.

The challenge with agentic checkout

We’re now looking at UCP Cart/Checkout MCP, Checkout WebMCP, and direct checkout experiences such as Google AI Mode/Gemini and ChatGPT.

Our concern is how agents will discover, collect, and submit required custom inputs defined by third-party apps.

From reviewing the documentation:

  1. UCP cart/checkout operations: We couldn’t find a documented way for third-party apps to submit arbitrary cart attributes or line item properties through standard UCP operations.

  2. Declared fields: The dev.shopify.shopping.declared_fields extension looks promising. It supports required fields, value_schema, and validation errors. However, the documented examples appear to focus on Shopify-defined fields, and we couldn’t find a way for public apps to register their own.

  3. Validation Functions: Shopify documents support for these in agentic checkout, but we’re unclear how errors caused by missing app-specific buyer input are presented to agents.

  4. Checkout UI extensions: Shopify’s Google AI Mode/Gemini documentation mentions that only checkout customizations supporting checkout blocking are eligible to load, without guaranteeing that they will render. Meanwhile, block_progress and useBuyerJourneyIntercept are deprecated in favor of Functions for validation.

Questions for the Shopify team

1. Can third-party apps register declared fields?

Is there a supported or planned API for public apps to declare a required field such as delivery_date, including its schema, validation requirements, and order storage?

Ideally, an agent would discover that a delivery date is required, ask the buyer to select one, and submit it before completing checkout.

2. Is there a supported way to pass app-specific cart attributes or line item properties through UCP?

If declared fields aren’t available to third-party apps, is there another recommended mechanism for passing this information into the cart or checkout so our validation Function can read it?

3. How should validation Functions handle missing custom inputs in agentic checkout?

If our Function rejects checkout because a delivery date is missing:

  • Does the Function reliably run during UCP checkout creation, updates, and completion?

  • How are its errors mapped to UCP messages[]?

  • Can the agent recover by collecting the missing field, or should we expect escalation to Shopify checkout through continue_url?

4. What is the recommended future approach for required checkout UI inputs?

With block_progress being deprecated, how should apps ensure that mandatory checkout UI extensions remain eligible to render in agentic direct checkout?

We understand that Shopify Functions are the recommended approach for enforcement, but the buyer still needs a way to provide the required input.

Our goal

We want to make sure that merchants using our app can safely accept agentic orders without missing mandatory fulfillment information.

For example, a bakery shouldn’t receive an order for a scheduled cake delivery without a delivery date, regardless of whether the purchase happens through the online store, ChatGPT, or Google AI Mode.

Any clarification on the supported approach or future roadmap would be greatly appreciated.

Happy to share implementation details or help test this use case.

Thanks!

3 Likes