Announcing New Website with Improved Navigation

Announcing New Website with Improved Navigation

The more observant of you may have noticed the website has changed. A lot. The trusty old site, originally developed all the way back in 2009, has gone replaced with a shiny new one eight months in gestation.

Seven years isn't a bad run for a website. The old website was built on top of Drupal a well known open source Content Management System (CMS) written in the PHP language.

Drupal 6, the version of Drupal the site was implemented in went EOL in early 2016. Meaning that achieving PCI-DSS would be impossible. We then faced the decision of how to upgrade the website to something more modern. The obvious choice would be to upgrade to a newer version of Drupal. Unfortunately, the upgrade path was not straightforward. Drupal being a content management system requires a plugin to perform the commerce side of the website. The plugin we used is called Ubercart. For a number of reasons we decided not to use the newer versions of Ubercart. The original team behind Ubercart left the project and this didn't leave us with much confidence going forward. The old Ubercart team did create a new plugin called Drupal Commerce written from the ground up to use all of the new features of Drupal 7. Unfortunately, there was no easy or simple mechanism to take a Drupal 6 website and import it into version 7.

Whichever option we decided upon, we needed to start from scratch.

Platform Choices

In a way, it is quite liberating to start from scratch. It opens up a lot of options. Is a content management system the best platform for an e-commerce website? Certainly when we originally decided to use Drupal it seemed like a good idea. But, as things turned out, you begin to realise that it is hard for a system designed for one purpose to be a great platform for something else. Drupal is a great content management system. Making a Drupal website into an e-commerce website involves a lot of compromises.

In the end we decided that an out and out e-commerce platform was the way to go. The software needed to be open source. But, mainly it needed to pass the book test. Can I go onto Amazon (or your book vendor of choice) and find a number of books explaining how the system works? Even just a few months after the launch of Magento 2 there were already a number of books available. The obvious choice was Magento. We took a slight risk with developing the website using the latest, big upgrade of the Magento software, Magento 2. The old Magento software, the 1.X line, was going to be end of life in three years. I didn't think that was long enough especially considering that by the time the site was likely to be live the EOL would be close to two years away.

All told the gamble paid off. Magento 2 is a great e-commerce platform. We've barely scratched the surface of what it can do.

Lessons Learned

One thing I noticed about Magento 2 is the number of tests written by the developers. Magento 2 is a big system, close to two million lines of PHP and around a quarter of a million lines of Javascript. Whilst developing the site I haven't run into too many problems with the Magento 2 software. It is pretty bullet proof.

Unfortunately, the same cannot be said of the various third party (paid for) modules we have used. Every single one has had bugs and I don't mean bugs in some obscure corner case. I mean bugs in core parts of the module that even the most basic testing would have spotted.

Oddly I have found the best third party modules to be the free, open source ones. Like the blog module you are currently reading the output from for instance. Mirasvit have kindly created the module and made it available for free.

I am sure that as Magento 2 matures as a platform the third party modules will improve. Until that happens, make sure you build time into your schedule for the inevitable back and forth bug fixing. The immaturity of third party modules will cost a lot of time.

Whilst this technically has been learnt, we haven't yet implemented a solution. You need your system to be deployable in development and live states at will. Ideally your development stage needs to be debuggable using your PHP IDE or debugger of choice.

Currently the website does not handle pages that don't exist properly. Instead of returning a 404 Not Found HTTP status code, it returns a 503 Service Unavailable status code instead. Whilst this doesn't affect regular visitors very much, it does effect web spiders like Google. Having a development site that can be debugged at will, would make finding the problem much easier. I need to debug the source code of the currently live site, but I also need to debug a vanilla version of the site without any third party modules installed. This would be much easier with a system that can be deployed at will.

Magento 2 is a large system. It will take time to learn. Fortunately, now there are plenty of books available that can give you a helping hand getting started. I would advise you buy as many as you can afford. The Magento documentation is pretty good, but you can't get enough help. I haven't found the help available from various sites like Magento StackExchange to be very useful. Perhaps that will change as Magento 2 becomes more mainstream.

What's in it for me?

The new website has a number of advantages over the old site. The shipping module is much improved, giving us more control over shipping costs. We've used the new control to reduce the shipping costs on most products, particularly to locations outside of the UK.

Magento supports an awful lot of payment providers. We took the opportunity to move over to Braintree. The new payments system integrates with the website seemlessly so that it looks like you are on this website, whereas the payment form is really hosted by Braintree. This greatly reduces the cost of passing PCI-DSS because this website does not ever process the card details itself. That is left to a company that specialises in that one thing. I sleep better at night too as a nice side effect. You can also store your credit card details in a digital vault to make future orders easier too. All without us having to store the card details.

The new website is now mobile friendly. You can now browse from a mobile phone without having to zoom in to read the content.

Conclusion

We hope you enjoy using the new website. We are at the beginning of a post-launch three month plan to make things even better. You can expect better site search, expedited shipping and a faster, more responsive website

If there is something missing from the old site that you need, please let us know.