SaltAISaltAI
Developer Tools24 February 20268 min read

Shopify App Testing: How to Test Before Submission

Launching a Shopify app without proper testing is like opening a new product line without quality control — the consequences show up fast, and they show up publicly. Whether you're building a custom a

Launching a Shopify app without proper testing is like opening a new product line without quality control — the consequences show up fast, and they show up publicly. Whether you're building a custom app for your own store or preparing a public submission to the Shopify App Store, untested code can trigger checkout failures, broken theme integrations, and refund requests that damage your merchant reputation overnight. For merchants running high-volume operations or supplying enterprise clients, even a brief disruption during peak trading hours can translate into thousands of pounds in lost revenue.

The challenge is that Shopify's ecosystem is layered. Your app has to work across multiple Shopify plan tiers, different theme architectures including Online Store 2.0, and a wide range of merchant configurations. What works perfectly on a Development store running Dawn might break completely on a live store running a heavily customised legacy theme. Most merchants and developers underestimate how many variables exist until something fails in production.

This guide walks you through a structured, practical approach to Shopify app testing — from setting up your development environment correctly to running real-world simulations before you submit or install anything on a live store. By the end, you'll have a clear testing framework you can apply to any app, whether you're a solo merchant experimenting with custom solutions or a development team preparing a public listing.

Set Up a Dedicated Development Store

The foundation of any serious Shopify app testing workflow is a development store that mirrors your production environment as closely as possible. Shopify Partners can create unlimited free development stores through the Partner Dashboard, and this is where all initial testing should happen — never on a live store with real customers. Your development store should use the same theme version, the same installed apps, and a realistic product catalogue that reflects your actual inventory structure, including variant combinations, metafields, and product tags.

One mistake merchants commonly make is testing on a stripped-back store with three placeholder products and no realistic data. This approach misses the edge cases that matter most. If your live store has 2,000 SKUs, 15 active apps, and a customised checkout, your development store should replicate that complexity as closely as possible. Shopify provides a store importer tool, and many third-party services can help you duplicate your store configuration for testing purposes without exposing real customer data.

You should also install the Shopify CLI to run your app locally against the development store using a tunnelling service. This lets you test webhook handling, Admin API calls, and storefront injections in real time with instant feedback. Running a local development server connected to a live development store is significantly faster than pushing changes to a staging environment for every iteration, and it gives you complete visibility into what your app is doing at every step.

Test Across Multiple Themes and Plan Tiers

A Shopify app that works on one theme is not a tested app — it's a lucky app. The Online Store 2.0 framework introduced section and block architecture that fundamentally changed how apps inject content into storefronts, and many merchants are still running older themes that use a completely different asset structure. Your testing matrix should include at minimum: Dawn (the default OS2 theme), Debut (the classic pre-OS2 theme), and one premium third-party theme such as Prestige or Impulse, both of which use custom liquid logic that frequently conflicts with app scripts.

Beyond themes, Shopify plan tiers affect what API features are available to your app. A feature that works on a Shopify Plus store — such as checkout extensibility via Checkout UI Extensions — may not be available or may behave differently on a Basic Shopify plan. If your app targets a broad merchant audience, you need to test on Basic, Shopify, and Advanced plans, not just the plan tier you personally use. The Shopify Partner Dashboard lets you create development stores on different plan configurations specifically for this purpose.

Document every theme and plan combination you test, along with the results. A simple spreadsheet tracking pass or fail for each core app function across each configuration is enough. This documentation becomes essential when merchants report issues after installation, because it lets you quickly identify whether the problem is a known configuration conflict or something new. It also demonstrates due diligence if you're submitting to the Shopify App Store and reviewers ask about compatibility.

Simulate Real Transaction and Webhook Events

Static testing — clicking through your app's UI — only catches surface-level problems. The real failures happen during webhook events: order creation, payment processing, inventory updates, and fulfillment triggers. Shopify's Admin API sends webhooks for over 80 distinct event types, and your app needs to handle the ones it depends on correctly even when payloads arrive out of order, with missing fields, or at high frequency during flash sales.

