Checkout Settings API
The Checkout Settings API provides read-only access to the merchant's checkout configuration that was active when the buyer placed the order on the Order status page. Use this API to detect the order submission type, display B2B payment terms, and check shipping address editability.
Checkout settings reflect the merchant's configuration at the time of checkout. If the merchant updates their settings after an order is placed, the values returned by this API don't change.
Anchor to Use casesUse cases
- Detect order type: Determine whether the order is a standard order or a draft order, and adjust your extension's behavior accordingly.
- Display payment terms: If B2B payment terms are configured, display the due date and terms name to the buyer.
- Check shipping address editability: Determine whether the buyer was able to modify their shipping address during checkout.
Supported targets
- customer-account.
order-status. announcement. render - customer-account.
order-status. block. render - customer-account.
order-status. cart-line-item. render-after - customer-account.
order-status. cart-line-list. render-after - customer-account.
order-status. customer-information. render-after - customer-account.
order-status. fulfillment-details. render-after - customer-account.
order-status. payment-details. render-after - customer-account.
order-status. return-details. render-after - customer-account.
order-status. unfulfilled-items. render-after - customer-account.
order. page. render
Supported targets
- customer-account.
order-status. announcement. render - customer-account.
order-status. block. render - customer-account.
order-status. cart-line-item. render-after - customer-account.
order-status. cart-line-list. render-after - customer-account.
order-status. customer-information. render-after - customer-account.
order-status. fulfillment-details. render-after - customer-account.
order-status. payment-details. render-after - customer-account.
order-status. return-details. render-after - customer-account.
order-status. unfulfilled-items. render-after - customer-account.
order. page. render
Anchor to PropertiesProperties
The shopify global object provides the checkout settings. Access the following property on shopify to read the checkout configuration for the order.
- Anchor to checkoutSettingscheckoutSettingscheckoutSettingsSubscribableSignalLike<CheckoutSettings>SubscribableSignalLike<CheckoutSettings>requiredrequired
The checkout settings that were active when the buyer placed the order, such as whether order notes and login are enabled.
Returns the merchant's checkout configuration at the time of checkout. Doesn't reflect updates made after the order was placed.
SubscribableSignalLike
Represents a reactive signal interface that provides both immediate value access and subscription-based updates. Enables real-time synchronization with changing data through the observer pattern. This interface extends `ReadonlySignalLike` with deprecated fields that are still supported for backwards compatibility.
- current
The current value of the signal. Equivalent to `.value`, accessing this property subscribes to changes when used in a reactive context.
T - destroy
Cleans up the subscription and releases any resources held by this signal. After calling `destroy()`, the signal stops receiving updates from the main thread.
() => Promise<void> - subscribe
Subscribes to value changes and calls the provided function whenever the value updates. Returns an unsubscribe function to clean up the subscription. Use to automatically react to changes in the signal's value.
(fn: (value: T) => void) => () => void - value
The current value of the signal. This property provides immediate access to the current value without requiring subscription setup. Use for one-time value checks or initial setup.
T
CheckoutSettings
Settings describing the behavior of the buyer's checkout.
- orderSubmission
The type of order created when the buyer completes checkout. - `'DRAFT_ORDER'`: The checkout creates a draft order that the merchant must manually confirm before fulfillment. Common for B2B checkouts with deferred payment terms. - `'ORDER'`: The checkout creates a confirmed order immediately upon completion.
'DRAFT_ORDER' | 'ORDER' - paymentTermsTemplate
The payment terms configured by the merchant for B2B orders, such as net-30 or net-60. The value is `undefined` if no payment terms are configured.
PaymentTermsTemplate - shippingAddress
Settings that control how the shipping address behaves during checkout, such as whether the buyer can edit the address.
ShippingAddressSettings
PaymentTermsTemplate
A payment terms template configured by the merchant, defining when payment is due for B2B orders. Common examples include "Net 30" (due in 30 days) or "Due on receipt".
- dueDate
The due date for payment in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format (`YYYY-MM-DDTHH:mm:ss.sssZ`). The value is `undefined` if the payment terms don't have a fixed due date.
string - dueInDays
The number of days the buyer has to pay after the order is placed, such as `30` for "Net 30" terms. The value is `undefined` if the payment terms aren't net-based.
number - id
A globally-unique identifier for the payment terms template in the format `gid://shopify/PaymentTermsTemplate/<id>`.
string - name
The name of the payment terms translated to the buyer's current language, such as "Net 30" or "Due on receipt".
string
ShippingAddressSettings
Settings describing the behavior of the shipping address.
- isEditable
Whether the buyer is allowed to edit the shipping address during checkout. When `false`, the shipping address is locked and can't be changed, which is common for B2B orders with a predefined ship-to address.
boolean
Anchor to Best practicesBest practices
- Adapt messaging for draft orders: When
orderSubmissionisDRAFT_ORDER, the order hasn't been finalized by the merchant yet. Consider adjusting your extension's messaging to indicate that the order is pending review.