> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getjurni.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Offers for Shopify stores

> Set the promotion, experience scope, timing, and qualification, then match the actual discount in Shopify.

Use **Offers** when the campaign promise depends on a real promotion such as a gift, free shipping, samples, or a Shopify discount code.

For Shopify brands, think of every offer as two connected pieces:

1. **What Jurni shows or qualifies on the experience.**
2. **What Shopify actually charges or applies in cart/checkout.**

Those two pieces need to match before you send traffic.

## What kind of campaign are you running?

<CardGroup cols={2}>
  <Card title="Gift with purchase" icon="gift" href="/building-funnels/gift-with-purchase">
    Give or let shoppers choose a gift after a supported product, quantity, spend, or subscription condition is met.
  </Card>

  <Card title="Free shipping" icon="truck" href="/commerce/free-shipping-offers">
    Show free-shipping qualification in the supported Jurni flow and match it to the real Shopify shipping rule.
  </Card>

  <Card title="Samples" icon="package-plus" href="/commerce/samples-offers">
    Let qualifying shoppers choose from a sample list after reaching the intended spend threshold.
  </Card>

  <Card title="Discount code" icon="badge-percent" href="/commerce/discount-code-offers">
    Use an existing Shopify discount code in eligible Jurni experiences and optionally show the promotion before cart.
  </Card>
</CardGroup>

## The most important rule

**A Jurni offer does not automatically create the underlying Shopify discount.**

Examples:

* “Spend \$75 and get a free gift” → Jurni can manage the supported qualification/gift flow, but Shopify still needs to make the gift free or discounted as promised.
* “Free shipping over \$50” → Jurni can show the qualification, but Shopify still needs a matching shipping rate or shipping discount.
* “Use code SAVE15” → the code must already exist in Shopify with the correct product, customer, timing, purchase-type, and combination rules.
* “Choose two samples” → the samples can still have a price unless Shopify/product pricing makes them free.

The current **Create Shopify Discount** control shown on some offer forms is disabled. Saving an offer is not the same as creating its Shopify discount.

## The marketer offer workflow

<Steps>
  <Step title="Write the exact customer promise">
    State who or what qualifies, what the shopper gets, and any important limit or timing.
  </Step>

  <Step title="Set the real Shopify rule">
    Configure or confirm the discount, shipping rate, gift price, or code in Shopify or your existing discount app.
  </Step>

  <Step title="Create the matching Jurni offer">
    Open **Offers**, choose the supported type, and configure its qualification, scope, timing, products, and shopper-facing text where available.
  </Step>

  <Step title="Explain the offer on the page">
    Use clear campaign copy near the hero or purchase decision when the promotion matters. The visible message should match the actual offer rule exactly.
  </Step>

  <Step title="Test qualifying and non-qualifying carts">
    Verify the published experience, cart, and checkout. Remove a qualifying item or drop below the threshold and confirm the result changes correctly.
  </Step>
</Steps>

## Offer scope: where should it run?

Use **Global** when the offer should apply across eligible Jurni experiences in this shop.

Use the selected-experiences option when the promotion belongs only to specific campaigns/pages. The current UI may still use the legacy label **Funnels** for this control.

This scope applies to Jurni experiences—it is not a rule that automatically changes every page on your Shopify website.

## Timing

Use start/end timing only when the campaign truly has those dates. Customer-facing page copy should use the same approved timing.

Do not add countdowns, “ending soon,” or urgency that is not represented by the real campaign.

## How to test an offer properly

For every offer, test at least:

* a cart that **should not** qualify;
* the exact point where it **should** qualify;
* the intended product/variant/purchase type;
* removing or changing the qualifying item;
* final checkout price/shipping/gift;
* relevant market/currency when the campaign spans markets.

For Shopify Pages or a third-party theme cart, verify the offer in that actual cart environment. Do not assume Jurni-hosted cart behavior automatically appears in a native Shopify drawer.

## What Jurni supports here today

The self-service offer picker currently focuses on:

* Gift with Purchase
* Free Shipping
* Samples
* Discount Code

Do not look for a general-purpose Shopify discount-function builder, arbitrary tiered-pricing engine, or full cart upsell designer in this area.

For a promotion outside these flows, confirm the actual Shopify/cart implementation with your team and use the landing page to communicate it accurately.

## Learn the campaign workflow

For the marketer strategy around a promotion—not just setup controls—use:

* [Gift-with-purchase playbook](/academy/playbooks/gwp-campaign)
* [Commerce prompt library](/academy/prompt-library)

## Related Help Center guides

* [Discounts & promotions](/commerce/discounts-promotions)
* [Cart & checkout behavior](/commerce/cart-checkout-behavior)
* [Markets & currency](/commerce/shopify-markets-currency)
* [Shopify Pages cart connection](/shopify-pages/cart-config)


## Related topics

- [Purchase paths for headless and non-Shopify stores](/commerce/non-shopify-purchase-flows.md)
- [Discounts and Promotions](/commerce/discounts-promotions.md)
- [Shopify Pages: When to Use Them and Limitations](/shopify-pages/limitations.md)
- [Cart and Checkout Behavior](/commerce/cart-checkout-behavior.md)
- [Publishing Jurni Pages](/publishing/overview.md)
