Making the Most of Mobile Shopping: Where Should You Invest?

Making the Most of Mobile Shopping: Where Should You Invest?

2018 has confirmed that the rise of mobile shopping really is unstoppable. With consumers getting more and more comfortable shopping from their phones, it’s no exaggeration to say this channel is changing the face of eCommerce.

Mobile commerce more than doubled [since 2010], from 7% to 17%—and will likely soon surpass PC-based buying.

(PwC, Consumer Insights Survey 2018)

Catering to mobile shoppers is now a must for every retail business out there. But it’s not as simple as spend, spend, spend—achieving and tracking ROI from mobile requires a more sophisticated approach.

One Piece Of The Puzzle

It’s tough to understate the sheer scale of the growth opportunity that mobile eCommerce brings to the table. But it’s also just one piece of the puzzle: consumers don’t shop in silos, so retailers shouldn’t operate in them.

Simply pumping investment into mobile isn’t going to cut it.

Because while mobile usage is rising, conversions on the channel remain unimpressive—peaking at around half the conversion rate of desktop sessions in the UK last year (Smart Insights).

Some of that is down to users enjoying a better shopping experience on the more established desktop websites, sure. But there’s another story here…

“Improvements in mobile experiences over the past years haven’t impacted these figures, showing that smartphones are more popular as a device for browsing products, while desktop is preferred for transacting.”

*(Smart Insights)

“The reality is that online shoppers don’t expect to stick to mobile -or any single channel for their whole shopping experience”

That creates a headache for retailers expecting a simple ROI from mobile. Achieving and tracking the real returns from your mobile strategy means having the data systems and the operational set up in place to follow consumers across all the different channels they use.

Ultimately the rise of mobile makes providing a seamless customer experience across channels more important than ever. The retailers who invest in that ‘omnichannel’ approach to eCommerce are coming out on top in the new world of mobile shopping.

But of course, that doesn’t mean your business can’t make rapid improvements in your mobile operations…

1. Make Your Menus Simple

When even 32% of Digital Natives find mobile websites ‘aren’t easy to use’ (PwC), a simple and elegant user experience has to be your first priority.

Start with your menu displays.

Where a desktop user has the luxury of hovering to find out more, mobile users have to commit to a click—so make it crystal clear where each click will take them.

It’s why we recommend going through each item on your mobile menu, and asking “If I had never visited this site before, where would I expect to be taken if I clicked this option?”.

You can also cut clutter with the type of menu you display, explains our own Stephanie Fenton (SEO and Social Media Consultant).

“A great way to shorten menus without losing options is to add in a concertina menu so that the user can narrow down and get to the most relevant page.”

2. Minimise User Input

Filling out long forms on a mobile device is a serious chore, and it’s a huge cause of frustration among mobile shoppers. Make sure your website does the hard work, not your customers.

The fastest way to do that is integrating digital wallets and payment services. Thanks to the likes of PayPal and Apple Pay, consumers can dodge irritating data entry and hand over their cash in an instant.

“Making things as clear as possible for the user is at the heart of mobile optimisation” 

But sometimes there’s just no getting around it. Users will eventually need to fill in a form. 

In this case, add all the shortcuts you can—look to drop down menus rather than manual entry, real-time error messages that prevent them submitting an incorrect form, and always provide the correct input method, like a number pad for a required phone number. 

Making things as clear as possible for the user is at the heart of mobile optimisation. Just don’t get carried away…

3. Keep Your Options Open

There’s a common misconception in mobile design—that mobile shoppers are always in a manic rush to convert, and they need the minimum possible navigation options.

But like we saw, mobile shoppers aren’t always in a manic rush. Sometimes they’re more likely to be looking for a little research and inspiration from the sofa. (Take a look at your user behaviour in Google Analytics and find out).

Do make your mobile site clean and elegant, but don’t strip out the entire navigation! 

Keep the links to research-friendly content like blog posts, featured articles and product help pages so mobile shoppers have a reason to linger. It may not send mobile conversion rates through the roof, but it can make a massive difference to sales across channels.

Think ‘One Experience’

Mobile is critical to eCommerce success in 2018. Get it right with your optimisation, and your business is primed to enjoy huge lifts in revenue from the explosion in mobile shopping.

But just like any other channel, mobile is just that—one channel. It needs to be seen within the bigger picture of your operations and the customer experience you’re offering. Ultimately, tracking and achieving your true mobile ROI means taking an omnichannel approach.

Michael Simcoe
30 Jul 2018

Migrating To Kubernetes

Migrating To Kubernetes

Quarter 4 2016 saw us embark on the first stage of our migration to the cloud, starting with planning out the migration of our eCommerce websites to the Google Cloud Platform (GCP) Container Engine.

Firstly, a bit of background to our previous infrastructure: Each client website had at least two compute instances, of varying spec depending on the levels of traffic we were expecting, which were added to a load balancer utilising a static IP. Each compute instance was sat on the GCP Compute Engine.

Our websites don’t connect to a persistence layer, nor do they connect directly with a back-end platform. Instead, they all utilise Venditan Commerce API (VC-API) to obtain all the data it requires to display the website to the end-user. This abstraction removes an element of the complexity of this migration and also allows us to focus primarily on the website itself and control the migration implementation by switching DNS.

The previous infrastructure made it difficult to scale with demand

