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

# Checkout offers (Shopify Plus)

> Configure in-checkout offers — triggers, products, discounts, shipping discounts, funnels, and styling.

Checkout offers appear **inside the checkout itself** — for example, under
the order summary — and let customers add the offered product to the order
they're about to place. Accepting adds the item directly to the current
checkout: no second order, no extra payment step.

<Warning>
  Checkout UI blocks require **Shopify Plus**. On other plans this
  placement isn't available — use
  [post-purchase](/post-purchase-upsells/upsells/post-purchase-offers) and
  [thank-you page](/post-purchase-upsells/upsells/thank-you-offers) offers
  instead.
</Warning>

## Setup

<Steps>
  <Step title="Add the checkout block">
    In the checkout editor (**Settings → Checkout → Customize**), on the
    **Checkout** page, add the app's **checkout upsell** block — for
    example below the order summary — and save. 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. The **Checkout Upsell** trigger carries a
    **Shopify Plus** badge in the wizard.
  </Step>
</Steps>

## Step 1 — Trigger

Under **Select Upsell Trigger**, choose **Checkout 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="Last-chance add-on under the order summary" icon="gift" description="A small, universally useful product at a modest discount.">
    Offer a small, universally useful product (gift wrap, a sample set)
    to every checkout with a modest discount — classic impulse placement.
  </Accordion>

  <Accordion title="Free-shipping threshold nudge" icon="truck" description="Help carts under $50 reach your free-shipping threshold.">
    Combine a trigger condition **Order subtotal → Lesser than → 50**
    with an attractively priced add-on to help customers reach your
    free-shipping threshold before they place the order.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="The block isn't available or doesn't render">
    * Checkout UI blocks require **Shopify Plus** — on other plans the
      block can't be placed in the checkout editor.
    * The block must be manually added on the **Checkout** page in the
      checkout editor and saved.
  </Accordion>

  <Accordion title="The offer doesn't show during checkout">
    Confirm the upsell's trigger is **Checkout Upsell**, its status is
    **Active**, and its conditions match the cart you're testing with —
    subtotal excludes tax/shipping, total includes them. Only the
    highest-priority matching checkout upsell is shown — see
    [Managing upsells & priority](/post-purchase-upsells/upsells/priority).
  </Accordion>

  <Accordion title="The discount didn't apply to the added item">
    The app's discount function applies offer discounts automatically —
    re-save the upsell to re-sync it. Check the whole-number and range
    rules on the discount value.
  </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

- [Installation & setup](/post-purchase-upsells/installation.md)
- [FAQ & troubleshooting](/post-purchase-upsells/troubleshooting.md)
- [Quick start: your first upsell](/post-purchase-upsells/quickstart.md)
- [Overview](/post-purchase-upsells/overview.md)
- [Analytics](/post-purchase-upsells/analytics.md)
