A great customer-facing user experience (UX) for pre-orders and TBYB is important for the success of our merchants because it enables them to offer customers a more flexible purchasing process.
A pre-order or a TBYB is any transaction where the payment or fulfillment doesn't happen at the time of purchase.
This guide explains the key principles and component-level guidelines for implementing pre-order and TBYB UIs. and TBYB user interfaces (UIs).
## User experience principles
To provide a good experience with pre-order or TBYB options and gain trust from customers, make sure to implement the following UX principles:
- **Be clear and up front about important information**: Customers should be able to clearly identify the options and make a choice, such as try now, pay later.
- **Provide clarity around money**: Customers should be able to clearly identify how much they will pay at checkout, the total cost of the product, when they’ll be charged a remaining balance amount (when applicable), and when their payment method will be charged.
- **Offer as much clarity around delivery timelines as possible**: When possible, provide exact dates or a range, if exact dates are unavailable, for when customers can expect to receive their products, or the duration of the trial period.
- **Provide a seamless integration**: The UI for options should be integrated into the theme’s existing design system.
- **Use clear language**: Use language that customers can understand and that refers to the actual purchase terms. For example, use "pre-order", "back-order", and "TBYB".
## User interface guidelines
Before you integrate your pre-order and TBYB options app into a theme, familiarize yourself with the UX guidelines and best practices that are associated with each component.
Apps should consider that products with different ways of purchasing are displayed in the following places on the online store:
- Product pages
- Collection pages
- Search results
- Featured product sections on the home page
- Quick view modals on product cards
When customers can see available ways of purchasing at relevant points in the shopping process, they're more likely to utilize them. Ensure that all relevant information is always included, such as the deposit amount and fulfillment date, estimate for pre-orders, or the trial period length for TBYB.
Pre-order and TBYB information is displayed in the following components of the online store:
- Product forms
- Cart items
- Order details
The following sections include guidance for displaying prices, styling UI components for pre-orders and TBYB, and presenting multiple purchasing options. In each section, the relevant [Liquid](/docs/api/liquid) properties that are required to create each component are also referenced.
## Product forms
The product form enables a customer to select their pre-order or TBYB option. This form is where the merchant can provide clarity and more details for a product and its available variants. Product forms are used in product pages, featured product sections on home pages, and quick view modals on product cards.
The subcomponents of a product form include the following:
- A. Price
- B. Selling plan selection
- C. Selling plan details
- D. Main call-to-action
**Example: Product form (pre-order)**

**Example: Product form (TBYB)**

### A. Price
Customers should be able to clearly identify the full price of the product, and the type of purchasing option that the product is.
**Example: Price (pre-order)**
# | UI element | Liquid properties and information | UI guidelines |
---|---|---|---|
1 | Price | price |
Reflect the price details from the selected pre-order. |
2 | Pre-order badge | selling_plan_group.name Reflect the price details from the selected pre-order. |
Provide a contextual pre-order badge or label to help differentiate against a one-time pre-order. The badge or label will help customers quickly understand that this product can be bought as a pre-order. |
# | UI element | Liquid properties and information | UI guidelines |
---|---|---|---|
1 | Purchase options | product.selling_plan_groups |
One-time purchases and selling plan groups are considered different types of purchasing options. Use the term **Purchase options** in your own designs. |
2 | One-time purchase | product.requires_selling_plan If the property is false , then at least one variant can be purchased as a one-time purchase, and the one-time purchase option should be presented in the UI. |
Group behavior On the first page load, select the one-time option by default. When the customer interacts with the UI, consider collapsing the unselected group to make good use of the space. Disable the selling plan group selection when it isn’t available for a given variant. Group layout Prioritize displaying purchasing options in a vertically stacked list to make them readable on all devices. When displayed side-by-side, the information can be crowded on smaller screens. Group style Consider displaying purchasing options as radio inputs instead of buttons. Buttons can easily compete with the product form’s call-to-action. For example, a submit button. |
3 | Selling plan group name | selling_plan_group.name Always make this value visible. For more information, refer to selling_plan_group.name. |
|
4 | Selling plan option value | selling_plan_option.value |
Don’t express exact prices in option values, such as “$50 deposit”, because the values won’t be accurate if the currency changes. Expressing percentages is possible because they stay consistent even if the currency changes. For more information refer to Considerations for currency switching and price rounding. |
# | UI element | Liquid properties and information | UI guidelines |
---|---|---|---|
1 | Selling plan description | selling_plan.description |
Don't express exact prices in option values, for example, "$100 deposit". For more information, refer to Considerations for currency switching and price rounding. Consider including a link to the returns or billing policies in the description. Merchants might have more detailed policies that need to be accessed by customers. |
# | UI element | Liquid properties and information | UI guidelines |
---|---|---|---|
1 | Call-to-action | On first page load, if the product requires a selling plan or one is selected, then switch the call-to-action string to something purchase option-specific that merchants can customize. | Update the call-to-action label to the accelerated checkout button for a deferred purchase option, and keep the add to cart button as is. |
# | UI element | Liquid properties and information | UI guidelines |
---|---|---|---|
1 | Selling plan information | line_item.selling_plan_allocation.selling_plan.name Use selling_plan.name in the cart line item. This same text is used at checkout. For more information, refer to Using the selling plan name. |
Because the selling plan name is meant to accurately summarize the deferred purchase option, don't list the individual selling plan option values alongside the selling plan name. |
2 | Price | price
| Display the full price of the product so that the customer is reminded of the total cost of the item they’re buying. |
3 | Price at checkout | selling_plan.checkout_charge.value
| The price customers will pay at checkout. For pre-order items, this price usually represents the deposit amount. For TBYB items, the price will usually be $0 to indicate to customers that they won’t need to pay anything at checkout. |
# | UI element | Liquid properties and information | UI guidelines |
---|---|---|---|
1 | Selling plan information | line_item.selling_plan_allocation.selling_plan.name Use selling_plan.name in the cart line item. This same text is used at checkout. For more information, refer to Using the selling plan name. |
Because the selling plan name is meant to accurately summarize the deferred purchase option, don't list the individual selling plan option values alongside the selling plan name. |
2 | Price | price
| Display the full price of the product so that the customer is reminded of the total cost of the item that they’re buying. |
# | UI element | Liquid properties and information | UI guidelines |
---|---|---|---|
1 | Selling plan information | line_item.selling_plan_allocation.selling_plan.name Use selling_plan.name in the cart line item. This same text is used at checkout. For more information, refer to Using the selling plan name. |
Because the selling plan name is meant to accurately summarize the pre-order or TBYB option, don't list the individual selling plan option values alongside the selling plan name. |
2 | Price | price
| Display the full price of the product so that the customer is reminded of the total cost of the item they’re buying. |
3 | Price at checkout | selling_plan.checkout_charge.value
| The price customers will pay at checkout. For pre-order items, this price usually represents the deposit amount. For TBYB items, the price will usually be $0 to indicate to customers that they won’t need to pay anything at checkout. |