Shopify test plan
Verify the Shopify Managed Checkout quickstart, reconcile payments and orders, and check the experience your store controls.
Run this plan after the Shopify Quickstart. These are acceptance criteria, not recorded results. Unexecuted cases are Not run. The refund launch case is Blocked until Bolt confirms a supported Shopify procedure.
Fixtures and evidence
Use the test store, its unpublished duplicate theme, and the Bolt Payments sandbox division from the guide, one available physical product, a supported shipping address, and test cards. Record the app/theme version, date, case ID, Bolt transaction reference, store order ID, amounts and screenshots. Do not record keys, secrets or card details in evidence.
Use a fresh cart or purchase for each payment case. Keep the same product/variant fixture; wait for catalog/configuration updates before retesting. Reconcile uncertain outcomes before retrying. Preserve order evidence; do not refund or delete records as routine cleanup. Refund testing is a separate launch case. Do not infer Shopify support from the other platforms on the general refund page. Restore changed permissions and browser network settings after failure tests.
Mark Passed, Failed, or Blocked with evidence after execution. Baseline completion requires all applicable setup, checkout, payment and merchant-experience cases to pass. Missing required capabilities are Blocked. Additional launch cases do not imply the quickstart built those features.
App and store connection
| Test | Input | Steps | Expected output | Result |
|---|---|---|---|---|
| SH-01: App permissions | Test-store app from checkpoint 1 | 1. Inspect installed app/store. 2. Compare granted Admin and Storefront API scopes with the guide. | App is installed on the intended test store; required scopes approved; client secret and Storefront API token are absent from theme/browser code. | Not run |
| SH-02: Catalog identity | One known variant in test store | 1. Connect the store. 2. Find the imported product. 3. Compare variant/price/currency. | The imported product belongs to the intended store and matches the selected variant. | Not run |
| SH-03: Unavailable access | Sandbox app; new product created after revoking product-read access | 1. Remove product-read access and release the change. 2. Create a new product. 3. Attempt catalog import. 4. Restore/release access and reconnect. | The new product cannot import without product-read access and imports after access is restored. Previously cached products do not count as evidence. | Not run |
Theme and checkout
| Test | Input | Steps | Expected output | Result |
|---|---|---|---|---|
| SH-04: Scripts load | Duplicate theme from checkpoint 3 | 1. Preview the theme. 2. Inspect network requests and console. | connect.js and managed-checkout.js each load once from Bolt sandbox hosts, and bolt-connect-shopify.js loads once from the theme's assets; no CSP or JavaScript errors; only the publishable key appears in page source. | Not run |
| SH-05: Cart button | Test product in cart on the duplicate theme | 1. Open the cart or cart drawer. 2. Change quantity, remove and re-add the product. 3. Select the Bolt button. | Exactly one Bolt button and no native checkout button after each update; checkout opens with the current line items, quantity, price and currency. | Not run |
Payment and order
| Test | Input | Steps | Expected output | Result |
|---|---|---|---|---|
| SH-07: Approved payment | Available product; approved Bolt Payments test card | 1. Pay once. 2. Find Bolt transaction. 3. Find store order. | One completed Bolt payment and one matching store order; item, quantity, shopper, amount and currency agree; storefront cart clears once. | Not run |
| SH-08: Rejected payment | Pre-auth irreversibly rejected card from the Bolt Payments table, using the card set assigned to your division; fresh cart | 1. Submit the rejection card. 2. Inspect transaction and order state. | Payment is rejected before authorization; no order is marked paid; shopper can retry with a supported payment method. | Not run |
| SH-09: Cancel checkout | Unpaid cart | 1. Open checkout. 2. Close it before paying. 3. Return to the cart. | No completed payment; cart contents remain; one working Bolt button is available for another attempt. | Not run |
| SH-10: Repeat submit | Fresh test purchase | 1. Submit twice quickly. 2. Reconcile resulting transactions and orders. | No duplicate completed purchase or duplicate paid order. | Not run |
| SH-11: Uncertain result | Fresh purchase; controlled connection interruption | 1. Interrupt the browser connection after submit. 2. Restore it. 3. Check Bolt and store before retrying. | Operator can determine the existing outcome; no blind second charge. A completed payment has a matching order. | Not run |
Experience you control
| Test | Input | Steps | Expected output | Result |
|---|---|---|---|---|
| SH-12: Store identity | Configured logo and support contact | 1. Open checkout. 2. Inspect identity/support. 3. Inspect confirmation. | Correct store identity and contact details; confirmation refers to the purchased product/order. | Not run |
| SH-13: Phone and keyboard | Narrow phone and keyboard-only desktop | 1. Reach the checkout entry. 2. Open and close checkout. 3. Return to the entry. | Merchant-owned entry remains usable, visible and reachable; focus and return behavior do not strand the shopper. Report Bolt-owned checkout defects to Bolt. | Not run |
| SH-14: Totals | Known product price and supported address | 1. Record store pricing. 2. Enter shipping address. 3. Compare final breakdown. | Product, quantity, shipping, tax, currency and total agree with store configuration. | Not run |
Additional launch checks
| Test | Input | Steps | Expected output | Result |
|---|---|---|---|---|
| SH-06: Buy Now button | Product page button from theme installation | 1. Follow the theme guide. 2. Test the default variant, another variant, a quantity change, and quick add. | Checkout opens with the selected variant and quantity. This is outside the cart-only baseline. | Not run |
| SH-15: Refund reconciliation | Owner-confirmed Shopify Managed Checkout refund procedure required | 1. Ask Bolt to confirm the supported refund entry point and synchronization behavior. 2. Document it here. 3. Execute against a separate completed sandbox order. | Bolt and Shopify refund amount/status reconcile with no duplicate refund. Do not execute until the procedure is confirmed. | Blocked |
| SH-16: Fulfillment | Separate paid order and configured fulfillment workflow | 1. Process the order in the store. 2. Check shopper-facing confirmation/tracking. | Only paid orders enter the intended fulfillment flow; merchant-owned messaging matches the order. | Not run |
| SH-17: Production configuration | Approved production account and separate launch checklist | 1. Review hosts/keys/account. 2. Run an approved production-readiness test. | No sandbox keys, links or scripts in production; launch evidence is recorded separately from sandbox acceptance. | Not run |