Docs

Present customers with a one-page checkout

Let customers review their order details, enter their address and payment details, and complete purchase all on one page.

Product area

  • Transactions

Tooling

  • Paddle.js
  • Checkout

Released

November 19, 2024

Status

Released

What's new?

We've released one-page checkout, letting customers enter all their details and complete purchase on a single page. It's available for inline and overlay checkout by passing a new variant parameter to Paddle.js.

Illustration showing an overlay checkout. On the left-hand side is an items list. There are two items for a total of $3600 including tax. On the right-hand side is a payment form. There are buttons for card, PayPal, and Apple Pay. The card button is selected and the card details form is shown underneath. There's a big button that says Pay $3600.

How it works

Previously, Paddle Checkout presented customers with two pages to securely capture purchase information. The first page captured customer email address and address information, followed by a second page where customers entered their payment details.

With this update, we've added a new checkout variant that you can use to combine these steps onto one page. This means customers enter their email address, address information, choose a payment method, and complete purchase all on the one page.

You can choose which checkout experience that you present to customers by passing variant with the value one-page or multi-page as a checkout setting. If omitted, Paddle Checkout defaults to multi-page, so existing integrations aren't impacted.

Customer journey

One-page checkout

Enter address, location, and payment details

Illustration showing a one-page inline checkout. There are buttons for card, PayPal, and Apple Pay. Under this, there are fields for email address, country, and ZIP code, followed by a card payment form. There is a button to pay by card.

Checkout complete

Inline checkout with a green check mark, indicating a successful payment.

Multi-page checkout

Enter email address and address information

First page of inline checkout. It has fields for entering customer email address and country.

Enter payment details

Second page of inline checkout. It has buttons for Apple Pay and PayPal, along with a card payment form. There's a pay button.

Checkout complete

Inline checkout with a green check mark, indicating a successful payment.

One-page checkout

Enter address, location, and payment details

Illustration of a simplified overlay checkout. The total is $3600. The payment form is presented, showing options for card, PayPal, and Apple Pay. There are fields for email address, country, ZIP code, and card details. There's a blue 'Pay $3600' button at the bottom.

Checkout complete

Illustration of a simplified overlay checkout. It shows a large checkmark, indicating that checkout is completed.

Multi-page checkout

Enter email address and address information

Illustration showing Paddle Checkout. It's an off-center version of the overlay checkout. The information about items on the right-hand side is grayed out. On the left, there are fields for email, country, and ZIP code. There is a blue 'Continue' button at the bottom.

Enter payment details

Illustration showing Paddle Checkout. It's an off-center version of the overlay checkout. It shows page two of checkout, with a PayPal button at the top and card payment form underneath. There is a blue 'Pay' button at the bottom.

Checkout complete

Illustration showing Paddle Checkout. It's an off-center version of the overlay checkout. It shows the payment success screen, which has a large green checkmark in the center and some text underneath. The text is represented by gray blocks.

Examples

Overlay checkout

This example opens a one-page overlay checkout. It passes the settings object to the Paddle.Checkout.open() method, meaning settings only apply to the opened checkout.

JavaScript
var itemsList = [
{
priceId: 'pri_01gm81eqze2vmmvhpjg13bfeqg',
quantity: 1
},
{
priceId: 'pri_01gm82kny0ad1tk358gxmsq87m',
quantity: 1
}
];
Paddle.Checkout.open({
settings: {
displayMode: "overlay",
variant: "one-page"
},
items: itemsList,
});

Inline checkout

This example opens a one-page inline checkout. It passes the settings object to the Paddle.Initialize() method, meaning settings apply to all checkouts opened on the page.

JavaScript
Paddle.Initialize({
token: 'live_7d279f61a3499fed520f7cd8c08', // replace with a client-side token
checkout: {
settings: {
displayMode: "inline",
variant: "one-page",
theme: "light",
locale: "en",
frameTarget: "checkout-container",
frameInitialHeight: "450",
frameStyle: "width: 100%; min-width: 312px; background-color: transparent; border: none;"
}
}
});

Next steps

This change is live in Paddle.js now. You don't need to do anything to get the latest version of Paddle.js — we serve the latest version automatically. If you're using the Paddle.js wrapper, update to the latest version in your project using your package manager.

You can choose which checkout experience to present to customers. Pass variant with the value one-page to Paddle.Checkout.open() or to Paddle.Initialize() as a checkout setting to present customers with the one-page checkout experience.

If omitted, variant defaults to multi-page and Paddle presents the multi-page checkout experience.

You shouldn't need to make major changes to your implementation to start using the one-page checkout experience, but we recommend that you:

  • Test your checkout journey
    If you've built an inline checkout flow that presents customers with breadcrumbs or other UI elements to illustrate where they are in the process, you can remove these now all checkout fields are on one page.
  • Test checkout events
    While Paddle.js events haven't changed, the checkout flow has changed. Check that Paddle.js events emitted still work for you. For example, checkout.customer.created may have been used to indicate that a customer had moved to the second page of the checkout. There's now only one page, so it's now emitted once a customer has entered their email address and location information.
  • Review and update your checkout frame initial height — inline checkout only
    When opening an inline checkout, you can pass frameInitialHeight to set the height of the element where Paddle Checkout is loaded. You may need to increase this to accommodate the one-page checkout form.

We've updated our docs with information about the new one-page checkout, including Paddle.js reference guides, our inline checkout overview guide, and our overlay checkout overview guide.

Summary of changes

Entity Field Change Type
Paddle.Checkout.open() variant + Added Paddle.js param
Display checkout as one-page or multi-page.

Was this page helpful?