A while ago I started developing my own e-commerce platform in response to some of the requests my clients had for highly customised, business-specific functionality, and in some cases both multi-lingual, multi-tax regime, multi-currency export oriented sites. I had also grown frustrated with the commonly used platforms for various reasons:
- Magento: expensive (other than the functionality limited community edition), requires high-powered hosting (preferably a dedicated server), time intensive to modify the core functionality.
- WooCommerce: In combo with Wordpress it is architecturally less than optimal which makes it difficult and time consuming, hence expensive, to deliver custom solutions that ultimately are likely to have poor maintainability. The plug-in based architecture, and that the application code must reside in the web root represents a potential security risk. The admin user interface could be better...
- Shopify: being subscription based it becomes very expensive, specially if relying on premium plugins to achieve the required functionality, not worth spending money on custom solutions as if your business outgrows it you cannot take that work with you, and is a poor choice for export-oriented businesses (for example it cannot handle VAT).
Out of my clients requirements came a flexible, modular, efficient platform that can run on low-powered shared hosts, and that allows me to deliver on every requirement my clients might have no matter how unusual or complex. It is in use with a number of businesses on both sides of the Atlantic, in many cases with some very bespoke functionality, particularly with respect to the business admin tools.
This latest instance for Cornwall-based Cornico Coffee is not particularly bespoke but it does serve to illustrate the performance benefits. Running on a basic shared hosting package it achieves the following Google Lighthouse scores:
As an aside I have not been making e-commerce jobs into progressive web apps (service workers and so on) since a connection is always required in order to check-out, but I am considering making sites browsable off-line with a locally stored cart. Always keen to hear opinions on that.
The project was undertaken in conjunction with Design Room Cornwall; the team there being responsible for branding and graphic design, and myself for all of the code. The site serves as both informational portfolio and e-commerce site as Cornico generally sell to the trade but do also like to support retail customers too.
The high contrast, straightforward look, and underlying semantically meaningful markup, is designed with accessibility first and foremost in mind; it would be an invalid assumption to say that only individuals without any form of visual impairment are interested in coffee. It is also reasonable to state that any site designed with accessibility principles foremost in mind, will also deliver a good user experience for everyone else. Complexity in design can look cool but can also serve as a barrier when the whole point of a site is tell people what they want to know, and ultimately.. buy product. Of course there is far more to good, accessible design than passing an automated test, but once in the habit of making informed code decisions it isn't hard.
Intended for the UK market only, this site has a fairly standard suite of admin tools such as batch invoice and shipping label printing, invoice export to Sage Accounts (Xero also supported), stock management either in isolation or via Sage, customer contact email tracking for traceability, Click & Drop export and so on.
There will be a full case study shortly detailing the underlying e-commerce platform in depth and highlighting some of the features and modules that have been delivered to a variety of businesses.