The previous infrastructure made it difficult to scale with demand, as adding another instance would require several steps before you could add it to the load balancer.

Using the GCP Container Engine removes this headache, as you effectively instruct the Container Engine to manage the instances for you instead by creating a container cluster. A container cluster is a managed group of uniform VM instances for running Kubernetes. GCP Container Engine allows you to select how powerful you want the machine to be, which will directly impact the resources available to each deployment. It’s fine to be fairly conservative with the machine specification at this point as you can always increase the number of nodes in your cluster as required.

GCP Container Engine recently released the ability to have your clusters automatically upgrade and repair. We have disabled both of these options to provide more control over when the upgrades happen. The upgrades themselves are easy to do, but we have noticed a few minutes of intermittent downtime during the upgrade process so we like to do it during the early hours (GMT) to reduce the impact the upgrade has on our clients.

Within the container cluster there are node pools, that you can easily find within the GCP console. A new feature can also be seen here which is ‘Autoscaling’, but currently, this is considered to be still in beta and does not yet provide the optimum number of nodes so we have it turned off for the time being until the bugs are ironed out.

Cluster setup is dependent on your requirements, so the spec of your cluster and its nodes will differ dependent on your clients needs and what you are hosting (traffic, type of application, etc.). Clusters are useless without services and deployments, which allow you to create external services such as a web service, or internal services such as memcache that are used by your other services and deployments. We created services for ‘web’, Redis and memcache.

Since the move to Kubernetes, we have not had any issues with any of the memcache services

The memcache service is a step forward for us, as with our previous infrastructure we had one instance in Compute Engine running memcache to service all of our websites. With the move to Kubernetes, each website has its own memcache service, improving resilience and delivering a robust solution for our clients. Since the move to Kubernetes, we have not had any issues with any of the memcache services, whereas on the previous infrastructure it was a regular occurrence (mainly running out of memory).

One usual area of concern is the deployment process, but with Kubernetes we have seen a big improvement. We create images that are pushed to a GCP bucket and then used by the containers. The image is the environment for each website including all apache configuration and SSL certification, and the application itself. This has meant that the deployment and rollback processes are a case of swapping out the image tag version that is currently being used by the containers.

Kubernetes will then fan down the old deployments that used the old image and fan up the new deployments that use the new image. This removes the potential for users to see an issue and instead acts as a seamless switch between two versions of the application you’re deploying.

Although Kubernetes has given us the opportunity to improve our infrastructure, it had numerous dependencies on other technology to allow us to actually do the migration.

We utilise docker heavily to build the server environment based on alpine packages, setting up the apache/nginx web service and configuration files that have numerous environment settings that our front-end applications use. The use of docker also provides a stable, production-like environment in which our development team can work on in all scenarios but on their local machines.

With the migration to Kubernetes we upgraded our front-end application to PHP 7, and have seen marginal performance improvements as a result. Add nginx into the mix and you start to make a bigger performance improvement collectively. With nginx we have seen average server connection time go up a little, average page download time half but no difference in the average server response time. From this you can determine that the end user will see a benefit and with every upgrade and every change in technology we put the end user first, to ensure we are delivering the most performant solution possible.

As a whole, we’ve definitely had a successful migration to Kubernetes. The process has delivered a better service to our clients and as developers we have more trust in the infrastructure. Developments that have occurred since the migration have been easier, such as the migration from apache to nginx and moving towards HTTP2 and HTTPS across all of our websites. We’re only six months into this journey with Kubernetes, and as it continues to develop we are expecting to be delivering an even better solution to our clients.

Download our free e-book
Download our free e-book

Michael Simcoe
31st March 2017

Meet Yaf… What?

Meet Yaf… What?

At Venditan, we like to keep up with the latest technology to assist us to build fantastic websites for our clients. In January of last year, the stable 2.2.9 release Yaf (Yet Another Framework) was released and we just had to have a play. Yaf is the first PHP MVC framework to be written in C and built as a PHP extension. The framework was written by laruence, who is also a PHP development team member leading APC development. It is considered the fastest and lowest resource consuming PHP framework around at the moment, and has been well tested in production applications in a number of large organisations.

As of now, we have three websites in production that are implemented using Yaf, and the performance is incredible, not that this is unexpected since it’s written in C. The benchmarks completed on Yaf are also overwhelming, with one result showing that Yaf is able to make 5331 requests per second, opposed to 634 requests per second for Zend, and 2300 requests per second for CodeIgniter.

Caught your attention? I hope so, but where to start? Yaf is a PECL extension and as such is easy to install. The documentation available is fairly limited, with the most detailed documentation written in Chinese which proves a little difficult to understand using Google Translate. We were fortunate enough to find some example PHP applications on Github which we were able to review to help us write our first sample application. I found the following flowchart helped me understand Yaf better and allowed me to see Yaf’s support for Bootstrap and its plug-in mechanism.

Over the past year, we have written a Yaf application that uses our SprintSDK to communicate with the SprintEcommerce API. We have extended on the Yaf Route Interface, allowing us to manage the routing based on responses from the API. Adding to the router stack within the Bootstrap is very simple and documented well within the PHP Docs.

In future posts we will look at the benchmarks in greater detail and how we overcame issues such as multiple template sets, but I hope this quick look at Yaf has inspired you to take a closer look.

Mike Simcoe
2nd Apr 2015