> ## 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.

# Post-purchase offers

> Configure one-click offers shown after payment — triggers, products, discounts, funnels, and styling.

Post-purchase offers appear **after the customer pays but before the
thank-you page**. This is the highest-converting placement: the customer
has already committed, and accepting takes **one click** — the add-on is
charged to the payment method they just used, with no re-entry of payment
details. Declining (or letting the countdown expire) simply continues to
the thank-you page.

## Setup

<Steps>
  <Step title="Enable the post-purchase page">
    Shopify allows exactly one app on the post-purchase page. Select
    **Yuko Post Purchase Upsell** in
    **Settings → Checkout → Post-purchase page** — the dashboard Setup
    Guide's **Enable** button takes you there, and **Refresh status**
    confirms it. See [Installation & setup](/post-purchase-upsells/installation).
  </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 **Post Purchase 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>

<Note>
  Post-purchase offers are added to the **original order**, so shipping
  discounts don't apply here — they're available on the
  [thank-you page](/post-purchase-upsells/upsells/thank-you-offers#step-2--offer)
  and [checkout](/post-purchase-upsells/upsells/checkout-offers#step-2--offer)
  placements, where a new shipping cost is being calculated.
</Note>

### 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="Accessory add-on after every order" icon="plug" description="Offer a low-priced accessory to your whole catalog at 10–20% off.">
    Trigger on **Any products**, offer a low-priced accessory (batteries,
    filters, a care kit) at 10–20% off. Low risk, applies to your whole
    catalog.
  </Accordion>

  <Accordion title="Product-specific companion offer" icon="puzzle-piece" description="Bought the coffee machine? Offer the matching beans.">
    Trigger on **Specific products** — the coffee machine — and offer the
    matching beans or descaler. Enable **Exclude products already in
    customer's order** so nobody is offered what they just bought.
  </Accordion>

  <Accordion title="Threshold-based premium offer" icon="gem" description="Show a premium add-on only on orders over $100.">
    Add a condition **Order total → Greater than → 100** so a premium
    add-on is only offered on high-value orders.
  </Accordion>

  <Accordion title="Downsell to a cheaper alternative" icon="arrow-trend-down" description="Recover a declined $49 offer with a $19 version or a deeper discount.">
    If the $49 add-on is declined, the downsell offers a $19 version — or
    the same product at 25% off instead of 10%.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The offer doesn't appear after payment">
    Work through these in order:

    1. **Is the app selected as the post-purchase app?** Check
       **Settings → Checkout → Post-purchase page** — only one app can be
       selected there.
    2. **Is the upsell published and Active?** Drafts and paused upsells
       never show.
    3. **Do the trigger conditions match your test order?** With the
       **AND** connector, every condition must pass — and remember
       subtotal excludes tax/shipping while total includes them.
    4. **Payment method** — Shopify skips the post-purchase page for some
       payment flows (certain wallets and third-party gateways). Test
       with a standard card payment; this is platform behavior, not a
       configuration issue.
    5. **Priority** — only the highest-priority matching upsell shows.
       See [Managing upsells & priority](/post-purchase-upsells/upsells/priority).
  </Accordion>

  <Accordion title="The discount didn't apply">
    The app maintains its discount function automatically. Re-save the
    upsell to force a re-sync and test again; if it persists, contact
    support. Also check the value rules — whole numbers only, percentage
    1–100, amounts not exceeding the product price.
  </Accordion>

  <Accordion title="Upsell #2 or the downsell never appears">
    Check their toggles in the Offer step and that each enabled step has
    products selected. The downsell needs an explicit decline — an
    expired timer ends the funnel silently.
  </Accordion>

  <Accordion title="The offer disappeared while the customer was reading it">
    The countdown **Timer** hides the offer when it expires (default 15
    minutes). Adjust it in the Style step's Message section — see
    [Styling your offer](/post-purchase-upsells/customization/styling).
  </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

- [Thank-you page offers](/post-purchase-upsells/upsells/thank-you-offers.md)
- [Installation & setup](/post-purchase-upsells/installation.md)
- [FAQ & troubleshooting](/post-purchase-upsells/troubleshooting.md)
- [Overview](/post-purchase-upsells/overview.md)
- [Quick start: your first upsell](/post-purchase-upsells/quickstart.md)
