Testing Shopify Applications

Margo Oliinyk
Newsoft Official
Published in
11 min readMar 7, 2024

Among the range of constantly developing e-commerce platforms, Shopify stands out as a titan that has revolutionized the way companies and online shopping interact. From its launch to its current status as a famous figure in the e-commerce industry, Shopify’s journey is marked by innovation, adaptability, and deep customer understanding. In this article, we’ll take a glance at Shopify from the perspective of a QA Engineer and discuss the peculiarities of Shopify testing.

Shopify as an e-commerce platform

Shopify is a leading e-commerce platform that empowers individuals and companies to create online stores and sell goods and services. It offers a variety of tools and features to help sellers establish and manage their online businesses, including customizable website templates, secure payment processing, inventory management, order tracking, and marketing tools. Catering to businesses of all sizes, from small independent merchants to large corporations, Shopify provides a range of pricing plans to suit different needs and budgets. With its user-friendly interface and extensive app store, Shopify enables sellers to easily set up their online stores and add new functionalities.

Playing a significant role in democratizing the e-commerce industry, Shopify makes online selling accessible to anyone with a product or service to offer, facilitating the success of countless online businesses.

The Importance of Shopify Apps
Plugins, also known as programs or apps, are crucial components for improving the functionality and productivity of Shopify stores. These expansions offer a wide range of functions and opportunities tailored to satisfy customer needs. Here’s an overview of popular plugins available on Shopify:

Marketing and sales: These plugins help engage new visitors, generate new clients, and increase sales. For example, email marketing tools such as Klaviyo and Omnisend, social media integration to showcase user-generated content such as Socialphotos and Yotpo, and apps to boost upsells and cross-sells such as Bold Upsell and Frequently Bought Together.

Storage and order management: To effectively manage your inventory, track orders, and optimize the fulfillment process, you can use plugins such as Oberlo for dropshipping, Inventory Planner for stock forecasting, and Order Printer for creating custom invoices.

Customer support and engagement: To enhance customer satisfaction and retention, various plugins facilitate communication and support. For example, Gorgias and Tidio offer tools for managing live chats and chatbots, while Judge.me and Loox provide platforms for managing reviews. Additionally, loyalty programs like Smile and LoyaltyLion help in fostering customer loyalty.

Analytics: Enhance your store’s visibility and track key performance indicators (KPIs) with plugins designed for SEO optimization, such as SEO Manager and Plug in SEO. Additionally, utilize analytical solutions like Google Analytics and Lucky Orange for in-depth data analysis and conversion rate optimization.

Website settings: Personalize the appearance of your Shopify store with plugins offering advanced customization options. For example, consider using Shogun and GemPages to build, customize, and optimize high-converting pages, or Product Customizer and Infinity Options for creating completely customized products.

Payment and verification: Optimize the payment process with various payment options and secure verification methods. Popular choices include PayPal, Shopify Payments, and Klarna for the “Buy now, pay later” option.

Delivery: Simplify delivery logistics and automate execution with plugins such as ShipStation for order management, Easyship for global decision-making, and Shippo for label printing and tracking.

These are just a few examples of the wide range of plugins available on Shopify. With thousands of options to choose from, sellers can tailor their store’s functionality to meet specific business requirements and objectives. This flexibility allows for the creation of seamless and successful e-commerce experiences for all clients. Now, let’s delve into the testing of these applications.

Setting up the store for testing

To open a Shopify store, you’ll need to select a price plan. Initially, you’ll be offered a 14-day free trial period. During this time, you can assess whether the platform meets your needs. Once the free trial ends, you’ll have the option to choose and pay for a price plan to continue setting up your store.

To begin testing apps, you’ll need to create an account on Shopify Partners. While there are no specific plans for developers, it’s important to indicate that you’re using the platform for development and testing purposes. A Shopify Partners account grants you access to all available stores. Upon registration, you can create your first test store.

When creating your store, it’s important to mention that you’ll be using it for development purposes.

After filling in all the necessary data, you’ll receive the ready store on the Shopify admin panel. When creating the store, you have the option to use test data. By selecting this option, the store will be populated with test products, orders, and collections, significantly simplifying the testing process. Alternatively, I can recommend installing an app called Simple Sample Data, which allows you to generate a larger amount of test data for your store. This eliminates the need to manually create each product and can be easily found on the Shopify app store.

Now, let’s navigate to the store settings to prepare everything for testing and creating the first orders. You can find the settings option in the bottom left corner.

Once you access the settings, you’ll encounter a wide range of options that you can adjust for your store. The first tab typically contains general settings such as company details, industry, address, contact information, and currency. While I won’t delve into the specifics of each individual setting, it’s important to focus on key areas that may cause issues when opening the store.

I recommend exploring the capabilities of the settings, as each application may have its own peculiarities. For instance, if you’re testing a delivery app, you might find the Shipping and Delivery settings useful. It’s possible that the store is multinational, so it can be set up for different countries and regions in the Markets tab. Similarly, tax settings are crucial when testing applications related to payments and orders, so it’s essential not to overlook Taxes and Duties settings.

To enable tax assessment, firstly, you need to choose the region, such as the USA, and then select the specific states for taxation. The next step involves adding global settings, after which taxes will be applied to the order. For further details, see the documentation here.

To seamlessly test an order, navigate to the Payments section and set up Shopify Payments. Towards the end of the page, you’ll find a Test Mode toggle switch.

Test mode is a very handy feature when testing payments. It allows you to simulate the payment process to see how clients pay for their orders and how the system processes them. While Test mode is enabled, you cannot use real credit cards to complete payments.

