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)
- Product and deal overrides without leaving the Karla app
- Optional second offer after the first accept/decline
- Defaults inherited from your active product promotion in the portal
Prerequisites#
- Install the Karla Shopify app and complete onboarding.
- 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.
- 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#
| Step | Where | What you do |
|---|---|---|
| 1 | Karla app → Settings | Configure audience, product, deal, and options |
| 2 | Shopify admin → Checkout | Set 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#
- Open Shopify admin → Apps → Karla.
- Go to Settings.
- Scroll to Post-purchase upsell.
Audience#
Choose who sees the offer:
| Audience | Behavior |
|---|---|
| Everyone | Show the offer to all customers (default) |
| First-time customers | Only on a customer's first order |
| Returning customers | Only 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.
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:
- Click Select product (opens Shopify’s variant picker — multi-SKU products matter).
- Choose the product variant to feature.
- 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:
| Setting | Options |
|---|---|
| Discount | Promotion discount (default), Percentage, or Fixed amount |
| Discount value | Percent (1–100) or fixed amount in your shop currency |
| Quantity | Units 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.
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.
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.
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:
- In Shopify admin, go to Settings → Checkout.
- Scroll to the Post-purchase page section.
- Select Karla / Karla Post-Purchase Upsell (the label Shopify shows once the Karla app is installed).
- 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)
- Star ratings / review count when your catalog has standard
reviews.rating/reviews.rating_countmetafields (e.g. Judge.me, Loox) - A ~10-minute urgency countdown; when it expires the page continues without the offer
- Buy now (charges the vaulted payment method) or Decline offer
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| E[Show hero offer]
E --> F{Second offer enabled?}
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.
- 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.
Test before going live#
- Place a test order paid with a card (or Shopify Payments test mode).
- Confirm the post-purchase page appears with your product, price, and discount.
- Accept the offer and verify the order is updated with the extra line item.
- Decline (or accept) and confirm the second offer appears when enabled.
- Repeat with a first-time vs returning customer if you use audience targeting.
Changing the offer later#
Merchants can self-serve without Karla involvement:
| Change | Where |
|---|---|
| Swap the featured product | Karla app → Settings → Offer product |
| Change discount or quantity | Karla app → Settings → Deal → Save deal |
| Change who sees it | Karla app → Settings → Audience |
| Update the default catalog | Portal → edit the active product promotion |
| Turn the surface off | Shopify → 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.
Related#
- Shopify integration — install the app and tracking setup
- Product promotions — source of default upsell products
- Thank you survey — collect feedback on the Thank you page after the upsell