Shopify Quickstart
Add Bolt Managed Checkout to your Shopify theme and accept a sandbox payment from your cart.
- Bolt handles the checkout interface, shipping details, and payment collection.
- Your store owns the theme, cart, products, inventory, and order records.
Your integration steps
This flow: a Shopify test store, an unpublished copy of its theme, Managed Checkout, and Bolt Payments sandbox.
Before you begin
Have these ready before the estimated integration time begins. Account provisioning, app approval and distribution setup are separate; the estimate has not been measured in a live walkthrough.
| Requirement | What you need |
|---|---|
| Test store | Shopify admin access to create and install an app and edit theme code, with any required app scopes/distribution approved for this store. |
| Bolt theme script | The generic Shopify Managed Checkout script for your theme asset, supplied by your Bolt implementation contact. |
| Test product | One available physical product and a shipping address your test store serves. |
| Bolt sandbox | Managed Checkout and Bolt Payments enabled for your division. Confirm Shopify test-store connectivity with Bolt before beginning. |
Platform support
This guide is for Shopify. Supporting guides for this platform: Managed Checkout theme installation for Buy Now buttons, dynamic carts, analytics and production, and the connection reference for app credentials and checkout links. Other platforms and custom web apps have their own quickstarts.
1. Create app
- In your Shopify admin, open Apps > Develop apps > Build apps in Dev Dashboard.
- Select Create app, name it Bolt sandbox, and select Create.
- Open Versions > Access. Grant the Admin API scopes that Bolt's Connect Shopify form requires:
write_orders,read_orders,write_draft_orders,read_draft_orders,read_discounts, andread_products. Grant unauthenticated Storefront API access to product listings and their subsections. Keep access limited to the scopes required by this integration. - Select Release. On the app's Home tab, select Install app, choose your test store, and confirm Install.
- Open the app's Settings and copy its Client ID and Client Secret. Keep the secret private; it belongs in Bolt's connection form, never your theme.
- Install or open Shopify Headless and create the Storefront API configuration. Record the Storefront API token in your approved secure location, and confirm its token type before sharing it with your Bolt implementation contact.
Validate app
Confirm the app is installed on the intended test store with the required access, and the Storefront API token is stored securely. If Shopify requires approval or distribution changes before installation, finish that setup before continuing. The connection reference covers Partner distribution.
2. Connect store
- Open Bolt sandbox Integrations and select Shopify.
- Enter your test store URL and the app's Client ID and Client Secret.
- Select Connect Shopify and wait for the product catalog to import.
- Open sandbox Payments. Select Bolt Payments and configure Immediate Capture for the test product's currency.
- Open Business Information. Save your test store's support email and phone number under Support Contact Information.
- Open Checkout settings, add your store logo, and publish the change.
- Open Administration > API and copy the Publishable Key. Only the publishable key belongs in your theme.
Validate connection
The catalog count increases and your test product appears. Confirm the store URL and product variant match your test store. Reopen Payments and confirm Immediate Capture is saved for the test currency. If the catalog stays empty, check the app installation and access scopes before editing your theme.
3. Install scripts
- In your Shopify admin, go to Online Store > Themes. Duplicate the published theme and name the copy Bolt Managed Checkout Staging. Do all work in this step and the next on the copy.
- On the copy, open the three dots menu and select Edit code. Back up
layout/theme.liquidand your cart snippet before editing them. - Open
layout/theme.liquidand paste these three scripts before the closing</head>tag, in this order:
<script
defer="defer"
id="bolt-connect"
type="text/javascript"
src="https://connect-sandbox.boltapp.com/connect.js"
data-publishable-key="PUBLISHABLE_KEY">
</script>
<script
defer="defer"
id="managed-checkout"
type="text/javascript"
data-dynamic-elements-selector="DYNAMIC_ELEMENT_SELECTOR"
src="https://c-sandbox.boltapp.com/shopify/managed-checkout.js?v={{ 'now' | date: '%s' }}">
</script>
<script
defer="defer"
type="text/javascript"
src="{{ 'bolt-connect-shopify.js' | asset_url }}">
</script>- Replace
PUBLISHABLE_KEYwith the sandbox publishable key from step 2. ReplaceDYNAMIC_ELEMENT_SELECTORwith a stable parent element that stays on the page when your cart re-renders, such as#shopify-section-cart-drawerin Shopify's Dawn theme. Configure dynamic cart behavior explains how to choose it for other themes. - Under Assets, select Add a new asset, create
bolt-connect-shopify.js, and paste the generic Shopify Managed Checkout script from Bolt. - In the configuration block near the top of the asset, set
DYNAMIC_ELEMENTS_SELECTORto the same selector, set eachanalyticsdestination your store does not use tofalse, and leavedebugset tofalse.
Validate scripts
Preview the duplicate theme and open your browser's developer tools. Confirm connect.js, managed-checkout.js, and bolt-connect-shopify.js each load once, and the console shows no Content Security Policy or JavaScript errors.
4. Add button
- In the code editor, open the cart drawer, cart footer, or cart page snippet your theme uses.
- Remove or comment out the native Shopify checkout control, including the element with id
CartDrawer-Checkoutwhen present. - Insert the Bolt checkout button in the same location, replacing
PUBLISHABLE_KEYwith your sandbox publishable key:
<div data-tid="instant-bolt-checkout-button" class="px-4">
<object
aria-label="Bolt checkout button"
data="https://connect-sandbox.boltapp.com/v1/checkout_button?publishable_key=PUBLISHABLE_KEY">
</object>
</div>- Save the snippet.
Validate button
Preview the duplicate theme and add your test product to the cart. One Bolt checkout button appears where the native button was, and no second native checkout button remains. Change the quantity and confirm the button survives the cart update. Selecting it opens Bolt checkout with the correct product, variant, quantity, price and currency.
5. Verify order
- From the preview, open Bolt checkout and enter your test shopper details and supported shipping address.
- Compare shipping, tax and final total with the test store's settings.
- Use the Bolt Payments approved test card:
4111 1111 1111 1111, expiration03/30, CVV737. Submit one payment and save its confirmation details. - Open sandbox Transactions and find the completed payment. Record its order number, amount and currency.
- Open Orders in Shopify. Find the matching order and compare shopper, product, variant, quantity and total.
Validate purchase
You are done when the Bolt payment and one matching Shopify order agree, and the storefront cart is cleared once. A browser confirmation alone is not proof. If the payment exists but the store order is missing, investigate that transaction before attempting another purchase.
Test before sharing
Run the Shopify test plan. It tests this cart flow; product page Buy Now buttons, analytics and production lifecycle operations have separate launch checks.
Keep the duplicate theme unpublished. Before publishing it, complete the rest of theme installation, including Test your website and Move to production, and complete production readiness. Test results here do not establish live fulfillment or refund readiness.