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

# Testing and checks

### What “working correctly” means in Roadmap

In Roadmap, a successful test depends on what you built:

* **Gift with Purchase (GWP):** the offer is working when the **free gift line item** is **automatically added to the cart** after the shopper meets your rules (it may not show as a price discount).
* **Discount offers:** the offer is working when the cart/checkout shows the expected discount based on your promotion’s **Conditions** and **Customer Eligibility**.
* **Loyalty & referral discounts:** these typically come from **Redeem points → Ways to redeem** (points redemptions) or the **Referral Program** (referral reward type set to **Discount**).

If you’re only looking for a price change, you can miss a working GWP. Always watch for the **free gift** being added to cart.

***

### Pre-test setup (do this once)

* **Use two test shoppers:**
  * One customer who can checkout as a guest
  * One real customer account that can **log in** (especially important if you test **Logged in only customers** or **Members**)
* **Pick a simple test cart:** use products/variants you can easily add/remove to meet thresholds (for example, to hit a **Minimum Spend**).

***

### Core checklist: test a discount or GWP end-to-end

Confirm the promotion is running

Go to **Discounts / Gift with Purchase** and locate your promotion using the tabs:

* **All**, **Active**, **Scheduled**, **Expired**, **Draft**

Open the promotion and confirm:

* **Status** is set to **Active**
* **Active Dates** → **Start date** / **Start time** has passed
* If enabled, **Set end date** hasn’t already ended

If you expected it to run but it’s in **Scheduled**, your setup may be correct—your timing isn’t.\\

Match the Conditions exactly

In the promotion, review the **Conditions** section, then build a test cart that matches the condition type you selected (common examples include **Minimum Spend**, **Buy X Get Y**, and **Buy A+B+C Get Y**).

* If it’s product-based, confirm you added the exact products/variants and quantities required.
* If it’s spend-based, confirm the cart reaches the amount shown in **If the customer spends at least…**

Validate Customer Eligibility with the right shopper

In the promotion, open **Customer Eligibility** and verify your test shopper matches what you selected, such as:

* **All customers** vs **Logged in only customers**
* **Customers tagged with** / **Customers NOT tagged with**
* **Customers in specific countries** / **Customers NOT in specific countries**
* **Customers with order history**
* **Members** / **Non-members**

If eligibility is **Logged in only customers** or **Members**, a guest checkout test will fail. Test using a logged-in customer account.

If eligibility is Members, confirm tiers are selected

When **Customer Eligibility** is set to **Members**, confirm you selected at least one tier in the picker labeled **Enter membership tiers…** (for example, `Level 2`).

If no tiers are selected, the promotion won’t trigger for anyone.

![Customer Eligibility set to Members with a membership tier selected](https://content.gitbook.com/content/J8asLD4FVCFagK40xEr4/blobs/wXc3ZH59SfsBsVAzz8NS/Screenshot_2026%2002%2022_at_7.03.41_PM.png)

For GWPs: verify Free Gifts settings

If you’re testing a GWP, open **Free Gifts** and confirm:

* You selected the gift variant using **Search variants** or **Browse**
* **Maximum number of uses per order** is set the way you expect (many stores use 1)
* Optional: **Note** contains your customer-facing message (shown on the cart page)

If the gift variant can’t be added to cart, you may not see the free gift line item even when Conditions and Eligibility are correct.

Retest with conflicts removed

{% stepper %}
{% step %}
Go back to **Discounts / Gift with Purchase**.
{% endstep %}

{% step %}
Temporarily pause other **Active** promotions that could apply to the same cart.
{% endstep %}

{% step %}
Retest with only one promotion enabled.
{% endstep %}
{% endstepper %}

Conflicting promotions are one of the most common reasons “everything looks right” but the checkout result isn’t.

***

### Quick pass/fail checks (copy/paste)

* **Pass:** Promotion is **Active**, **Active Dates** are in-range, cart matches **Conditions**, shopper matches **Customer Eligibility**, and you see the expected discount or the **free gift line item** in cart.
* **Fail:** Any mismatch in **Status**, dates, conditions, eligibility (especially guest vs logged in), or membership tiers.

***

### Troubleshooting (common test failures)

My GWP ‘works’ in the app but I don’t see a discount at checkout+

That can be expected. For a GWP, the success signal is the **gift product line item** being **added to the cart**, not necessarily a price reduction.

It works for some customers but not others+

This is almost always caused by **Customer Eligibility**.

* If you used **Customers tagged with**, confirm the customer actually has the tag.
* If you used **Customers in specific countries**, confirm the shipping address matches your allowed countries.
* If you used **Members**, confirm the customer is in a selected tier under **Enter membership tiers…**.

A loyalty or referral discount seems to change what happens+

That’s normal—codes and redemptions can change what applies at checkout.

* **Loyalty discount coupons:** created via **Redeem points → Ways to redeem**.
* **Referral discounts:** configured in the **Referral Program** when the reward type is **Discount**.

To isolate your test, retry without entering codes and pause other active promotions in **Discounts / Gift with Purchase**.

***

### If you need to share results with support

Capture these details from your test run:

* Promotion name from **Discounts / Gift with Purchase**
* **Status** and **Active Dates** (start/end)
* The cart you tested (products/variants, quantities, subtotal)
* Whether you tested as guest or logged in
* The **Customer Eligibility** option you selected (including membership tier(s), tags, country rules, etc.)
* Any other promotions that were **Active** during the test

Avoid duplicating promotions as a “quick fix.” Duplicate offers can overlap and make testing results unpredictable.\\

***

### Related reading

* Why are discounts not applying correctly?\
  A deeper checklist for status, schedule, eligibility, and stacking conflicts.
* Why isn’t my GWP showing at checkout?\
  Step-by-step troubleshooting for GWPs, including Free Gifts setup.
* Combine GWPs with loyalty rewards or bundles\
  Best practices for running multiple offers without overlap.


---

# 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.roadmap.so/getting-started/testing-and-checks.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.
