One of the most important things before launching your site is to make sure that the payments work properly. The math is simple: malfunctioning payment methods + failing customer financial transfers = no sales and no customers.

So, it’s the top priority of QA engineers and/or ecommerce managers who are responsible for project delivery to double check and test to ensure that all settings are properly configured, and there are no obstacles preventing successful payment.

In this article, we’ll take a closer look at the default payment methods in Magento, and explain how each of these methods should be manually tested, so you can launch your Magento store stress free, and without a hitch.

The Basics

Magento is capable of providing a wide range of payment methods. Some of them are super easy to configure, while others require a bit more effort. But what unites all of them? Each option has to be tested before you’re in the clear.

Since payment methods are a key part of the checkout process, here are two main points you should pay attention to, regardless of the payment method you choose:

  • Successfully completed checkout: Make sure that the information that’s displayed in the final “Thank you” page, test orders, letters, and everything else following the checkout process works as intended and is free of errors.
  • Testing: The particular payment method you are testing is functioning properly.

Testing Magento checkout procedures is something we’ve discussed in one of our previous articles. Now let us guide you through the process of how each particular payment method should be checked.

Tip

Before you start testing each of these payment methods, make sure that you have a final list of the methods you’d like to use after the site is launched. This will help you to avoid unnecessary testing activities.

Let’s start with a review of the methods which are less complicated and don’t require any extra tools (payment cards, third-party website registration etc.)

Check/Money order

Method principle: The order that is placed by the consumer will be paid via bank cheque or “money order” (purchased at a bank), which can be cashed by a merchant afterwards. Billing documents can be handed over to the merchant after product delivery, as well as be sent via email as an advanced payment.

Magento versions: Magento 1x, Magento 2x.

How to test: Simply enable this method in the Magento Admin Area, select it as a payment method in the Payment Information step, and confirm an order on the the website or when placing an order in the Admin Area.

Once you placed the order, there are several things that you have to check:

      1. Check/Money order is indicated as a payment option when viewing the order in the Admin Area (Sales => Orders => Edit Order => Payment Information). 
        Payment Information
      2. Check/Money order is indicated as a payment in Order Confirmation Email.

      3. If you’d like to enable this payment method for specific countries only (System => Configuration => Sales => Payment Method) it is important to verify here. Make sure that when you enter the Billing Address for the purchase, a country option becomes available for which check/money should be enabled. On the contrary, this payment option should not be listed as available in the Payment Information page for countries which you haven’t designated.

      4. Verify in the Admin Panel (System => Configuration => Sales => Payment Method) that the Minimum Order Total/Maximum Order Total is specified and consequently, check/money order is not available as a payment method if the order total is lower/higher than this range. Note that the Order Total has to include taxes and shipping fee.

      5. The address where the check/money order should be sent is specified. The address should be displayed during checkout in the Payment Information step when a user selects check/money order as a payment method.

Check/Money order

 

The same address must be displayed in the Admin Area, in My Account (My Account => View Order) and in the Order Confirmation.

Payment Method

Purchase Order

Method principle: When purchasing via purchase order, a customer is provided with a purchase order to buy a product. When placing an order one can simply enter the purchase order number in the payment information section of the checkout page. This number is not validated as is, so feel free to use figures, letters, blank spaces, special characters etc.

Magento versions: Magento 1, Magento 2.

How to test: The purchase order method is quite easy to enable in the Admin Area. There is no need to register it at the payment gateway website, or have credit cards available in order to test it. It’s a readily available option at the checkout page on the website, and in placing an order in the Admin Area.

            1. To enable this method go to System => Configuration where you also have to specify the number of available countries that you’d like to allow to pay via purchase order, the minimum order total/maximum order total etc. 

            2. Once Purchase Order has been selected as a payment method in the checkout/admin area, the field for inputting the purchase order number must be displayed on the store’s frontend. The field is obligatory (notice the presence of the asterisk). 

               Purchase Order
               

            3. Once an order is placed, check whether the purchase order is properly indicated as a payment method in the Admin Area, in the My Account section (My Account => View Order), and in the Order Confirmation Email. It is also of paramount importance to make sure that the purchase order number is displayed in those sections to keep important reference material handy. Payment Information

Zero Subtotal Checkout

