magento clutch
magento clutch
magento clutch

How to Create Custom Payment Method in Magento 2

Sep 22, 2021 0

Ecommerce and various payment methods are two inseparable things because the online sales industry itself cannot do without this tool for interacting with customers. This is not surprising since 36% of the population uses e-wallets, while the rest use various debit or credit cards to shop online. If you are reading these lines, then you definitely want to know how to create a multi-store in Magento with multiple payment methods or upgrade your existing store with additional custom gateways. In this article, we will dive into the topic of Magento payment module development and show you how to add a custom payment option to your Magento 2 store. So, without further ado, let’s get started.

What Is the Best Payment Method for a Website?

Despite the fact that many entrepreneurs think that only one payment method is sufficient, this is a misconception. Buyers are always looking for simplicity and convenience no matter what site they visit, and options for paying are one of such convenience items. Buyers always want to use their favorite payment method on any website. And in order to please more buyers, the introduction of additional options is a must.

Every year, the popularity of certain payment gateways is growing, and users no longer need to enter their payment details every time. It is enough for users to log into the payment system itself and continue to make purchases without unnecessary hassle. This becomes especially convenient on mobile phones, from which online purchases are increasingly made. Adding several payment systems allows you to justify the expectation of buyers in the convenience of purchases and not to scare them away with unnecessary operations during the checkout process.

However, which payment option should you choose? It is vital to pick the one that suits your needs before you create online payment method using Magento. We can point out the five most popular payment options that are often implemented in eCommerce websites:

  1. Paypal. This payment gateway is one of the leaders in the market and currently serves over 254 million customers. It is for this reason that you should not neglect the introduction of Paypal into your Magento store. Paypal claims that order conversion is 88% higher with their payment method than with any other.
  2. Amazon Pay. The online commerce giant also has its own payment system that helps you make purchases quickly and easily. The introduction of Amazon Pay is a great step because Amazon itself has 310 million active accounts. You will greatly simplify the lives of these customers who can visit your site.
  3. Google Pay. Do not forget about the most popular search engine in the world and the company that supports it. Google also has its own system, and according to Google, hundreds of millions of users already have card details stored in their Google accounts. This makes the implementation of this method an excellent strategic decision if you want to provide the most pleasant user experience.
  4. American Express. Although not as popular as the above, this system has one of the highest satisfaction rates in the industry. The main audience of this payment system is people with upper-middle and high incomes. And skipping such an audience is hardly a good decision.
  5. Apple Pay. For users of iOS devices, this payment gateway is the only one, and you will delight your iOS clients if you implement this system into your Magento website. In addition, only in the United States, the user base of iOS devices occupies 64% of all users of mobile devices.

Magento Payment Module Development Tips 

Before we dive into the process of custom Magento payment module development, it’s also worth talking about. Is it worth it? And in our humble opinion – yes, absolutely.

When you want to create eCommerce website using Magento and introduce as wide a variety of payment options as possible, you will get undeniable benefits that help businesses grow and move forward. Here is some of them:

  • Easier retention of existing customer base. Having a wide range of payment methods, it is many times easier to retain your regular customers. However, even though they may have their favorite method to pay, this does not mean that their choice is permanent. Anything can happen, and today the client wants to pay for the purchase differently. And you and your store should be ready for this.
  • Creating a new customer base. Expanding the arsenals of payment gateways has a positive effect on attracting a new audience. For example, millennials prefer electronic payments via wallets significantly more than the older generation. In addition, the fact that you show your desire to keep up with the times and accept modern technologies in your business plays to attract an audience.
  • Reduced costs. Some methods have quite high fees per transaction. You can reduce your overall costs by introducing additional payment methods with less or no fees. Thanks to this, the inflow of profits will increase, which will allow you to cover commissions in more expensive ways.
  • Increased cash flow. A distinctive feature of different payment methods is that the calculation is made for a different amount of time and if you stick to only one specific payment gateway, you will not be able to see immediately the receipt of money to your account. And what is the solution to this problem? That’s right, adding more payment methods. A plurality of payment methods allows you to organize a constant and uninterrupted flow of funds that will help your business both stay afloat and develop.

So let’s now talk about the process of introducing a payment option to your store. We will consider this process using the example of the Stripe payment system, which is also a fairly popular solution.


So, before starting Magento payment module development, it is worth taking some small preparatory steps. The first thing to notice is that there are no code pools in Magento 2. that’s why our developer starts by finding the app/code folder and creates a separate namespace folder inside it.

Next, our developer enables the Stripe integration libraries through the Composer in order to move the Stripe file library to the vendor/stripe folder.

Main Implementation Process

After the developer has completed the entire preparatory process, It’s time to move on and create a payment module in Magento, namely, start implementing the Stripe payment method.

First, the developer carefully and correctly set the administrator settings so that after the introduction of the payment method, most of the technical operations were processed automatically. To do this, he opens the etc/adminhtml/system.xml file in which only three important lines will be needed to work, namely:

  • api_key
  • min_order_total
  • max_order_total

Since the Magento platform handles operations using abstract classes, our developer extends the standard folder\Magento\Payment\Model\Method\Cc. In addition, the developer passes the Stripe library to the class along with the standard configuration scheme (while using protected variables). The developer adds a piece of code to the class so that in the future it will be possible to add dependencies and conduct testing.

The next step of payment module development in Magento is implementing a rather important aspect, namely the capture (). This feature is the most important part of any payment method, as it is the security cornerstone by which payments are protected once it is authorized. The developer adds a piece of code after which all transactions will be protected from interception.

All payment systems in Magento 2 that can be connected receive all information through the payment object, and Stripe is no exception. The credit card data goes straight to the Stripes API, which then starts processing this data. When the processing is successful, this transaction goes to the transaction list of the Magento platform.

IMPORTANT NOTE: When there is a task add payment module in Magento the developer works with a transaction identifier since it is extremely important that this identifier is equal to the transaction identifier that the payment gateway received since it will still be used in the future.

Next, the developer adds a piece of code that is nothing more than one of the most important functions of any online payment, namely a refund. In this code, the developer implements the function from the administrator of the Magento store.

In simple terms, the developer makes it so that the previously received transaction ID goes directly to the Stripe API, where the refund request is further processed. In order for this chain of operations to occur and requests to be processed correctly, the developer creates a function that automatically generates exceptions from the catch block, which allows Magento to understand that an error has occurred.

When there is a task to create online payment method using Magento 2, it’s worth remembering that the platform’s checkout process was built from scratch using JavaScript. It is now a full-fledged client application that interacts with the platform through a specific API. As a result, our developer adds two more JavaScript files below JavaScript via XML. All of this is extremely important for the checkout process to work as it should. The developer needs a certain piece of code to create the interface configuration for the checkout process.

Wrapping Up

And at this point, the process of adding a Magento custom payment module can be considered complete. We tried to create the simplest possible implementation pipeline in order to exclude the addition of various file templates, controllers, blocks, and other elements that can be confusing. However, if you’re not exactly tech-savvy, we have a solution.

Here at SaM eCommerce we will be happy to help you implement a custom payment method through our Magento store development services. We have many years of experience working with businesses of various sizes and domains, and during this time, we have created more than a hundred Magento stores of varying complexity. We know how to create payment module in Magento for any store. Our team of experts is ready to provide their technical expertise in order to modernize your business.

All you need to do is drop us a line, and our representative will contact you to discuss your project in detail and provide detailed advice.

Business Development Manager at SaM Solutions

    Leave a comment

    * - required fields. Your email will not be published