Skip to main content

Require ID Before Checkout

What does this do for me?

This flow holds the cart’s Checkout action until the customer completes a document-backed identity and age check. It is implemented for Enterprise stores with the age gate enabled, Enhanced mode selected, the checkout requirement turned on, and the identity provider configured on the server.

1. Turn on the server-side requirement

  1. Open Settings in Age Verification.
  2. Confirm that the current plan is Enterprise.
  3. Under General, enable age verification and choose Enhanced (provider-hosted document check).
  4. Under Enhanced verification, enable Require ID verification before checkout.
  5. Select Save.
If the server is missing the identity-provider configuration, Settings displays a critical warning and the public gate falls back to simple mode. Checkout enforcement also remains off so customers are not blocked with no working verification path.

2. Add the cart block

  1. Open the theme editor for the cart template.
  2. In the cart section that contains the Checkout button, add Verify ID for checkout.
  3. Place the block directly above the Checkout button.
  4. Leave Hold the Checkout button until verified enabled.
  5. Save the theme.
The cart block is the primary enforcement surface. While enforcement is active and no live pass exists, it displays Verify my ID and intercepts cart and drawer checkout actions. If the app cannot return its status, the block hides and does not hold checkout.

3. Add the Shopify Plus backstop

Checkout-step UI extensions render only on Shopify Plus. On a Plus store:
  1. Go to Settings → Checkout → Customize.
  2. Add the Age & ID Checkout Gate app block.
  3. Allow the app to block progress under Checkout behavior.
  4. Save the checkout customization.
This checkout block is defense in depth. The cart block remains the primary surface across Shopify store plans, while the checkout block adds a second check on Plus. The app’s own Enterprise entitlement is still required for either surface to enforce document verification.

What the customer sees

The customer selects Verify my ID, completes the provider flow, and the cart block polls the webhook-backed status. It changes to Verified! only after the stored verification state is verified. Logged-in customers can reuse a live customer verification flag; guests use a verification ID and timestamp stored on the cart.