Method principle: This payment method is available for orders where the order total is equal to zero. For instance, when purchasing zero value products (Downloadable, Virtual, etc), or when orders total a 100% discount after coupons have been applied to non-taxable products, and where free shipping is available.

Magento versions: Magento 1, Magento 2.

How to test: The most important condition for displaying a zero subtotal at checkout requires the subtotal to be equal to zero (Subtotal = 0).

            1. Make sure that if the subtotal is zero (Subtotal = 0), this method is displayed at checkout and is made available in the Admin area when the order is created.

            2. When the order amount is zero, a “No Payment Information Required” option will appear in the Payment Information step (this is a default statement, and if necessary it can be changed in the Admin Area in method settings, under the Title field). No Payment Information Required

            3. This option should be available only for the countries specified in the Admin Area (if they were selected in payment settings).

            4. Once an order is placed, ensure that the information available in the Admin area, the order confirmation email, and in the My Account sections, display the No Payment Information Required heading.

Bank Transfer Payment, Cash On Delivery Payment

These payment methods can be reasonably combined into one section as they are pretty simple and have no pitfalls.

Method principle: For the Bank Transfer Payment method, a customer forwards payment from their bank account into the merchant’s account before or after placing an order.

Cash On Delivery is a common cash payment that is made upon receipt of merchandise.

Magento versions: Magento 1, Magento 2.

How to test: Follow the common steps above which are typical in testing all payment methods to ensure that it is properly displayed at checkout and in the Admin area when an order is placed, availability for all/specific countries, minimum order total/maximum order total, displaying of the method name in orders in the Admin area, in the order confirmation email, and in My Account.

Credit Card (saved)

Credit Card (saved) is one of the payment methods which is less simple compared to the previous ones but don’t go running just yet, we’ll make testing these options as easy as we can.

Method principle: Using a debit or credit card for payment upon checkout is easily one of the most common forms of payment these days. Card data is entered directly into the payment information step and can even be saved in the My Account area.

Magento versions: Magento 1.

How to test: In order to test this payment method on dev-sites, use test cards available here.

For an expiration date, simply indicate any date in the future. If a CVV number is required, simply enter any three figures. Now that this part is covered, here are a few things to watch for:

            1. When selecting the credit card option at checkout, the card payment data-entry form will appear and pay close attention to the form layout. In most cases, issues will occur while filling out the expiration date field.

            2. Check required fields (necessity of CVV number is enabled/disabled in Admin area).

            3. Check that the available card types at checkout match the types selected in the Admin area.

            4. Once the CVV number is enabled, make sure that the “What is this?” tooltip appears and check its location, especially on mobile devices. Card Verification

            5. If My Account contains a card payment information section, check whether authorized user’s card data is saved in My Account once the first order has been placed. This will also determine whether it will automatically appear at checkout, so check for this too.

            6.  Check whether the card data (except CVV number) is properly displayed in a few other areas as well: the order section under the Admin area, when viewing the order in the My Account section, and in the order confirmation email.

Authorize.Net, Authorize.Net Direct Post

Method principle: Payment is carried out via payment card through Authorize.Net system.

Magento versions: Magento 1, Magento 2.

How to test: In order to test this payment method, first you have to configure an Authorize.Net account. Test mode is applied for dev-sites.

            1. In general, the Authorize.Net payment method is tested in a similar way to Credit Cards.

            2. It’s worth noting that card data is not always entered directly during checkout. In some cases, you may be redirected to the payment gateway page after you hit the Place Order button on the checkout page in the final step.

            3. If any Issues occur when you are redirected to the third-party payment gateway page (failed to redirect, redirect errors, failed order after successful payment, etc.) they should be discussed with developers.These kinds of bugs are not always related to our store.
            4. Check the displaying of payment information for the order in the Admin area, on the order confirmation email, and on the order page in the My Account section.

            5. Note: Successful “Test mode” payments do not necessarily mean that payments made on the main/live payment account will also be successful. You should always verify this payment method using a valid payment card. The details on how payments should be made will be explained in more detail later in this article.

Braintree

Method principle: Payment via Braintree e-payment payment cards is available as an out-of-the-box option in Magento 2, instead of the Credit Card method in Magento 1, as the latter one was treated as less than reliable. Braintree payments are available in Magento 1 as well, however it requires extra module installation.

Magento versions: Magento 2.

