> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# UpsellPage

> A post-purchase upsell page: the offer a shopper sees after paying. The post-purchase flow decides who sees it. A page attached to a checkout experience wins over the flow, and over any A/B test in it, for orders placed through that experience.

**Required scopes:** [`checkout_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-checkout_read), [`checkout_write`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-checkout_write)

**banner** `[UpsellPageBanner!](/docs/api-reference/v3/reference/checkout/upsell-page-banner)` *required*

Its banner.

**fields**

**show** `Boolean!` *required*

Whether the banner shows.

**supportingText** `String!` *required*

The text under the title.

**supportingTextSize** `[UpsellPageTextSize!](/docs/api-reference/v3/reference/checkout/upsell-page-text-size)` *required*

The supporting text's size.

**title** `String!` *required*

Its title.

**titleSize** `[UpsellPageTextSize!](/docs/api-reference/v3/reference/checkout/upsell-page-text-size)` *required*

The title's size.

**createdAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When it was created.

**excludedProductTags** `[String!]!` *required*

Tags that keep a product out of recommendations.

**id** `ID!` *required*

The page's id.

**inUse** `Boolean!` *required*

Whether the live flow or a live checkout experience uses it. Changing a page in use takes `confirmLiveChange`, and it can't be deleted.

**locked** `Boolean!` *required*

Whether post-purchase is locked for the store, which refuses writes.

**name** `String!` *required*

The merchant-facing name.

**products** `[\[UpsellPageProduct!\]!](/docs/api-reference/v3/reference/checkout/upsell-page-product)` *required*

The products it offers, one to four.

**fields**

**allowQuantitySelection** `Boolean!` *required*

Whether the shopper can pick a quantity.

**collectionId** `String`

The numeric Shopify collection id, for COLLECTION.

**customDescription** `String`

A description to show instead of the product's own.

**discountAmount** `String!` *required*

The discount, as a decimal string.

**discountType** `[UpsellPageDiscountType!](/docs/api-reference/v3/reference/checkout/upsell-page-discount-type)` *required*

What `discountAmount` means.

**featuredVariantId** `String`

The variant whose image is featured, for MANUAL.

**productId** `String`

The Shopify product GID, for MANUAL.

**showCompareAtPrice** `Boolean!` *required*

Whether the compare-at price shows.

**showDescription** `Boolean!` *required*

Whether a description shows.

**showIfAlreadyInCart** `Boolean!` *required*

Whether it's offered when already in the order.

**source** `[UpsellPageProductSource!](/docs/api-reference/v3/reference/checkout/upsell-page-product-source)` *required*

How the product is picked.

**variantIds** `[String!]`

The Shopify variant GIDs on offer, for MANUAL.

**timer** `[UpsellPageTimer!](/docs/api-reference/v3/reference/checkout/upsell-page-timer)` *required*

Its countdown timer.

**fields**

**minutes** `Int!` *required*

How long it counts down, in minutes.

**show** `Boolean!` *required*

Whether the timer shows.

**status** `[UpsellPageTimerStatus!](/docs/api-reference/v3/reference/checkout/upsell-page-timer-status)` *required*

Its banner style.

**supportingText** `String!` *required*

The text beside the countdown.

**supportingTextSize** `[UpsellPageTextSize!](/docs/api-reference/v3/reference/checkout/upsell-page-text-size)` *required*

The supporting text's size.

**textColor** `[UpsellPageTimerColor!](/docs/api-reference/v3/reference/checkout/upsell-page-timer-color)` *required*

The countdown's color.

**textSize** `[UpsellPageTextSize!](/docs/api-reference/v3/reference/checkout/upsell-page-text-size)` *required*

The countdown's size.

**updatedAt** `[DateTime!](/docs/api-reference/v3/reference/common/date-time)` *required*

When it last changed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.