# Setting Up Pre-Checkout Requirements

### What Pre-Checkout Does

Before a customer can check out with wine products, CrushSuite runs two compliance checks:

1. **Age verification** — Confirms the customer is 21 or older (a legal requirement for wine purchases in all U.S. states)
2. **Address validation** — Confirms the shipping address is valid and eligible for wine delivery (not a P.O. box in a restricted area, not a dry county, etc.)

These checks happen before the customer reaches Shopify's standard checkout flow. If either check fails, the customer sees a clear message explaining why they can't proceed — they are not silently blocked.

***

### How to Configure

1. In your **Shopify Admin**, navigate to **Settings**.
2. Open **Checkout** settings.
3. Under the checkout customization options, scroll down to Customer information and edit&#x20;
   1. Full name → require first and last name
   2. Shipping address phone number → Required &#x20;

{% hint style="info" %}
The customer information section workds in concert with CrushSuite's app embeds (especially the Entry Pop-Up Modal). Make sure your app embeds are enabled for the full compliance flow.
{% endhint %}

<figure><img src="/files/4Bfdd2c0j6rVnCSwatWd" alt=""><figcaption></figcaption></figure>

***

### What Customers Experience

From the customer's perspective, the pre-checkout flow is smooth and fast:

1. They arrive on your store and see the **entry pop-up modal** asking them to confirm they're 21+ and select their shipping state.
2. As they browse, products show as **available or unavailable** based on their selected state.
3. When they proceed to checkout, CrushSuite validates their **shipping address** against compliance rules.
4. If everything checks out, checkout proceeds normally through Shopify's native payment flow.

If a check fails, the customer sees a message like "We're unable to ship to your location" — not a cryptic error.

For more detail on the customer-facing experience, see the Storefront & Checkout section.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://crushsuite.gitbook.io/docs/compliance/getting-started/setting-up-pre-checkout-requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
