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

# Thank-you page offers

> Configure offers on the order confirmation page — triggers, products, discounts, shipping discounts, funnels, and styling.

Thank-you page offers appear on the **order status / thank-you page** after
checkout completes, as a product slider block. Unlike post-purchase offers,
they work for **every order** regardless of payment method — the trade-off
is that accepting starts a fresh checkout instead of charging one-click.

<Note>
  When a customer accepts, the app builds a new checkout with the product
  and discount already applied — the purchase completes as a **separate,
  second order** in your admin. It doesn't modify the original order; keep
  this in mind when reconciling revenue.
</Note>

## Setup

<Steps>
  <Step title="Add the thank-you page block">
    In the checkout editor (**Settings → Checkout → Customize**), switch
    to the **Thank you** page, click **Add app block**, add the app's
    **thank-you product slider** block, and save. See
    [Installation & setup](/post-purchase-upsells/installation).

    <Warning>
      The block never appears automatically — publishing an upsell is not
      enough. This step is the #1 reason thank-you offers "don't show".
    </Warning>
  </Step>

  <Step title="Create the upsell">
    Go to **Upsells → Create upsell** and configure the three wizard
    steps below.
  </Step>
</Steps>

## Step 1 — Trigger

Under **Select Upsell Trigger**, choose **Thank You Page Upsell**, then
define when the offer shows:

Give the upsell a name under **Name this offer for your own reference** —
customers never see it.

### Customer orders (product scope)

Under **Show Upsell offer when → Customer orders**, choose:

* **Any products** — the offer can show for every order
* **Specific products** — only when the order contains at least one of the
  selected products
* **Specific collections** — only when the order contains a product from
  the selected collections
* **Excluded products** — only when the order contains *none* of the
  selected products

### Conditions

Click **Add condition** to add fine-grained requirements. Conditions are
grouped into Products, Orders, and Shipping:

| Condition                           | Checks                                   | Operators                                 |
| ----------------------------------- | ---------------------------------------- | ----------------------------------------- |
| Order has product of…               | Order contains certain products          | In / Not in                               |
| Order has product variant of…       | Order contains certain variants          | In / Not in                               |
| Order has product in collection of… | Order contains products from collections | In / Not in                               |
| Line item title is…                 | A line item's title                      | Contains / Does not contain               |
| Line item price is…                 | A line item's price                      | Greater than / Lesser than / Is equal to… |
| Order subtotal                      | Subtotal (excludes tax and shipping)     | Greater than / Lesser than / Is equal to… |
| Order total                         | Total (includes tax and shipping)        | Greater than / Lesser than / Is equal to… |
| Order quantity                      | Total quantity across all line items     | Greater than / Lesser than / Is equal to… |
| Number of line items                | Count of line items in the order         | Greater than / Lesser than / Is equal to… |
| Restrict by country                 | The order's destination country          | Is / Is not                               |

Conditions combine with **AND** / **OR** — switch the connector between
rows to require all conditions or any of them.

<Warning>
  **Order subtotal excludes tax and shipping; Order total includes them.**
  Mixing these up is the most common reason a threshold condition doesn't
  fire when expected.
</Warning>

Click **Save (Next Step)** to continue to the Offer step.

## Step 2 — Offer

Click **Select products** and pick one or more products to offer —
customers can choose variants on the offer itself.

Options for the product list:

* **Exclude products already in customer's order** — buyers are never
  offered something they just bought
* **Use custom discount title** — sets the discount name that appears on
  the order and receipts
* **Use compare at price** — shows the compare-at price as the
  strikethrough reference instead of the regular price

### Product discounts

Each product carries its own discount:

| Type                     | What it does                | Example                 |
| ------------------------ | --------------------------- | ----------------------- |
| No discount              | Offered at its normal price | —                       |
| Discounted in percentage | Percentage off the price    | 15 → 15% off            |
| In amount                | Fixed amount off the price  | 5 → \$5 off             |
| Specific                 | Sell at an exact price      | 10 → costs exactly \$10 |

<Note>
  Discount values must be **whole numbers** (no decimals), percentages
  must be between 1 and 100, and amount/specific values can't exceed the
  product's original price. Discounts apply automatically — there are no
  codes for customers to enter.
</Note>

### Shipping discounts

This placement also supports **shipping discounts** on the offered
product:

| Type                | What it does                              |
| ------------------- | ----------------------------------------- |
| Default shipping    | Normal shipping rates — no discount       |
| Free shipping       | Shipping is free (100% off)               |
| Percentage discount | A percentage off shipping, e.g. 50%       |
| Amount discount     | A fixed amount off shipping, e.g. \$5 off |

Each option supports an optional **Shipping message** shown on the offer —
e.g. "Free Shipping!" or "50% off shipping". Leave it blank to use the
default wording.

<Tip>
  Paying shipping twice is the top reason customers decline a post-order
  offer — **Free shipping** is often the strongest lever on this
  placement.
