> For the complete documentation index, see [llms.txt](https://docs.intelligems.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intelligems.io/checkout-experiences/getting-started-with-checkout/testing-checkout-experiences.md).

# How to Structure a Checkout Test

Intelligems enables your org to run real-time split tests on different Checkout Personalizations. This article will walk you through how to run a Checkout Personalization Test with Intelligems.

Before you build a checkout test, decide what you're comparing. The shape of the test determines how many Intelligems blocks you add in Shopify, and getting it wrong is the most common reason a checkout test returns a flat result.

There are four shapes.

| Pattern          | What you're comparing                          | Location IDs                        | Blocks to add in Shopify |
| ---------------- | ---------------------------------------------- | ----------------------------------- | ------------------------ |
| Location test    | The same block in different positions          | A different ID per group            | One per position         |
| Content test     | Different designs or messaging in one position | The same ID in every group          | One                      |
| Presence test    | A block against no block                       | One ID, control has no modification | One                      |
| Multi-block test | Different combinations of blocks               | A unique ID per block               | One per block            |

### **How Location IDs decide the shape**

A Location ID connects a block in Intelligems to a slot in your Shopify checkout. That's the whole mechanic, and it's what makes the difference between the patterns above.

Give two test groups **the same Location ID** and they compete for one slot. Shopify renders one block, and Intelligems decides which version each visitor sees. Give them **different Location IDs** and you've created two slots, so you add two blocks in Shopify and place each one where you want it.

{% hint style="info" %}
Name your Location IDs after what they are, not what group they're in. `badge-below-total` tells you where the block sits six weeks from now. `group-b` doesn't.
{% endhint %}

### **Location test**

Same block, different positions. Every group gets identical design, colors, text, and icons, and a different Location ID.

Testing a "High Quality Guarantee" badge in two places:

* **Main group:** Location ID `badge-main`
* **Below total group:** Location ID `badge-below-total`

Add both blocks to your Shopify checkout and drag each into its position. Add every position before you start the test.

### **Content test**

Different content, one position. Every group gets a different design, color, or message, and they all share one Location ID.

Testing three color variations of a guarantee badge:

* **Green group:** green badge, Location ID `guarantee-badge`
* **Blue group:** blue badge, Location ID `guarantee-badge`
* **Red group:** red badge, Location ID `guarantee-badge`

Because the ID is shared, you only add one block in Shopify. Intelligems serves the right version to each visitor.

### **Presence test**

A block against nothing, which tells you whether the block earns its space at all. Leave one group with no modifications and give the other a block. One Location ID, one block in Shopify.

Run this first when you're adding a block type you've never used. It's the cheapest way to find out whether the idea works before you spend a test cycle tuning the design.

### **Multi-block test**

Different numbers or combinations of blocks per group. Each block needs its own Location ID, and you add one block in Shopify for every ID across every group.

Testing one prominent badge against three smaller ones:

* **Single badge group:** one block
* **Triple badge group:** three blocks, each with a unique Location ID

### **Adding blocks to Shopify doesn't make them live**

Shopify checkout changes normally publish the moment you save. Intelligems blocks don't. A block appears only when the test containing it is started, or when a Personalization containing it is activated.

So you can add every block for every group, position them, and preview them without any risk of a customer seeing them early.

{% hint style="info" %}
If a Location ID isn't attached to a running test or an active Personalization, nothing renders in that slot.
{% endhint %}

### **Next steps**

Choose who sees your test on the [Targeting](https://docs.intelligems.io/general-features/targeting) tab, then QA before launch with the Checkout QA Checklist.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.intelligems.io/checkout-experiences/getting-started-with-checkout/testing-checkout-experiences.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
