Docs/Shops/Post-purchase upsell

Post-purchase upsell#

Show a one-click product offer after payment and before the Thank you page. The buyer can accept with the card already on file — no second checkout. Offers are driven by your active product promotion in the Karla portal, with optional overrides in the Shopify app.

Recommended for: Marketing, E-commerce managers

What you get#

  • A one-click upsell on Shopify's post-purchase page
  • Audience targeting (everyone, first-time, or returning customers)
  • Different offers for first-time vs returning customers, each with its own deal
  • Product and deal overrides without leaving the Karla app
  • Your own offer page texts (headline, subheading, urgency line, badge)
  • Product trigger rules — offer a different product when specific items are in the order
  • Optional second offer after the first accept/decline
  • Defaults inherited from your active product promotion in the portal

Prerequisites#

  1. Install the Karla Shopify app and complete onboarding.
  2. Publish an active manual product promotion in the Karla portal with at least one Shopify product that resolves to a purchasable variant (variant ID, cart permalink, or storefront handle). Dynamic / AI product promotions are not used on this surface. By default, the upsell offers the first resolvable product from the preferred (usually default-segment) active promotion.
  3. Use a payment method that supports post-purchase offers (card / Shopify Payments). Some methods (e.g. cash on delivery, certain wallets) skip the post-purchase page entirely.

Setup overview#

StepWhereWhat you do
1Karla app → SettingsConfigure audience, product, deal, and options
2Shopify admin → CheckoutSet the post-purchase page to Karla and save

Configuration lives in the Karla app. Activation is a one-time choice in Shopify checkout settings. After that, merchants can change offers themselves — no Karla implementation work required.

Step 1: Configure the offer in the Karla app#

  1. Open Shopify admin → Apps → Karla.
  2. Go to Settings.
  3. Scroll to Post-purchase upsell.

Audience#

Choose who sees the offer:

AudienceBehavior
EveryoneShow the offer to all customers (default)
First-time customersOnly on a customer's first order
Returning customersOnly for customers with a previous order

If you do not want to interrupt first-time conversion, select Returning customers. When a customer cannot be identified, Karla still shows the offer (fail-open) so legitimate buyers are not blocked.

Different offers per audience#

Beyond gating who sees the page, you can show different products to different customers. Under First-time customer offer and Returning customer offer, pick a product variant and an optional deal for that group — for example, a starter add-on for first-time buyers and a loyalty deal for returning ones.

  • A segment offer replaces the default offer product for buyers in that group; everyone else (and any customer who cannot be classified in time) sees the default offer.
  • Each segment offer carries its own deal, with the same discount and quantity options as the main Deal section.

Offer product#

By default, Karla offers the first resolvable product of your active manual product promotion. You do not need to pick anything unless you want a specific product forward — for example a new release, an underperforming SKU, or a hero add-on.

To override:

  1. Click Select product (opens Shopify’s variant picker — multi-SKU products matter).
  2. Choose the product variant to feature.
  3. Use Reset to promotion product anytime to go back to the promotion default.

If the selected variant is part of your promotion, its promotion discount can still apply unless you set a dedicated deal below. If it is not in the promotion, there is no promotion discount on this surface unless you set a deal.

Deal#

Configure discount and quantity for this surface, independently of the promotion:

SettingOptions
DiscountPromotion discount (default), Percentage, or Fixed amount
Discount valuePercent (1–100) or fixed amount in your shop currency
QuantityUnits added in one click (1–10; default 1)

A discount set here replaces the promotion discount on the post-purchase page. Click Save deal after changing values — unlike audience / skip / second-offer toggles, the deal does not apply until you save it.

Offer page texts#

Write the offer page in your own words under Offer page texts:

FieldWhere it appears
HeadlineMain heading of the offer page
SubheadingSupporting line under the headline
Urgency lineThe countdown sentence — use {time} where the ticking clock should go
BadgeShort label above the product title (e.g. "Bestseller"); empty = no badge

Empty fields fall back to Karla's built-in text in the buyer's language; custom text is shown exactly as you write it, untranslated. Click Save texts to apply.

Skip if already in the order#

Toggle Skip if already in the order when you want a true cross-sell. Karla filters out any funnel step whose offered variant is already in the just-placed order before the page renders:

  • Hero already in the order + second offer enabled → buyers may land directly on the second step
  • Every remaining step filtered out → the post-purchase page is skipped

Leave the toggle off if you are happy selling additional units of something already in the cart at a discount — that pattern often converts well.

Product trigger rules#

Beyond the default offer, you can offer a different product depending on what the buyer just bought. Under Product trigger rules, create a rule by picking one or more trigger products and the product to offer when the order contains any of them — for example, offer a travel case whenever a razor is in the order.

  • Rules are checked top to bottom and the first match wins, so order matters when a buyer's order could match more than one rule. Use the move up / move down controls to set priority.
  • Triggers are matched at the product level, not the variant — a rule for "any size of X" keeps matching as you add new SKUs.
  • A matched rule outranks audience/segment offers: what the buyer bought is a stronger signal than which group they fall into.
  • A rule only changes which product is offered. The discount and quantity still come from the Deal section above.
  • When no rule matches, the default offer product (or segment offer, if configured) is used.
  • Each rule needs both a trigger product and an offer product before it can be saved; incomplete rules block Save rules until finished or removed.

Second offer (optional)#

Enable Second offer to show another one-click step after the buyer accepts or declines the first offer.

