How to Design an E-commerce Checkout and Payment Flow That Won’t Annoy Your Customers?

One of the fastest ways to annoy any potential customer is to make it as hard as possible to pay for their cart. There’s always a merchant who has made the process easier, and with customers being like water – following the path of least resistance – you can bet your top dollar on them choosing the store with better payment UX if at all possible.

So, how do you go about creating a payment flow that annoys your customers the least? Easy – you just need to keep a few extremely important points in mind when picking and choosing the payment options to offer, working out the happy path and fallback routes for successful and unsuccessful payments, and figuring out how to handle edge-cases.

Let’s take it from the top. Each digital storefront needs to offer some options to pay for a purchase, with the most common options in the Nordics and the Baltics being bank links, buy-now-pay-later (BNPL) financing options, credit cards, and in some rare cases (mostly for B2B) payment via invoices. As you can already see, with having 5-6 major banks, 3-4 more popular BNPL operators, credit cards, and invoices, you’ll already be offering someone up to 10-15 different ways to pay for their cart. Whilst that might sound like a good thing, in reality, it can quickly get overwhelming.

“Decision paralysis is something that needs to be considered at every step of the way when building your e-commerce operations,” said Tanel Särgava, Project Manager at Opus. “Whilst bank links and credit cards are fairly simple – people will use the option for their bank or card provider, any additional option will only make things more difficult. We’ve seen cases where merchants would like to offer 10 different BNPL options, cryptocurrency options, and a handful of more choices. That’s just a horrible experience for a customer who struggles with making decisions.”

Giving too many options, especially novel ones or some that require taking on long-term financial burdens, means that your customers need to research each and every one of them. This, in turn, leads to them taking some time to decide, and with most people having better things to do with their time than to read the fine print in five different contracts, they’re likely to forget all about their cart and buy something else somewhere else instead.

In addition to the burden placed on your customers, you’ll also need to consider the burden you place on yourself and your business. Every payment option requires a contract to be signed, an integration to be set up, and usually some fee on every transaction to be paid. If there is no one-stop-shop solution out there that offers every payment option you’ll want to offer, you’ll need to sign up with a handful of different service providers and have your development team set up and maintain each of them individually.

“Don’t forget that most large-scale stores operate in several markets, meaning different options need to be set up for different sites. While Magento is awesome at offering this functionality – running several storefronts in different languages and designs from one back-end – someone still has to set things up,” Särgava noted. “If you want to offer more-or-less comparable options in each market, the number of different integrations will quickly skyrocket.”

With that in mind, he recommends optimizing for the 99%, not the 1%: offer the options that the vast majority of your customers want to use, and if there are 1-2 people who want something really particular, think extremely thoroughly if implementing this option is actually worth it.

You need information. And fast.

There was a time where each store had to have a little banner at checkout saying “Please remember to click “Return to Merchant” after you’ve finished the transaction” when paying through a bank link. The reasoning behind that was simple: if a customer did not click that button, the merchant had no idea if the payment was successful or not, as the bank itself did not offer an API or any other system to instantly access this data.

This meant that when buying something time-critical, for example, movie tickets for a screening starting in ten minutes, and the button was not pressed, the ticket vendor could not send you the tickets in time. As someone had to manually check which payments had to be made, the order could only be fulfilled after these checks were done.

To combat these issues, bank link providers started to send this data to merchants automatically, meaning that while the “Return to merchant” button is still there, the store or vendor knows whether or not the payment was successful even before anyone can click the return button. However, if this is not taken into account during the development of the store, or the approach is just outdated, it can lead to some major headaches.

“Your store will need to be able to understand duplicate happy paths and know what to do in these instances. This means that whilst your store already knows that the payment had been made, it cannot act shocked when a customer returns to the site through the return link to also tell them that they had now paid,” explained the project manager. “The worst thing you can do is to give your customer some sort of an error message in that case because they will automatically think that the payment didn’t go through.”

Something else that has to be kept in mind is related to BNPL operators. Whilst usually they greenlight the financing request immediately, there are cases where it might take a couple of hours or even a couple of days. In that case, your store will need to have a system in place that checks the status of the request at regular intervals to then notify the customer that their request for financing has been approved.

“There have been cases where this has been intended to be carried out manually, but the workflow hasn’t been set up to handle extremely long wait times,” said Särgava. “A sales rep has been instructed to check the status once the request pops up for the first time, but if it takes 2-3 days to be approved, the next shift has no idea they were supposed to check something, even though the decision has been made by the operator and the client is waiting.”

This means that a proper system with APIs and other magic needs to be set up to constantly check for updates on requests. If not, your customers will think that you’ve forgotten about them and will ask for the same deal somewhere else.

Your chosen platform plays a key part in all of this

Whilst all of the above might sound like a lot of work, it actually isn’t. At least not if your chosen e-commerce platform is robust enough to handle high volumes of traffic, proper integrations with different payment providers, and advanced reporting to make sure that everything is running as it should.

“We’ve seen time and again that people often struggle with off-the-shelf solutions. While they promise to offer plugins and other fancy features, they quickly fall apart if you throw edge-cases, advanced functionality, or scalability at them,” noted Särgava. “That’s why we’re using Magento 2 to build kick-ass e-commerce solutions. It’s robust, highly integrable, offers the flexibility you need, and is scalable – as mentioned above, you can quite easily run several different storefronts from the same back-end, whilst offering varying options for payments, shipping, and design in each case.”

With Opus being the home for the top Magento developers in Estonia, we’d love to help you out. If you feel that your digital storefront could use an upgrade, both in terms of its aesthetic, as well as its functionality, then give us a nudge. We know what makes a modern web store tick, what drives revenue, and how to achieve the kind of scalability and resilience that blows your competitors out of the water.

At Opus, we have a team of Magento developers who are regarded among the best in the region, so if you feel that Magento is something for you, then get in touch. We’d love to help you.

Want to work with us? We have a nice comfy chair and all of the other perks you could wish for all lined up!