To finish your payment while testing the app, you can use cards that Shopify offers:

Visa 4242424242424242

Mastercard 5555555555554444

American Express 378282246310005

Another important aspect of testing orders and payments is examining unsuccessful transactions. This is crucial for testing order-related applications. It’s essential to audit systems for such transactions. Below is a list of special cards that can be used for testing:

  • Notification of card rejection: 4000000000000002
  • Invalid card number: 4242424242424241
  • Disputed transaction: 4000000000000259
  • Insufficient funds: 4000008260003178

The last card is particularly useful for applications that do not immediately debit funds, such as Shopify, but instead, block funds and then release them after a certain period of time. For more details on test cards, refer to the Stripe Docs.

When placing a test order, it’s crucial to double-check the entire ordering process, including processing, stock management, delivery, email notifications, and taxes, to ensure everything is functioning correctly. Test stores are capable of processing unlimited amounts of test orders, making it ideal for thorough testing.

Besides the regular order payment at checkout, there are plugins that enable delayed purchases. In the Shopify App Store, there are applications that offer customers flexible payment options, allowing them to defer paying the full amount upfront. These services are often referred to as “buy now, pay later” options. Such apps can assist sellers in implementing Deferred Purchase Price (DPP) functions in their stores, ensuring secure transactions. Deferred Purchase Price (DPP) is a process wherein the customer agrees to pay for the product or services later, typically upon arrival.

In these cases, it’s important to differentiate between goods that require immediate payment and those that can be paid for later in a single order. Therefore, mixed cart testing, fulfillment, and the “Pay Now” function are integral components of such apps. To verify the “Pay Now” function, you should receive an email from Shopify confirming the order, which is sent immediately after completing the transaction. By reviewing this email, you can view all the order details and pay for any items that haven’t been paid for previously. Neglecting to do so could disrupt the processing of delayed payments or the functionality of the app itself.

Sellers often use other plugins that might have conflicts with your app. It would be beneficial to know what other plugins are installed for the store. Such plugins might be installed to ensure the refunds. One of the most used ones is Loop Returns — a convenient way to track and process the refund. You can install it for the test store and create different order variations, mixed cart included, to see the behavior of the orders with delayed payment.

Now, let’s move on to installing the application for testing. Typically, apps can be easily found and installed through the Shopify App Store. However, in the development environment, we’re not dealing with certified applications available in production. Instead, we’re working within a dev environment solely for testing purposes. These applications cannot be found through the search function. Therefore, we need to return to our account in Shopify Partners and navigate to the Apps section to access and install the necessary applications for testing.

All application options in different environments will be available in the Apps section of Shopify Partners. From there, we select the necessary application and proceed to its page. In the Test your app tab, we choose the store we want to install the application on and then begin the installation process.

Some apps utilize AutomaticApps, with a limit of no more than 5 per store. This restriction can potentially lead to conflicts between these apps. However, this issue was addressed in the January 2024 release, which enabled the use of multiple discounts through a single discount function. Additionally, certain discount extensions come with their own logs, which can be examined when errors occur. These logs can be added to bug reports or utilized directly to identify the root cause of the error. To access these logs, go to your Shopify Partners account, select the relevant app, and then access the Extensions section.

Once all processes are completed, we can start testing the selected application. This involves testing various functionalities such as placing orders, processing payments, customization processes, and more.

Online stores

To access the testing functionality for clients, you need to navigate to the “Online Store” section within the Shopify Admin. Here, you can preview how your store appears to customers. Within this menu, you have the option to add and create your own themes for online stores.

It’s common for sellers to install customized themes to catch the customer’s attention, which may not be available in the general themes library. Therefore, I recommend installing necessary customized seller themes by adding them to your library. This helps minimize the number of bugs in the early stages of testing and ensures a smoother testing process.

To access more settings for your store page, select Customize.

Many applications have their own buttons, text styles, and pop-up notifications that are specific to product or collections pages. Within this menu, you can add, move, and adjust these elements to fit your store’s layout.

It’s vital to test the application buttons alongside those that are part of the theme or native to Shopify to ensure there are no conflicts or issues.

In the online store, there’s an option to change the currency, so it should be taken into account when creating orders. Sometimes applications don’t correctly process the currency that differs from the one in the store’s settings. It can result in losing the client’s money or your app.

After customizing the online store environment, it’s crucial to conduct testing from the customer’s point of view. This involves testing in various scenarios, such as placing orders and using different payment and delivery methods, to ensure that all functionality works correctly from the end-user perspective.

Recommendations

Using test stores provided by Shopify during development is crucial for thoroughly testing program functionality, customer interaction, and integration with other Shopify functions.

Additional information can be accessed by adding .json to the URL in the Shopify admin, such as on the order page, to view all product data.

Testing in different environments, including mobile browsers and various operating systems, ensures that the program functions correctly across platforms.

Integration testing with other Shopify functions or third-party developer programs verifies seamless operation.

Security testing is essential to mitigate risks for both sellers and customers.

Performance testing ensures the program can handle a large volume of transactions and users without crashes or slowdowns.

Usability testing guarantees the app is intuitive and easy-to-use for users.

Regression testing is necessary to ensure new updates or features do not negatively impact existing functionality.

Gathering feedback from sellers after product launch helps identify areas for improvement and ensures a positive experience for sellers and customers alike.

Following these recommendations ensures thorough testing of Shopify apps and prepares them for successful utilization, ultimately resulting in a positive experience for sellers and their clients.

--

--