</Tip>

### Funnel: Upsell #2 & downsell

Still in the Offer step, you can chain the primary offer into a small
funnel:

* **Upsell offer #2** — shown *if the customer accepts* the first offer
* **Downsell offer** — shown *if the customer declines* the first offer

```text theme={null}
        Offer shown
        /          \
   accepted      declined
      |               |
  Upsell #2       Downsell
```

Toggle each one on and configure its own products and discounts. Both are
off by default, and every enabled step needs at least one product selected
before the wizard lets you save.

<Tip>
  A proven downsell pattern: offer the *same* product with a deeper
  discount (say 10% → 25%), or a cheaper alternative. A decline becomes a
  second chance instead of a dead end.
</Tip>

<Note>
  The downsell only shows after an explicit **decline** of the first
  offer — if the countdown timer expires or the customer navigates away,
  the funnel ends without a downsell.
</Note>

## Step 3 — Style

The final wizard step controls everything the customer sees — message
banner and countdown timer, product card layout and color scheme, CTA and
decline text, text block, and image — with a live preview per funnel step.
Finish with **Save and publish**.

<Info>
  Styling has its own guide: **[Styling your
  offer](/post-purchase-upsells/customization/styling)** covers every
  section, the custom labels, and the `SAVE` badge — and **[Translations &
  languages](/post-purchase-upsells/customization/translations)** shows how
  to localize the offer text for shoppers in 11 languages.
</Info>

<CardGroup cols={2}>
  <Card title="Styling your offer" icon="palette" href="/post-purchase-upsells/customization/styling">
    Layouts, color schemes, timer, custom labels, and images.
  </Card>

  <Card title="Translations & languages" icon="language" href="/post-purchase-upsells/customization/translations">
    Localize offer text; manage default and additional languages.
  </Card>
</CardGroup>

## Use cases & examples

<AccordionGroup>
  <Accordion title="Reach customers post-purchase offers can't" icon="users" description="Cover orders whose payment method skips the post-purchase page.">
    Run the same offer as both a post-purchase upsell and a thank-you
    upsell. Orders paid with unsupported payment methods skip the
    post-purchase page but still see the thank-you slider.
  </Accordion>

  <Accordion title="Free-shipping incentive on the second order" icon="truck-fast" description="Remove the “paying shipping twice” objection with free shipping.">
    A common objection to buying again is paying shipping twice.
    Configure **Free shipping** with a message like "Free Shipping!" so
    the second order feels like an extension of the first.
  </Accordion>

  <Accordion title="Replenishment reminder for consumables" icon="arrows-rotate" description="Offer the same collection again at a small discount.">
    Trigger on **Specific collections** (e.g. Supplements) and offer the
    same collection at a small discount — catching customers at their
    most engaged moment.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The slider doesn't appear on the thank-you page">
    The block must be manually placed in the checkout editor — go to
    **Settings → Checkout → Customize**, switch to the **Thank you**
    page, and confirm the app block is added and saved.
  </Accordion>

  <Accordion title="The offer shows for the wrong orders (or none)">
    Check the trigger conditions against a real test order — with the
    **AND** connector every condition must pass, and subtotal excludes
    tax/shipping while total includes them. The upsell must be **Active**
    (not Draft or Paused), and if multiple thank-you upsells are active,
    only the highest-priority match is shown — see
    [Managing upsells & priority](/post-purchase-upsells/upsells/priority).
  </Accordion>

  <Accordion title="The discount or shipping discount didn't apply">
    The app maintains its discount function automatically — re-save the
    upsell to force a re-sync. Remember discount values are whole numbers
    only, and the shipping discount type must be set per product in the
    Offer step.
  </Accordion>
</AccordionGroup>

## Need help?

<CardGroup cols={3}>
  <Card title="Book a call" icon="calendar-days" href="https://cal.com/yukoteam/yuko">
    Schedule a free call with our team for personal setup assistance.
  </Card>

  <Card title="Contact support" icon="comments" href="#crisp-chat">
    Chat with us directly — we're happy to help with any question.
  </Card>

  <Card title="Install Yuko Post Purchase Upsells" icon="download" href="https://apps.shopify.com/yuko-post-purchase-upsell">
    Get [Yuko Post Purchase Upsells](https://apps.shopify.com/yuko-post-purchase-upsell) from the Shopify App Store.
  </Card>
</CardGroup>


## Related topics

- [FAQ & troubleshooting](/post-purchase-upsells/troubleshooting.md)
- [Quick start: your first upsell](/post-purchase-upsells/quickstart.md)
- [Checkout offers (Shopify Plus)](/post-purchase-upsells/upsells/checkout-offers.md)
- [Post-purchase offers](/post-purchase-upsells/upsells/post-purchase-offers.md)
- [Installation & setup](/post-purchase-upsells/installation.md)
