March 18, 2026

Post-Purchase Upsells: The Revenue Moment Everyone Ignores

The screen right after payment is the one place you can add to an order without a second checkout. Here is why most Shopify stores leave it empty.

X

xPostio Team

@ismayloule
post-purchaseupsellaov

The window most stores leave empty

A shopper has entered their payment details. They have clicked the button. The payment has gone through and they are still on your store, on Shopify’s own post-purchase page, before the thank you screen.

What happens next?

On most stores: nothing. A thank you page, and the standard Shopify order confirmation a few minutes later.

That screen is the one place in the whole order where you can add an item without asking anyone to check out again.

Why the moment is different

  1. The buying decision is already made. Nobody needs convincing to buy from you. They just did.
  2. The payment details are already in. Accepting an offer adds the items to the order they already paid for, charged to the same card.
  3. There is no second checkout. No new cart, no card details typed again, no second order to fulfill or refund.
  4. A no costs you nothing. The original order is placed either way. Declining an offer does not put it at risk.

Why most stores leave it empty

The usual tools ask for a second checkout. A lot of upsell apps hand the shopper a fresh cart and a fresh payment form. That is the hardest part of the order, asked for a second time, for something the shopper was not planning to buy. Plenty of them will not do it twice, and the ones who do leave you with two orders to manage instead of one.

Picking products by hand does not scale. The other common setup asks you to map which product to offer after which purchase. With a few hundred SKUs that list is out of date the week you finish writing it, and nobody goes back to maintain it.

What xPostio puts in that window

The offer runs on Shopify’s own post-purchase page, so accepting it is one click and the items join the order the shopper already paid for.

There are four discount types: percentage, fixed amount, Buy X Get Y, and free shipping. The Free plan includes percentage; the other three are on Growth and Pro. Set Max Products in Offer to decide how many products an offer can show, with 3 as the default (1 on Free), up to your plan’s limit of 1 on Free, 3 on Growth and 10 on Pro. On Growth and Pro, turn on the time-based discount, give it a duration in minutes, and the shopper sees a live countdown on the page. When it reaches zero the offer closes as if the shopper had declined it.

You do not maintain a mapping. xPostio compares what the shopper just bought against your catalog and shows the closest matches, up to the limit you set. Buy X Get Y is the type where you also hand-pick the gift products, which is what you want when the offer is a specific gift. Set the Gift discount value to 100 and the gift is free, and the gift discount unlocks once the shopper picks at least one recommended product.

Choosing who sees an offer

On Growth and Pro, three targeting rules are available: Cart Value, Quantity and Inventory. Fill in a minimum, a maximum or both, tick Negate this condition to flip a rule, and combine rules with AND or OR. Each rule type can be used once per offer. So a free shipping offer can be held back until the order clears a threshold, and an inventory rule keeps the offer to products with the stock you actually have.

An offer whose rules do not match the order is skipped, and the shopper goes down its Offer declined branch, or straight to the thank you page if nothing is connected there. Customer group and behavioral rules are listed in the app as coming soon and cannot be selected yet.

What you can actually build

The workflow editor has two kinds of card: the trigger and the offer. Every workflow starts with the Post-purchase trigger, already in place, which means the workflow runs once a customer has paid.

A real sequence looks like this:

  1. The shopper completes checkout.
  2. The first offer appears on the post-purchase page.
  3. The Offer accepted path leads to a second offer, added to the same order.
  4. The Offer declined path leads to a different offer instead.

Two limits are worth knowing before you plan anything. A shopper is shown at most three offers in a row, which is Shopify’s limit for post-purchase offers, and because each answer sends the shopper down one branch, a workflow can hold up to seven offers. On the Free plan a workflow holds one offer. And only one post-purchase workflow can be on at a time: if two are on, shoppers see no offer at all.

One more thing has to be true before any of it appears. Shopify shows one post-purchase app per store, and you choose which one in your Shopify admin under Settings → Checkout → Post-purchase page. Until xPostio is selected there, no offer shows.

The page the shopper sees

The offer page has its own drag and drop editor in Settings, under Post-purchase, and the layout you save there applies to every offer. You arrange banner, product card, buttons, image, text and status banner blocks, and write the banner text for each discount type, the product card headline, the “Picked for you” line, the charge note under the buttons and the thank-you screen. A preview shows the page as customers see it.

Some of it stays out of your hands, because Shopify renders the page. The accept and decline button labels are fixed: they read Add to my order · Pay $X and No thanks, complete my order, with the exact total. Shopify also requires one banner at the top, the products, and one pair of accept and decline buttons, so the editor keeps them there. The editor controls layout and wording. The discount itself lives on the offer.

Bring your own AI, or none at all

xPostio has no chatbot of its own. What it has is Connect AI, in Settings, on the Pro plan, which lets you point your own MCP client at the store. Copy the connection URL, paste it into the connectors settings of Claude, ChatGPT or another client, and approve it in your Shopify admin.

Anything the assistant builds is saved as a draft. Nothing reaches shoppers until it is published. It can read your workflows, your product catalogue and your store details, and not your orders, your customers or your checkout results. Your AI provider bills you separately for your own assistant, at their rates.

What you can measure

Each workflow has an overview page with the numbers that matter for this moment: Executed, the customers who saw the workflow, Offers accepted, Offers declined, and Conversions, which is accepted out of accepted plus declined. Each offer on the canvas shows its own accepts, declines and conversion.

Post-purchase revenue is reported on its own: Revenue added on the home page for the last 30 days, and a Revenue column against each workflow. It is the price of what customers accepted minus the discounts you gave, before shipping and taxes, and it is not profit, because your product costs are not taken off.

Install xPostio on Shopify and put an offer in that window.