How to test: You have to follow all the steps we have specified earlier in the Authorize.Net, Authorize.Net Direct Post section. All of them are applicable for testing payments via the Braintree system as well.

PayPal

Method principle: Order payment is carried out via PayPal e-payment system.

Magento versions: Magento 1, Magento 2.

How to test: In order to test PayPal on dev-sites, apply PayPal developer mode. A customer can handle payments directly through his/her Paypal account as well as by means of payment card without registration in the system. PayPal developer mode is more than suitable in this case as a user is simultaneously provided with two test accounts – one for a merchant and another one for a customer. This becomes extra convenient when configuring and testing this payment method.

            1. All the steps considered in the Authorize.Net, Authorize.Net Direct Post section above are applicable for testing payments via the PayPal system as well.

            2. If after clicking the Place Order button, the PayPal system is not directly available, read the error report carefully. The system is very strict in the required data that needs to be entered by the customer upon checkout. (Especially when it comes to addresses.) Even if you test the site in developer mode, the addresses should not be random sets of symbols. Zip codes must match the country and state selected (if the state is required), and do not shorten the names of cities (for example, NY instead of New York). You can easily find valid addresses with real zip-codes, names of cities, etc in Google.

            3. Note: The cart is to be checked immediately upon returning to the site. If the payment was successful and the order was placed, the cart must be empty. In case the payment was unsuccessful, products will still be found in the cart.

Lifehacks, must-haves and other helpful features applied for production site testing

So, the final hour has struck and it’s high time to check “live” payments carried out on the live project. Or another scenario: The project was finished long ago but suddenly customers beat an alarm that it is not possible to buy a product on the site. How to check order placement and payment gateway functionality and not go bankrupt at the same time? Relax, because there’s good news.

If we want to test the checkout process, it does not actually matter which of the payment methods we select.

You can use one of the methods that does not require an immediate payment and money withdrawal from the account. For example, check/money order. If you do not use this method on the site, you can enable it for testing purposes. But keep in mind that you should do it quickly, because it may happen that it will be displayed for the customers and they could use it.

Note: Keep in mind, the site is live, and the users who can place orders alongside testing should not use this payment method. For this reason, operating skills and internet bandwidth play an important role: add a product to the cart, enable check/money order in Admin area, place an order (it can easily be done by an authorized user who has addresses in the address book, and it saves time when completing these steps at checkout), then disable check/money order. Quick and simple, easy as pie.

Another way is to enable check/money order for a specific country. Ukraine for example, is a great option to select, or simply use any other country you do not operate in. Indicate this country in the billing information checkout step and test. However, don’t forget to disable check/money order after order placement.

In order to test payment methods with the use of bank cards, you have to have an account with some money available on it. Bear in mind to follow some rules:

            1. Create a test product with the cost of 0.01.

            2. Enable Visibility Search so that it will be searchable only through targeted search on the site.

            3. In the taxable goods section choose None.

            4. Enable Free Shipping. You can do it in the case of check/money order, for one specific country, indicating it in the address section in shipping information step (shippings frequently depend on zip-code, so google a valid zip-code for this country).

            5. Once the order has been placed, disable free shipping and remove the test product.

Or you may follow another scenario:

            1. Add any product available on the site to the cart.

            2. Create a Shopping Cart Price Rule which will be applied for testing.

            3. In the Actions section, specify discount amount which will be applied as a coupon to the cart. This will decrease the product price to 0.01 and apply Free shipping.

            4. Apply the coupon in the cart at checkout.

            5. Note: Check total of the cart and at checkout thoroughly before order confirmation in order to avoid unexpected taxes, specific shipping conditions, etc.

            6. Once the order has been placed, the amount of the product in-stock decreases. In order to return the product to your inventory cancel the order in the Admin area after testing.

P. S. Lifehack for QA engineers. There are cases when it is practically impossible to carry out “live” payment due to a range of reasons we cannot control. For instance, the payments can only be made by specific country residents (the USA, the European Union, etc).In cases like that, inform the project manager that it is impossible to place a test order; there is nothing wrong if that part is checked by a customer.

In short, testing these added features is a crucial process, especially since they’re aimed at improving customer interactions so check, check, and check again! With the help of the Magento Web Development team, the added payment options and services that you can apply to your store are sure to gain customer loyalty and keep them from going elsewhere. Aaaand, good luck with sales!