The Checkout Templates API allows you to create and manage pre-populated checkouts to share with customers. When customers then create checkouts from these templates, the new checkouts already include this information.
With the Checkout Templates API, you can:
It’s important to note that the checkout template functionality is not currently available in the Wix Dashboard. If you create checkout templates with the API, you will also manage and update your checkout templates through the API. For example, when you offer a sale through a checkout template you need the API to change the template’s status
to INACTIVE
in order to turn off the sale when you want it to end.
To use the Checkout Templates API, import { checkoutTemplates }
from the wix-ecom-backend
module:
import { checkoutTemplates } from "wix-ecom-backend";
Except for createCheckoutFromTemplate()
,
all functions in the Checkout Templates API are restricted and only run if you elevate permissions
using the wix-auth
elevate()
function.
Warning: Elevating a function allows it to be called by any site visitor. Exercise caution to prevent security vulnerabilities.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Creates a new checkout based on the checkout template and redirects to the new checkout page.
Before using this function, you must have a checkout template available. Create a checkout template with createCheckoutTemplate()
.
To build a URL that uses this function, follow this format:
https://www.wixapis.com/ecom/v1/checkout-templates/{checkoutTemplateId}/create-and-redirect-to-checkout?siteId={siteId}
To create a checkout but not automatically redirect to the checkout page, use createCheckoutFromTemplate()
.
function createAndRedirectToCheckout(
checkoutTemplateId: string,
siteId: string,
): Promise<RawHttpResponse>;
ID of the checkout template to use to create a checkout.
ID of the site associated with the checkout template.
import { checkoutTemplates } from "wix-ecom-backend";
async function createAndRedirectToCheckout(checkoutTemplateId, siteId) {
try {
const result = await checkoutTemplates.createAndRedirectToCheckout(
checkoutTemplateId,
siteId,
);
return result;
} catch (error) {
console.error(error);
// Handle the error
}
}
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Creates a new checkout based on the checkout template.
Before using this function, you must have a checkout template available. Create a checkout template with createCheckoutTemplate()
.
The customer can be directed to the new checkout using the checkout's checkoutUrl
.
function createCheckoutFromTemplate(
checkoutTemplateId: string,
siteId: string,
): Promise<CreateCheckoutFromTemplateResponse>;
ID of the checkout template to use to create a checkout from.
ID of the site associated with the checkout template.
import { checkoutTemplates } from "wix-ecom-backend";
async function createCheckoutFromTemplate(checkoutTemplateId, siteId) {
try {
const result = await checkoutTemplates.createCheckoutFromTemplate(
checkoutTemplateId,
siteId,
);
return result;
} catch (error) {
console.error(error);
// Handle the error
}
}
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Creates a checkout template.
A checkout template is used to create a new checkout that will include predefined information. For example, a single link with
a checkoutTemplateId
can be shared with customers and each time the link is clicked, a new checkout page will be created
for that customer with certain checkout information already populated.
The customizable features include the option to allow or to lock coupon codes or gift cards. For example, if a store owner is
using the checkout template to offer a flash sale to their social media followers, they may want to lock the option to apply an
additional coupon on top of the sale being offered. If so, they can set customization.lockedCoupon
to true
.
A checkout can be created with a checkout template by calling createCheckoutFromTemplate()
. The site may add further customizations to the new checkout and then redirect the customer using the new checkout's checkoutUrl
.
This function requires elevated permissions and runs only on the backend and on dashboard pages.
function createCheckoutTemplate(
checkoutTemplate: CheckoutTemplate,
): Promise<CheckoutTemplate>;
Checkout template to create.
import { checkoutTemplates } from "wix-ecom-backend";
async function createCheckoutTemplate(checkoutTemplate) {
try {
const result =
await checkoutTemplates.createCheckoutTemplate(checkoutTemplate);
return result;
} catch (error) {
console.error(error);
// Handle the error
}
}
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Deletes a checkout template.
If a checkout template is deleted and a customer attempts to create a checkout with that checkoutTemplateId
then
the customer will be redirected to the domain site.
This function requires elevated permissions and runs only on the backend and on dashboard pages.
function deleteCheckoutTemplate(checkoutTemplateId: string): Promise<void>;
ID of the checkout template to delete.
import { checkoutTemplates } from "wix-ecom-backend";
async function deleteCheckoutTemplate(checkoutTemplateId) {
try {
const result =
await checkoutTemplates.deleteCheckoutTemplate(checkoutTemplateId);
return result;
} catch (error) {
console.error(error);
// Handle the error
}
}
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Retrieves a checkout template.
This function requires elevated permissions and runs only on the backend and on dashboard pages.
function getCheckoutTemplate(
checkoutTemplateId: string,
): Promise<CheckoutTemplate>;
ID of the checkout template to retrieve.
import { checkoutTemplates } from "wix-ecom-backend";
async function getCheckoutTemplate(checkoutTemplateId) {
try {
const result =
await checkoutTemplates.getCheckoutTemplate(checkoutTemplateId);
return result;
} catch (error) {
console.error(error);
// Handle the error
}
}
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Creates a query to retrieve a list of checkout templates.
The queryCheckoutTemplates()
function builds a query to retrieve a list of checkout templates and returns a CheckoutTemplatesQueryBuilder
object.
The returned object contains the query definition, which is typically used to run the query using the find()
function.
You can refine the query by chaining CheckoutTemplatesQueryBuilder
functions onto the query. CheckoutTemplatesQueryBuilder
functions enable you to sort, filter, and control the results that queryCheckoutTemplates()
returns.
queryCheckoutTemplates()
runs with the following CheckoutTemplatesQueryBuilder
default that you can override:
ascending("_id")
The functions that are chained to queryCheckoutTemplates()
are applied in the order they are called. For example, if you apply ascending("status")
and then ascending("_id")
, the results are sorted first by the "status"
, and then, if there are multiple results with the same "status"
, the items are sorted by "_id"
.
The following CheckoutTemplatesQueryBuilder
functions are supported for the queryCheckoutTemplates()
function. For a full description of the checkout template object, see the object returned for the items
property in CheckoutTemplatesQueryResult
.
PROPERTY | SUPPORTED FILTERS & SORTING |
---|---|
_id | eq() ,ne() ,exists() ,in() ,hasSome() ,startsWith() ,ascending() ,descending() |
status | eq() ,ne() ,exists() ,in() ,hasSome() ,ascending() ,descending() |
This function requires elevated permissions and runs only on the backend and on dashboard pages.
function queryCheckoutTemplates(): CheckoutTemplatesQueryBuilder;
import { checkoutTemplates } from "wix-ecom-backend";
async function queryCheckoutTemplates() {
const { items } = checkoutTemplates.queryCheckoutTemplates().find();
}
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.
This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.
Updates a checkout template.
If the info in a checkout template is updated, only new checkouts created from this template will include the updated items. Checkouts previously created from this template before the update will not be affected.
This function requires elevated permissions and runs only on the backend and on dashboard pages.
function updateCheckoutTemplate(
_id: string,
checkoutTemplate: UpdateCheckoutTemplate,
options: UpdateCheckoutTemplateOptions,
): Promise<CheckoutTemplate>;
Checkout template ID.
Checkout template info to update.
import { checkoutTemplates } from "wix-ecom-backend";
async function updateCheckoutTemplate(id, checkoutTemplate, options) {
try {
const result = await checkoutTemplates.updateCheckoutTemplate(
id,
checkoutTemplate,
options,
);
return result;
} catch (error) {
console.error(error);
// Handle the error
}
}
This method doesn’t return any custom errors, but may return standard errors. Learn more about standard Wix errors.