Draft order checkout
Written By Floris de Vries
Last updated About 1 hour ago
The Draft order checkout setting changes how customers move from the cart to checkout. When enabled, the calculator app intercepts the standard Shopify checkout buttons and instead creates a draft order in your Shopify admin, then sends the customer to that draft order’s invoice URL.
This is useful when you want full server-side control of the cart contents and pricing, or when your custom prices need to bypass certain native checkout limitations.
What it does
Replaces the action of theme checkout buttons (cart page, mini-cart, drawer, etc.) on pages where the calculator script runs.
Sends the cart contents and any line item properties (calculator selections, custom price, signatures, custom image) to the app server.
The server creates a draft order in your Shopify admin and returns its invoice URL.
The customer is redirected to that invoice URL to finish payment.
If the cart contains no calculator lines, the standard Shopify checkout flow is used as a fallback.
How to turn it on
Open the app and go to Settings.
Scroll to the Checkout section.
Tick Create draft order on checkout.
Click Save.
For new shops the toggle is off until you explicitly save it. The dashboard setup guide includes a dedicated step that links to this section.
Theme requirements
Draft checkout works only on pages that load the app embed. Make sure the Product Calculator app embed is enabled for the whole theme, or at least for any template that renders the cart or a cart drawer (cart page, product page with quick-add drawer, etc.). Without the embed, the storefront script cannot run, the checkout button is not intercepted, and the customer goes through the normal Shopify checkout instead.
Custom checkout button selector
If your theme uses a non-standard checkout button that the app does not detect automatically, you can list extra CSS selectors under Advanced settings → Custom checkout button selector. Each selector goes on its own line or is comma-separated, for example:
#CartDrawer-CheckoutThe custom selectors are tried first and fall back to the built-in selector list when no element matches.
Customer email
The customer’s email is optional. If your storefront knows it (logged-in customer or captured at the cart), it is used to attach the draft order to that customer. Without an email, a guest draft is created.
Pricing safety
The draft-order checkout flow respects the global Server-side price validation setting. When that toggle is on, the price on each calculator line is verified server-side before the draft is created. When it is off, the value of __ooCustomPrice on the line is used as-is. See Server-side price validation (safety feature) for the trade-offs.
💡 Tip: If draft checkout is enabled in the app but the toggle in your theme settings was never saved, the storefront falls back to the standard Shopify checkout. Always press Save after enabling the option.