back home

Woo and the Art Of WordPress e-Commerce Maintenance

Written by Bunkers on March 21, 2017

The Mum's Back site was the latest of a handful of e-commerce sites I have made using WordPress. The majority of the them I created before the days of Woocommerce, so (as you can probably imagine if you've done much e-commerce work with WordPress) were a pretty awful experience.

I noticed I was beginning to do the same things for each site and so I thought I'd document these personal guidelines. It might shortcut someone else to an easier web site build and I've always said that people (including myself still!) underestimate how complex an e-commerce site can be.

Email configuration

This is the big one for me, and encompasses a lot of the advice I'd give to anyone trying to make the experience of shopping on their site stand out. It will also help you from an administration point of view as the store owner.

Email Customisation And Templates

I've not done a full customisation on Mum's Back yet, but although the stock email templates that come with Woocommerce are good, they're not great. I'm not sure if they're supposed to be, but they're not responsive for me and emails that render badly in customer's email clients are going to give a bad impression.

It's one of the areas of configuration that's often overlooked, but it's the main channel of communication with your customer, so it's worth making a good impression.

At least customise the colours and logo to fit with your brand. It's under the emails tab of the Woocommerce settings. There's even a link there to preview the look of the template.

However, if you've got some more time and expertise, then you can copy the email templates to your theme directory and develop them yourself. A number of people are selling sets of improved email templates for Woocommerce, and there are also tool's like Flycart's Woo Email Builder that is like the WordPress theme customiser for Woocommerce emails. A lot of these aren't free, so I'm planning on creating an open source set myself, perhaps with an accompanying tutorial here, so watch this space!

Email Provider

These next two tips probably should have come first as they're as important for me as making sure you're doing backups or have decent hosting.

Setup a third party email provider for sending your WordPress emails. It's ok if a couple of notifications go missing when you're writing a blog, but when someone's order confirmation ends up flagged as spam, and not arriving at all, your sales process breaks down. No matter how good your hosting provider is, sending emails with PHP's mail() command will be flaky. At the least you'll get the 'sent on behalf of' message next to the sender when it's received by your customer.

There's a couple of options here. The first is to use something like WP Mail SMTP and setup email going through your usual mail provider, like Google's GMail servers. This is much better but still prone to problems as Google have strict limits on email sending and your activity could trigger one of their spam rules.

The other, and best in my opinion, option is to use a third party mail provider. My go to service here until recently was Mandrill, but they recently did away with their free account, which I felt was a bit shortsighted considering they are part of MailChimp. I've used SparkPost on a couple of projects and they've been good, but did have one major outage for about a day, causing emails to backup or delivered slowly. My new favourite is MailGun. They have a good free plan as long as you put a credit card on file with them (in case you go over the free limits) and the setup process walks you through a lot of best practices including using a sub-domain as your sending domain. Didn't know that was a good idea? Well that's exactly why you should be using a service like this to handle your email.

Email logger

Although your newly setup email provider will give you logs of the emails that have they've sent for you (another advantage that you can track where something went missing) as well as stats on delivery, open rates and clicks, it's still useful to track the full journey of the email. There's a whole host of WordPress plugins for logging the emails that it sends, but I noticed Mike Jolley (one of the lead developers of Woocommerce) recommend WP Mail Logging in a support thread, so I decided to use that one. It's useful as it gives you full tracking of where the email has been, and it's also got a useful resend feature in case you want to try again!

MailChimp for WordPress

I imagine a number of you will be using MailChimp as your mail provider when sending newsletters. If so, then I'd suggest using the MailChimp for WordPress plugin. The free version does have limitations, but they're not crippling and it includes a Woocommerce integration. It allows you to subscribe customers to your mailing list during checkout with a selection of options like providing a check box, so customers can opt out if they wish.

While I'm on the subject of MailChimp, it's worth doing some customisation of their templates. It's simple to add a logo and change the colours and font to fit your brand better. You can even change all the messaging from the default. Anything like that your customer notices will give them a better experience. Paul Jarvis has an excellent course on setting up MailChimp called Chimp Essentials. It's worth checking out if you want to explore this further.

Use Stripe Not PayPal

This is a bit of personal opinion, but I once again spent hours (perhaps days, I forget!) fighting PayPal. Their system doesn't allow for multiple trading names, and the sandbox didn't work in development. It was all a horrible headache. I finally gave up and switched to Stripe. The integration took no time at all, and everything worked smoothly. I know a lot of people prefer paying using PayPal, but it's just not worth the grief for me at the moment. Stripe insist on you having SSL at checkout (as in one configuration people are entering card numbers on to your web page) but that's good practice anyway. Let's Encrypt will provide you with an SSL certificate for free, so there's no excuse really.

Notice templates

This is a quick note on Woocommerce styling. I found that the default styling of the messages was a bit harsh. Big blocky background colours, which get your attention but clash with a lot of sites' branding. Thankfully there's a quick solution. You can copy the notices folder from plugins/woocommerce/templates to your_theme_directory/woocommerce/notices. The styling is in a main class for each notice type, for example woocommerce-message. I simply change that CSS class and then you can apply your own styling in your theme.

I know I could override the Woocommerce CSS but there's a fair amount of it, and as I've mentioned before, I don't think it's great practice to be overriding CSS like this.

Update on Fonts

A quick update on the font problem that sent me hunting for ways of changing the styling WordPress does on quotes and apostrophes. It turns out the Open Type version of Poppins I was using had the problem, and it wasn't a general problem with the font itself. I simply downloaded a new True Type version from Font Squirrel and my problems went away. It was still a useful exercise to work out ways of changing WordPress' behaviour when formatting content.

Further Customisations

I've got a number of other useful configuration options and tweaks but they all involve getting your hands dirty with theme or plugin code, so I'll leave them for another post.

Have you got any go to plugins or configuration options of Woocommerce that you always do? Let me know!