The Deadly Sins of OpenCart: poor core feature set
This is the second part of our series on problems with OpenCart.
In the first part, I mostly covered the complex upgrade process and the fact that OpenCart store owners never know if their stores will make it through the next upgrade without falling apart.
Today, I would like to talk a bit more about the core feature set of OpenCart – and why I think it's lacking.
Again – not writing this to throw mud at OpenCart. Consider this a piece of constructive criticism from someone who's been with OpenCart for the past 5+ years. Improving OpenCart is in the best interest of us all OpenCart people.
How good are OpenCart features?
In short – OpenCart has a decent set of features for a free shopping cart solution, but it could be much, much better.
What are some of the most popular OpenCart extensions?
- SEO extensions
- one page checkout extensions
- speed and performance extensions
- marketing extensions
What does it mean? It means that OpenCart, out of the box:
- is not great for search engines
- has a poor checkout process
- offers lackluster marketing options
- could be improved in terms of performance
Is it really so? Let's find out.
SEO in OpenCart
By default, OpenCart comes with all SEO disabled. This means all of your page URLs look like this:
http://example.com/index.php?route=product/product&product_id=123
Not great for SEO.
Fortunately, enabling OpenCart SEO fixes some of the URLs, so you can get your products to look like this instead:
Better!
Still, it is not at all perfect.
First, OpenCart SEO doesn't prettify all URLs, so you still get lots of index.php?route= URLs in your store.
This is not always a huge problem in terms of SEO – for internal account pages, for example, which aren't indexed – but it still doesn't look good from your customer's perspective. And customer experience is king.
Second, this is not all there is to SEO. Even with the default SEO enabled, OpenCart still lacks in terms of:
- on-page SEO, including microdata on product pages – and this is immensely important for an online store!
- options for SEO URL customization – no way to change the default values, no way to add a product prefix and so on
- automatic meta generation – having to manually create SEO titles and descriptions is quite a pain
- convenient tools for SEO management – mass title and description editor, for example.
None of this is too complex and could be part of OpenCart core.
Since it's not, MultiMerch has its own SEO system to replace OpenCart SEO altogether. Still, regular OpenCart store owners have to rely on third party extensions.
For more insights into optimizing your stores for search engines, I definitely recommend you check out the Moz SEO Library, which has a ton of helpful guides and tutorials.
OpenCart checkout process
OpenCart has a six step checkout process. It is also technically a one-page checkout, even though it's split into multiple steps.
Still, I personally am not a huge fan of it.
Apparently many other OpenCart users agree with me, since Quick / One-Page checkouts are one of the top selling features of many prominent OpenCart themes – and there are also a number of popular OpenCart plugins.
Results of various checkout usability studies don't specifically indicate that one page checkout is the one solution to cart abandonment. In some cases, multi-page checkout have been performing better.
What results do indicate is that optimized checkout performs way better than a non-optimized one – and OpenCart's checkout can definitely be improved.
The checkout flow is the one crucial part of an online store that you can't afford not to make perfect and an optimized checkout has to be a core feature of every respectable shopping cart solution.
Since it's not part of OpenCart core, this is up to theme and plugin developers to deal with – with mixed results. Again, OpenCart store owners have to rely on third party solutions here.
I strongly believe that development of core cart features should not be a responsibility of theme developers at all.
Marketing tools in OpenCart
There are lots of marketing possibilities an online store owner can use to promote their products, drive sales and monetize their stores and marketplaces:
- newsletter campaigns
- discount coupons
- abandoned cart reminders
- special prices
- wishlist reminders
- upsales, downsales and cross-sales
- customer reviews
- flash sales and promotions
- downloadable offers and giveaways
- blog posts for content marketing
- remarketing ads
- integrations with social media platforms
Basically, lots of 'em!
OpenCart has a few of these, but unfortunately the implementation is not up to standards:
- product reviews can be left by any visitor and customers don't have a convenient way to review products through their accounts
- abandoned carts are gone forever
- newsletter campaigns are possible, but are a pain to use efficiently
- discount coupons can be created manually, but can't be tracker or tied to campaigns – there's also no way of automatically creating coupons based on customer performance
- there are no flash sales and promotions with countdowns
- no decent system for up-, down- and cross-sales, while related products have to be defined manually
- few options for content marketing – there's no way to publish blog posts and creating custom pages can only be done through the information module, which isn't too convenient
And so on.
Generally, OpenCart has a set of tools for sales and marketing, but they're lacking and all over the place.
Discount campaigns are managed separately from newsletter campaigns, product reviews aren't tied to customer incentives, marketing tracking is a separate system and social media integrations, affiliates and reward points could be better.
Obviously, I don't think a shopping cart has to do all of these things out of the box, but if these features are present – they should be better thought out.
OpenCart performance
Generally, OpenCart isn't too bad when it comes to performance. It does suffer from poor SQL queries and uses only basic file caching, but overall OpenCart is not a memory hog.
Still, more could be done for performance in OpenCart:
- asset minfication and compression
- CDN integrations for asset delivery
- additional caching options, such as OPC, memcache and DB cache
- optimization of existing queries
Instead, the new major version of OpenCart – OpenCart 3 – has introduced the Twig templating engine, which seems to negatively affect performance for some users.
These are just the main pain points. There are many other OpenCart features which could be improved – or removed from core altogether – which I won't cover here in detail. I also haven't mentioned the interface design here – will make it a separate blog post.
The point is – no matter how many features there are in a shopping cart system, there is a core set of features that has to be implemented first and foremost – and kept up to date with the latest developments in the e-commerce industry.
Convenient checkout, search engine optimization, sales and marketing tools and great performance – all of these are a must to build a successful online store.
Unfortunately, OpenCart 3 has addressed none of these after having been in development for over a year now – while making life more complex for everyone with the move to embrace Twig.
This is one more reason why we don't plan to switch to OpenCart 3 in the near future – the points from my earlier blog post this summer still stand.
Have the same feeling about OpenCart 3, a pain in the ass for OpenCart developers. The things we need, you already mentioned it, they don’t work on those issues. We have some good extensions for it, but some things must be in the core of OpenCart, yes I agree. Maybe have also a paid version with some good extensions integrated into OpenCart.
It would be beter to work on a good update system also like WordPress has, a challange, yes it is with ocmod and vqmod, but it is good to have. The new market system is maybe a start for it.
Still I love OpenCart to work with because of the way you can modified it, but it is also a challange to keep everything working together, multiple extensions.
Exactly! We're actually implementing our own modification system in MultiMerch which will be similar to what WP has: https://multimerch.com/blog/code-cleanup-hooks-multimerch-8-13-beta/
Once it's ready and the ocmod xml mess is cleaned up, the next step will be to implement a simple automatic update system based on the new modification system. It's nothing really too complex when you don't have a ton of xmls lying around.
Then perhaps we can backport it to OpenCart ;)
Sounds great, i will take a look at the hook system. I saw already vqmod hooks you place in code and after that replace the hook with Multimerch code. Also using you own libraries to have clean controllers is good for supporting multiple OpenCart versions. So now I am curious how you handle and use the attach function to attach it on every place in forinstance a controller, before an product array is build.
I hoop you can convince OpenCart to use such a system, they have there own way of doing thinks.
Yep, the HTML hooks via vQmod was something we implemented last year to make theme integration simpler. We'll partially replace them by the new hook system in one of the next updates to make things easier :)