Use Shopify's built-in Webhook Tester in the Partner Dashboard to fire test webhook payloads at your app endpoints. Pair this with a tool like ngrok or Cloudflare Tunnel to expose your local server to Shopify's webhook delivery system during development. Test scenarios should include: a customer placing an order with multiple line items, a partial refund on a fulfilled order, an inventory update that pushes a product to zero stock, and a subscription renewal if your app handles recurring payments. Each of these will expose different code paths.

Also test Bogus Gateway transactions using Shopify's test payment provider to simulate successful payments, declined cards, and gateway timeouts. A declined card that leaves an incomplete order in a broken state is one of the most common app-related support tickets merchants receive. Running these simulations before launch means you catch the failure modes before a real customer experiences them, rather than discovering the issue through a one-star review three days after going live.

Validate App Performance Under Load

Performance testing is often skipped entirely because it feels like an enterprise concern. It isn't. A Shopify app that adds 400 milliseconds to your storefront load time will measurably reduce your conversion rate — Google's research consistently shows that even a 100-millisecond delay in page load time can reduce conversions by up to 7 percent. If your app injects scripts, loads external fonts, or makes synchronous API calls on the storefront, you need to measure the performance impact before installation on a live store.

Use Google PageSpeed Insights and WebPageTest to benchmark your storefront speed before and after installing your app. Run tests on both desktop and mobile connections, and specifically test on a 4G throttled connection to simulate real-world conditions for mobile shoppers, who account for over 70 percent of Shopify traffic across most merchant categories. If your app slows the storefront by more than 50 milliseconds on first contentful paint, investigate whether scripts can be loaded asynchronously or deferred until after the main content renders.

For apps that make Admin API calls — such as bulk product updates or automated discount creation — test with realistic data volumes. An API call that processes 50 products in two seconds may time out when processing 5,000 products, hitting Shopify's API rate limits and leaving merchants with incomplete operations. Shopify's REST Admin API allows 40 requests per second on standard plans and 80 on Shopify Plus. If your app approaches these limits during normal operation, you need to implement request queuing before launch, not after your first merchant complaint.

Run a Pre-Submission Checklist Against Shopify's Requirements

If you're preparing a public app submission, Shopify's review team evaluates apps against a detailed set of requirements covering functionality, security, performance, and user experience. Failing the review process means delays of days or weeks, and repeated rejections damage your standing as a developer partner. Use SaltAI Agent for Shopify to help streamline your pre-submission workflow and catch common issues before they reach the review queue.

Your checklist should confirm that your app uses OAuth 2.0 for authentication rather than storing API credentials in plain text, that all data transmitted between your app and Shopify's API uses HTTPS, and that your app correctly handles the mandatory webhooks for GDPR compliance: customers/data_request, customers/redact, and shop/redact. These three webhooks are non-negotiable for any public app, and missing any one of them will result in immediate rejection.

Also verify that your app's user interface follows Shopify Polaris design guidelines. Reviewers check that navigation, typography, and component behaviour match Polaris standards, because a consistent UI across the Admin reduces merchant confusion and support burden. Test your app's UI in both light and dark mode, verify that all error states display helpful messages rather than raw error codes, and confirm that your onboarding flow can be completed in under five minutes by someone encountering your app for the first time.

Conclusion

Testing a Shopify app properly is not a single step — it's a structured process that covers environment setup, cross-theme compatibility, webhook simulation, performance benchmarking, and submission compliance. Each layer of testing catches a different category of failure, and skipping any one of them creates a gap where real merchants experience real problems. The merchants who build reliable, trusted apps in the Shopify ecosystem are the ones who invest in thorough testing before every release, not just the initial launch.

Your key takeaways: always test on a development store that mirrors production, cover multiple themes and plan tiers, simulate real webhook events with realistic data volumes, measure performance impact on storefront speed, and run a compliance checklist before any submission. These steps apply equally whether you're building for your own store or for thousands of merchants.

Try SaltAI Agent for Shopify free at saltai.app — no credit card required.

#saltai-io

SaltAI Team

SaltAI builds focused Shopify apps for food merchants and general merchants. Every app is tested in production at a real food store — including Vanda's Kitchen — before it ships.