---
title: Commerce Search v3 prerequisites
slug: configured-commerce/docs/commerce-search-v3-prerequisites
docTags: 
createdAt: 2026-08-05T19:35:40.000Z
---

Before you can enable Commerce Search v3 for your Optimizely Configured Commerce instance, you must follow these important prerequisites.

## Configured Commerce version

You must have one of the following Optimizely Configured Commerce versions:

- [June STS release](docId\:WqKHaFExCCBoMAZF1Omz9)
- Later version

## Language tags

You must ensure all languages have a language tag. 

![Add Language Tag.png](https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/4D8gOLHH2Z1ts9FjVSTdS-20260720-144503.png)

### Note active websites and languages

You must note which Spire websites are active and what their active languages are. Include this information in your provisioning request.

:::hint{type="info"}
**Note**

Classic sites are not supported and cannot be provisioned.
:::

**Option 1 – Admin Console**

1. Go to **Websites** and note which sites are active. If the site is active, it has the **Active&#x20;**&#x74;oggle set to **Yes** in **Website Details**.

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/Zyf00URSWQHJ3YPLSDu_M-20260720-144503.png" size="100" alt="Active websites.png" isUploading="false" showCaption="false" indent="2" width="1180" height="626" darkWidth="1180" darkHeight="626"}

2. Note each live language for the active sites (found under **Website Details**). Live languages are marked as **On** in the **Is Live** column of the **Languages** tab.

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/EjOk-VJ5qpTVq7-mSpcER-20260720-144503.png" size="100" alt="Live languages.png" isUploading="false" showCaption="false" indent="2" width="1423" height="598" darkWidth="1423" darkHeight="598"}

3. Go to **Administration > Localization > Languages** to determine each live language's **Language Tag**. This is the first part of the language tag value.

::Image[]{src="https://api.archbee.com/api/optimize/BrbvVORKJ5iIeSMZye5kI/Um9GZIilDmishL2x20y40-20260720-144503.png" size="100" alt="Language tag.png" isUploading="false" showCaption="false" indent="2" width="1183" height="335" darkWidth="1183" darkHeight="335"}

4. Include all active websites and their associated languages in your support request.

**Option 2 – Query the database**

1. Gain access to the database by running the [Generate Database Credentials action in Mission Control](docId\:SMyRn_AyhvNeBA5lR_K1B).
2. Execute the following query:

```auto
SELECT 
    ws.[Key] AS WebsiteKey,
    l.LanguageTag
FROM 
    WebSiteLanguage wsl
JOIN 
    Language l ON wsl.LanguageId = l.Id
JOIN 
    Website ws ON wsl.WebSiteId = ws.Id
WHERE 
    wsl.IsLive = 1
    AND ws.IsActive = 1;
```

3. Include all active websites and their associated languages in your support request.

## Unique email addresses

1. Check for non-unique emails by running the following query on the Commerce database:

:::BlockQuote{indent="2"}
\-- NON-UNIQUE EMAILS COUNT&#x20;
SELECT COUNT(\*) AS non\_unique\_emails\_count&#x20;
FROM (&#x20;
SELECT email&#x20;
FROM UserProfile&#x20;
GROUP BY email&#x20;
HAVING COUNT(email) > 1&#x20;
) r;
:::

:::Paragraph{listStyleType="disc" indent="2"}
If the result is 0, all email addresses are unique.
:::

:::Paragraph{listStyleType="disc" listStart="2" indent="2"}
If the result is greater than 0, there are duplicate email addresses.
:::

2. Calculate the percentage of non-unique emails. If duplicates exist, run the second query to determine the percentage of non-unique emails in the system:

:::BlockQuote{indent="2"}
\-- NON-UNIQUE EMAILS PERCENTAGE&#x20;
WITH CTE AS (&#x20;
SELECT COUNT(\*) AS non\_unique\_emails\_count&#x20;
FROM (&#x20;
SELECT email&#x20;
FROM UserProfile&#x20;
GROUP BY email&#x20;
HAVING COUNT(email) > 1&#x20;
) r1&#x20;
),&#x20;
CTE2 AS (&#x20;
SELECT COUNT(DISTINCT email) AS all\_emails\_count&#x20;
FROM UserProfile )&#x20;
SELECT&#x20;
CTE.non\_unique\_emails\_count,&#x20;
CTE2.all\_emails\_count,&#x20;
ROUND((CTE.non\_unique\_emails\_count \* 100.0) / CTE2.all\_emails\_count, 2) AS non\_unique\_percentage&#x20;
FROM CTE, CTE2;
:::

3. Determine the ODP configuration.
   1. If there are no duplicate emails (`non_unique_emails_count = 0`), go to the Admin Console and check the **Use Email as UseName&#x20;**&#x61;nd **Require Unique Email** settings under **Account Management > Website Security**.
      - If they are both true, request ODP provisioning with **B2bUserEmailUniqueness=true**.
      - If they are both false, do one of the following:
        - If you want unique emails, update at least one of the security settings to **true** to ensure that emails continue to be unique. Request ODP provisioning with **B2bUserEmailUniqueness=true**.
        - If you want to support non-unique emails, request **B2bUserEmailUniqueness=false**.
   2. If there are duplicate emails (`non_unique_emails_count > 0`), check the percentage of duplicates and Admin Console settings.
      - If the percentage is less than 2% or very low and both settings are false:
        &#x20;
        - If you want unique emails, update at least one of the security settings to **true** to ensure that emails continue to be unique. Request ODP provisioning with **B2bUserEmailUniqueness=true**.
        - If you want to support non-unique emails, request **B2bUserEmailUniqueness=false**.
      - If the percentage is greater than 2% or not very low, request ODP provisioning with **B2bUserEmailUniqueness=false**.

## Provisioning

When you have completed the previous steps, you can [submit a request](mailto\:support@optimizely.com) for manual provisioning of the required Optimizely products and resources. Include the information about the active Spire websites, active languages, and whether your environment uses unique email addresses.