You can configure:

  • Number of products on the second step (1–3). With two or more, buyers see a small product grid instead of a single offer.
  • Second offer product — defaults to the next resolvable product(s) in your active promotion. A merchant override fills the first second-step slot; remaining grid slots auto-fill from the promotion.
  • Second offer deal — optional deeper discount / quantity for this step. One deal applies to the entire second step (all grid tiles), not per product.
  • Bundle offer — compose the second step from 2–4 product variants sold as one offer with one deal on the bundle total (e.g. "Sommer Bundle (1+1)"). A saved bundle replaces the second-step product selection and always renders as a single offer; a percentage discount takes that share off the bundle total, a fixed discount is the amount off the bundle total. The optional bundle description is the offer page's sales copy — a bundle never shows a single product's PDP description, so without one the description area stays empty. Bundle products must differ from your first offer's — if your promotion-driven first offer ever contains a bundle product, the bundle is skipped and the regular second offer shows instead.

Step 2: Activate on the Shopify post-purchase page#

Configuration alone does not show the page. You must assign Karla as the post-purchase app:

  1. In Shopify admin, go to Settings → Checkout.
  2. Scroll to the Post-purchase page section.
  3. Select Karla / Karla Post-Purchase Upsell (the label Shopify shows once the Karla app is installed).
  4. Click Save.

Shopify shows an unsaved-changes banner after you select the app. The extension does not go live until you press Save.

If another app or custom code already owns the post-purchase page, switching to Karla replaces it for that slot. Only one post-purchase app can be active at a time.

What buyers see#

On the post-purchase page, buyers typically get:

  • A short personalized greeting when their first name is known
  • The offer product (image, price, discount badges when applicable)
  • A Choose an option selector on single-product steps when the offered product has several variants — buyers pick their size or color before accepting
  • Star ratings / review count when your catalog has standard reviews.rating / reviews.rating_count metafields (e.g. Judge.me, Loox)
  • An optional urgency countdown (1–60 minutes, 10 by default — configured in the Karla app, with the sentence editable via Offer page texts); one clock runs across all offer steps, and when it runs out the page closes and checkout continues without the offer
  • A price summary with subtotal, discount, shipping, and taxes — when the buyer paid shipping on the original order, it states up front that already-paid shipping costs will not be refunded (accepting the offer never recalculates the original shipping line, even across a free-shipping threshold)
  • Add to my order (charges the vaulted payment method) or No thanks, continue

With a second offer enabled, declining or accepting the hero advances to the next step (single product or grid).

How offers are chosen#

flowchart TD
  A[Buyer completes payment] --> B{Post-purchase page = Karla?}
  B -->|No| Z[Thank you page]
  B -->|Yes| C{Audience allows buyer?}
  C -->|No| Z
  C -->|Yes| D{Active product promotion with Shopify variant?}
  D -->|No| Z
  D -->|Yes| H{Order matches a trigger rule?}
  H -->|Yes| E1[Show rule's offer product]
  H -->|No| E2[Show hero offer]
  E1 --> F{Second offer enabled?}
  E2 --> F
  F -->|Yes| G[Show second step]
  F -->|No| Z
  G --> Z
  • No active / resolvable manual product promotion → the post-purchase page is skipped (dynamic product promotions never feed this surface).
  • Merchant product override (if set) wins over the promotion's first product.
  • A matching product trigger rule wins over the audience/segment offer and the default offer product.
  • Deal override (if set) wins over the promotion discount on this surface.
  • Skip-if-in-order can remove the hero, the second step, or both before render.

How accepted offers appear in Shopify#

Accepting the offer edits the buyer's original order — there is no second order and no second checkout:

  • The offered product is added to the order as an extra line item, and the payment method on file is charged for the difference.
  • Karla counts the conversion only after Shopify confirms the order edit was actually committed, so reported upsell numbers reflect real order changes.
  • Orders with an accepted offer are tagged karla-post-purchase-upsell — filter your Orders list by that tag to see every upsell conversion.

Like any order tag, karla-post-purchase-upsell also becomes a Karla segment (Shopify.tag.karla-post-purchase-upsell), so you can target upsell buyers in campaigns and A/B tests.

Test before going live#

  1. Place a test order paid with a card (or Shopify Payments test mode).
  2. Confirm the post-purchase page appears with your product, price, and discount.
  3. Accept the offer and verify the order is updated with the extra line item and tagged karla-post-purchase-upsell.
  4. Decline (or accept) and confirm the second offer appears when enabled.
  5. Repeat with a first-time vs returning customer if you use audience targeting.

Changing the offer later#

Merchants can self-serve without Karla involvement:

ChangeWhere
Swap the featured productKarla app → Settings → Offer product
Change discount or quantityKarla app → Settings → Deal → Save deal
Change who sees itKarla app → Settings → Audience
Different offer per audienceKarla app → Settings → First-time / Returning customer offer
Offer a product based on cart contentsKarla app → Settings → Product trigger rules → Save rules
Rewrite the page textsKarla app → Settings → Offer page texts → Save texts
Update the default catalogPortal → edit the active product promotion
Turn the surface offShopify → Checkout → Post-purchase → None

Troubleshooting#

Post-purchase page never appears

  • Confirm Post-purchase page is set to Karla and saved under Settings → Checkout.
  • Pay with a supported method (card / Shopify Payments). COD and some wallets skip the page.
  • Ensure an active manual product promotion exists with at least one resolvable Shopify product/variant (dynamic-only shops will never see an offer).
  • Audience settings may exclude the test customer (try Everyone while testing).
  • Orders under Shopify's minimum for post-purchase offers may skip the page.

Wrong product or discount

  • Check for an offer-product or deal override in Karla Settings.
  • Confirm which product promotion is live in the portal.

Offer shows a product already in the cart

  • Enable Skip if already in the order, or pick a complementary product as the override.
Was this helpful?