Extension points

Extension points are the locations on the checkout page where Checkout UI Customizers can be inserted. There are two types of extension points as follows:
  • Static extension points: display at fixed positions on the checkout page and are associated with core functions of the checkout process, such as contact information, shipping methods, and order summaries.
  • Dynamic extension points: display at any location on the checkout page and remain visible on the UI, unaffected by the checkout functions. A typical example of utilizing a dynamic extension point is adding a field to collect customer order notes.

Use the render(extensionPoint, App) method to register one or more extension points for a Checkout UI Customizer. Extension points are implemented as React components. Components receive API objects through props to interact with SHOPLINE apps.

tip

Once your app is live, merchants can drag and drop app extensions into available dynamic extension points within the checkout editor. To access the checkout editor, go to the SHOPLINE Admin and navigate to Settings > Checkout settings > Theme configuration > Customize checkout.

Static extension points

Static extension points are closely tied to the core functions of the checkout page, such as contact information, shipping methods, and order summaries. SHOPLINE provides these extension points before and after most core checkout features. If a core checkout feature is not displayed, the static extension point bound to it will not appear either.

Merchants need to activate static extension points through the checkout editor. The positions of static extension points in the checkout editor are fixed, and merchants cannot change their display locations within the checkout editor.

The following figure shows the static extension points in the shipping method section on the checkout page.

Example

render("Checkout::CheckoutLines::RenderAfter", (props) => {
return <Text>Hello World!</Text>;
});

Dynamic extension points

Dynamic extension points are independent of core checkout functions and can be positioned between each step of the checkout process. Merchants have the flexibility to adjust the position of each dynamic extension point in the checkout editor, placing it on the checkout page, the order status page, or the thank you page, according to their preferences.

Dynamic extension points will always be displayed and are not affected by changes in other elements on the checkout page. For example, even if the Express checkout module, as shown in the following figure, is not activated, the dynamic extension Information1 will still be displayed.

Example

render("Checkout::Dynamic::Render", (props) => {
return <Text>Hello World!</Text>;
});
tip

In the development mode, dynamic extension points are rendered at the position of Checkout::Dynamic::Render[Information1] by default. You can add the placement-reference parameter to the URL to specify the location where dynamic expansion points appear on the page. For example, url?placement-reference=Wallet1.

Checkout page extension points

The checkout page is where buyers provide or confirm their contact, shipping, and payment information to finalize their order.

Contact information

Contact information is the first step, where buyers must enter their contact details.

Extension point nameExtension point typeExtension point description
Checkout::Dynamic::Render[Wallets1]DynamicA dynamic extension point that is rendered before the Express checkout module
Checkout::Contact::RenderAfterStaticA static extension point that is rendered after the contact information
Checkout::Dynamic::Render[Information1]DynamicA dynamic extension point that is rendered before the contact information
Checkout::Dynamic::Render[Information2]DynamicA dynamic extension point that is rendered after the contact information
Shipping method
Payment information
Order summary
Single-page checkout

Thank you page & order status page extension points

Immediately after a successful checkout, the buyer is redirected to the thank you page. This page also serves as the order status page, where buyers can return to track their shipping and order progress.

Order details

Displays all order information to the buyer.

Extension point nameExtension point typeExtension point description
Checkout::Dynamic::Render[OrderStatus1]DynamicA dynamic extension point that is rendered after the order number
Checkout::Dynamic::Render[OrderStatus2]DynamicA dynamic extension point that is rendered after the order update subscription
Checkout::Dynamic::Render[OrderStatus3]DynamicA dynamic extension point that is rendered after the customer information
Order summary
Was this article helpful to you?