# Shopify test plan

> Verify the Shopify quickstart, reconcile payments and orders, and check the experience your store controls.

Source: https://help.boltapp.com/platforms/shopify-test-plan

Run this plan after the [Shopify Quickstart](/platforms/shopify). 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 [#fixtures-and-evidence]

Use the test store and Bolt Payments sandbox division from the guide, one available physical product, a supported shipping address, and [test cards](/getting-started/test-cards#bolt-payments). 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 [#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 scopes with the guide.                                                                          | App is installed on the intended test store; required scopes approved; secret is 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 |

## Link and checkout [#link-and-checkout]

| Test                 | Input                                                         | Steps                                                       | Expected output                                                                             | Result  |
| -------------------- | ------------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------- |
| SH-04: Correct link  | Direct-to-checkout link for one variant                       | 1. Copy URL. 2. Open in a fresh browser.                    | Correct product/variant opens; no live-store or production payment destination.             | Not run |
| SH-05: Inactive link | Separate disposable link, not the link used for payment cases | 1. Deactivate in Checkout Everywhere. 2. Reopen copied URL. | Inactive link cannot start a new purchase; existing transaction evidence remains available. | Not run |

## Payment and order [#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.          | 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/link | 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/link                                                                                                                | 1. Open checkout. 2. Close it before paying. 3. Return to the cart/link.                                  | No completed payment; chosen product remains 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 [#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 [#additional-launch-checks]

| Test                            | Input                                                                   | Steps                                                                                                                                                             | Expected output                                                                                                            | Result  |
| ------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------- |
| SH-06: Theme buttons            | Separate installed theme-button extension                               | 1. Follow the theme guide. 2. Test product, cart and cart-drawer entries.                                                                                         | Each supported entry opens its actual cart and returns correctly. This is outside the link-only baseline.                  | Not run |
| SH-15: Refund reconciliation    | Owner-confirmed Shopify / Checkout Everywhere 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 |
