(For more resources on OpenCart, see here.)
Shopping cart system
The shopping cart is special software which allows customers to add / delete products to a basket from a store catalogue and then complete the order. The shopping cart also automatically updates the total amount which the customer will pay according to product additions or deletions on the basket.
OpenCart provides a built-in shopping cart system which provides all such functionality. So, you don't need to install or buy separate software for the shopping cart.
A merchant account is a special account type which differs from a usual bank account. Its sole purpose is to accept credit card payments. Opening a merchant account requires making a contract with the credit card network providers. Authorized card payments on the store are transferred to the merchant account. Then, as a merchant we can transfer the amount from merchant account to bank account (checking account).
Since opening a merchant account can be a tiresome process for most businesses and individuals, there are various online businesses which can provide this functionality.
A payment gateway is an online analogue of a physical credit card processing terminal that we can locate in retail shops. Its function is to process credit card information and return the results back to the store system.
You can imagine the payment gateway as an element in the middle of an online store and credit card network. The software part of this service is included in OpenCart but we will have to use one of the payment gateway services.
Understanding online credit card processing
The following diagram shows the standard credit card processing flowchart in detail. Note that it is not essential to know every detail in steps shown in a red background color. These parts are executed on behalf of us by the payment system which we will use, so it is isolated both from the store and customer. For example, PayPal is such a system, which we will learn about now in detail.
Let's explain the flowchart step by step to clearly understand the whole process:
- A customer successfully enters into the checkout page after filling the shopping cart with the products. Then, he/she enters the credit card information and clicks on the Pay button.
- Now, the store checkout page sends these details along with the total amount to the payment gateway securely.
- The payment gateway starts a series of processes. First of all, the information is passed to the merchant's bank processor where the merchant account was opened before.
- The information is then sent to the credit card network by this processor. Visa and MasterCard are two of the most popular credit card networks.
- The credit card network processes the validity of the credit card and sends the information to the customer's credit card issuer bank.
- As a result, the bank rejects or approves the transaction and sends the information back to the credit card network. Through the same routing in reverse, the payment information is finally submitted back to the online store with a special code. All this is done in a few seconds and the information flow starting from the payment gateway is isolated from both the customer and merchant. It means that we don't have to deal with what's going on after sending information to the payment gateway. As a merchant, we only need the result of the transaction.
After the information is processed by credit card network during Step 6; the transaction funds are transferred to the merchant account by the credit card network as shown in Step a. Then, the merchant can transfer the funds from the merchant account to the usual checking bank account automatically or manually, as shown in Step b.
OpenCart payment methods
The current OpenCart version supports many established payment systems, including PayPal services, Authorize.net, Moneybookers, 2Checkout, and so on, as well as basic payment options such as Cash on Delivery, Bank Transfer, Check/money order, etc.
We can also get more payment gateway modules on the OpenCart extensions section by searching in Payment Methods.
We will now briefly learn the most widely used methods and their differences and similarities to each other.
PayPal is one of the most popular and easiest to use systems for accepting credit cards for an online store. PayPal has two major products to be used in OpenCart through built-in modules:
- PayPal Website Payment Standard
- PayPal Website Payment Pro
Both of these payment methods provide both payment gateway and merchant account functionality. Let's understand the details of each now.
PayPal Website Payment Standard
It is the easiest method to implement accepting credit card payments on an online store. For merchants, a simple bank account and a PayPal account is enough to take payments. There are no monthly fees or setup costs charged by PayPal. The only cost is a fixed small percentage taken by PayPal for each transaction. So, you should consider this on price valuations of items in the store.
Here is the link to learn about the latest commission rates per transaction:
When the customer clicks on the checkout button on OpenCart, he/she will be redirected to the PayPal site to continue with the payment.
As you can see from the following sample screenshot, a customer can provide credit card information instantly or log in to his/her PayPal account to pay from the balance in the PayPal account:
In the next step, after the final review, the user clicks on the Pay Now button.
Notice that PayPal automatically localizes the total amount according to the PayPal owner's account currency. In this case, the price is calculated according to Dollar – Euro exchange rates.
After the payment, the PayPal screen shows the result of the payment. The screen doesn't return to the merchant store automatically. There is a button for it: Return to Merchant.
Finally, the website user is informed about the result of the purchase in the OpenCart store.
The main advantage of PayPal Website Payment Standard is that it is easy to implement; many online people are familiar with using it. We can state one minor disadvantage. Some people may abandon the purchase since the payment gateway would leave the store temporarily to complete the transaction on the PayPal website.
PayPal Website Payment Pro
This is the paid PayPal solution for an online store as a payment gateway and merchant account. The biggest difference from PayPal Website Payment Standard is that customers do not leave the website for credit card processing. The credit card information is completely processed in the online store as it is the popular method of all established e-commerce websites. Even the customers will not know about the processor of the cards. Unless we put a PayPal logo ourselves, this information is well encapsulated.
Using this method also only requires a bank account and PayPal account for the merchant. PayPal charges a monthly fee and a one-time setup fee for this service. The individual transactions are also commissioned by PayPal.
This is a very professional way of processing credit cards online for a store but it can have a negative effect on some customers. Some customers can require seeing some indication of trust from the store before making a purchase. So, depending the on store owner's choice, it would be wise to put a remark and logo of PayPal stating that «Credit card is processed by PayPal safely and securely»
For a beginner OpenCart administrator who wants to use PayPal for the online store, it is recommended to get experience with the free Standard payment option and then upgrade to the Pro option.
We can get more information on PayPal Website Payment Pro service at:
At time of writing this book, PayPal only charges a fixed monthly fee ($30) and commissions on each transaction. There are no other setup costs or hidden charges.
PayFlow Pro payment gateway
If we already have a merchant account, we don't need to pay extra for it by using PayPal Standard or PayPal Pro. PayFlow Pro is cheaper than other PayPal services and allows us to accept credit card payments to an existing merchant account.
Unfortunately, OpenCart currently does not support it as a built-in module but there are both free and paid modules. You can get them from the OpenCart official contributions page at:
(For more resources on OpenCart, see here.)
Time for action – configuring PayPal Website Payment Standard
In this section, we will learn how to configure PayPal Website Payment Standard on OpenCart.
- Let's open the Extensions | Payments menu in the administration panel.
- We will find the PayPal line from the available payment method listings and click on the Install button.
- The next step is to Edit PayPal settings.
- We provide our PayPal E-Mail address. Note that the payments will be made to this email address. So, be very careful to enter it correctly. We choose Test Mode as No.
We could select Test Mode as Yes. If we do this, the online store will send the transactions on the checkout page to virtual test accounts, which we set on the PayPal developer system beforehand. Actually, we do not need to set Test Mode to Yes. There is an easy way to test the system with real transactions, as we will learn about soon.
We set Transaction Method to Sale. As a common practice, we set Order Status to Pending. Since fraud payments are common, we will have a chance to look at the details of the payment and the order, before announcing to the customer that his or her order is complete.
Set Geo Zone to All Zones and Status to Enabled. Finally, let's click on the Save button.
What just happened?
We have just finished enabling and setting up PayPal Standard Payment method. From now on, the customers can use PayPal or their credit cards to pay for the products online.
Have a go hero – testing PayPal Website Payment Standard method
Now, it is your turn to the test just-enabled PayPal Website Payment Standard method. All you need is to use another PayPal account with some balance on it and set some product prices as 0.01. This way, we can make tests on real PayPal transactions with small amounts. Register a customer and buy several products with this PayPal account on our store.
Time for action – configuring PayPal Website Payment Pro
In this section, we will learn how to configure PayPal Website Payment Pro on OpenCart.
We already have a Website Payment Pro paid account to use this functionality. The details are at this link: https://merchant.paypal.com/us/cgibin/?&cmd=_render-content&content_ID=merchant/wp_pro.
- First of all, we visit http://www.paypal.com and log in to the system. After this, let's click on the Profile link.
- Let's click on the API Access menu.
- We will click on the Request API Credentials link.
- We will need to select the Request API signature option. Let's click on the Agree and Submit button.
- The next page will list API Username, API Password, and Signature. Let's take a note of these values and click on the Done button to complete.
- Let's open the Extensions | Payments menu in the administration panel.
- Let's click on the Install link near the PayPal Website Payment Pro option.
- We will edit the payment configuration details page. Let's provide the API Username, API Password, and API Signature values that we have retrieved from PayPal website in previous steps. We have the option to make operations on the Test server. Let's choose No for Test Mode to enable it on a real payment gateway. Let's choose Transaction Mode as Sale. We choose Order Status as Pending and Status as Enabled. This payment option will be available for All Zones according to current Geo Zone selection. Let's click on the Save button to complete the operation.
What just happened?
We have just finished enabling and setting the PayPal Website Payment Pro method. From now on, the customers can use their credit cards to pay for the products online without leaving the store for the payment process. All operations are done in store without any visible connection to PayPal.
Readers who want to use PayPal Website Payments Pro UK version instead can go to the following link to open their business accounts and get API values: https://www.paypal-business.co.uk/process-onlinepayments-with-paypal/index.htm
Have a go hero – testing PayPal Website Payment Pro method
Now it is your turn to test just the enabled PayPal Website Payment Pro method. Make several test purchases with small 0.01 amounts on products. Be sure that all operations are completed in store without leaving to PayPal.
This is a paid payment gateway service with similar functionality to PayPal Website Payment Pro. It means that customers can provide their credit card information without leaving the website and without any sign of authorize.net processing the information. So, this one is a paid service with an included payment gateway service and merchant account.
Visit and compare the prices against the similar PayPal Website Payment Pro at www.authorize.net.
We can also get more payment gateway modules on the OpenCart extensions section by searching in Payment Methods. http://www.opencart.com/index.php?route=extension/extension
We can easily achieve being able to accept bank transfer payments by activating a module in OpenCart. The order of the customer is held in pending status until the bank payment is confirmed.
Time for action – accepting bank transfer on orders
In this section, we will learn how to enable the bank transfer module and use it.
- Let's open the administration panel and click on the Install button near the Bank Transfer line.
- Let's click on the Edit button.
- We should provide our bank account information. The sample Bank Transfer Instructions are shown below. Set Order Status as Pending and Status as Enabled. Click on the Save button.
We could choose a specific Geo Zone to enable bank transfer solely for this zone. In our example, it is available to all customers worldwide. Notice that we can not have the same type but only separate payment options for different zones at the same time. It would require a third party module, which you can request or look for at the OpenCart extensions section. http://www.opencart.com/index.php?route=extension/extension
- As you can see from the following screenshot, the Bank Transfer option will also be enabled on the checkout page as a payment method for the customer:
- The following screenshot shows how the Bank Transfer Instructions we have provided will be shown before the customer confirms the order:
- The following screenshot shows the order details on the administration panel. Notice that we had assigned Status as Pending by default:
What just happened?
We have learned how to activate a bank transfer for our store. Then, we checked how it would look on checkout pages and in the order details screen in the administration panel.
Cheque / money order
With this payment option, we provide make cheque payable to information to the customer. The customer sends the cheque / money order to the store's default address by using this name. After we clear the check, order items are sent to the customer.
Cash on delivery
By using this option, the customer pays the money on delivery to the courier. We can use this option if we handle shipping with our own couriers. Some online stores also give the ability to customer to reject the order at the time of delivery. A common usage is with clothes and shoe stores. Customer tries the apparel and pays only for courier service if he/she doesn't like the product or it doesn't suit.
Have a go hero – activating cheque / money order and cash on delivery options
Now, it is your turn to enable check/money order and cash on delivery options. They are very similar to the bank transfer module and need similar fields.
In this article, we have seen the essentials of online credit card processing and how a purchase is achieved as a result of complicated checks. Hopefully, we won't need to enter the details of credit card networks or merchant accounts. We have seen that payment gateways (with merchant account) like PayPal, Authorize.net can easily provide such solutions. We have seen how to enable PayPal and other basic payment methods for OpenCart.
- Upgrading OpenCart [Article]