Languages and frameworks | hold

WooCommerce is an open-source WordPress plugin that provides eCommerce functionalities and allows to build online shops on WordPress. According to builtwith.com around 23% of all eCommerce websites are built with WooCommerce, making it the most popular platform in this area.

Starting your new online eCommerce business on WooCommerce may seem like a perfect option. It’s a free, popular, open-source solution built on top of WordPress, meaning there are a lot of plugins—both free and premium—that can be used to extend the shop functionality or change the appearance.

Our experience shows that it's not so easy though. There are some issues that we noticed after developing a shop on WooCommerce.

Plugins Plugins per se are not a problem, but the quality of the plugins available in the WordPress marketplace is very uneven, so before installing a plugin its source code should always be inspected by a developer. Another issue is that in most cases, you will need to install many plugins to simply match the functionality of other eCommerce solutions: cache, translations, custom fields, or subscriptions. We even needed to install a separate plugin to make the shop legal in Germany.

Performance This is related to the previous point. Before you realize, you often end up with so many plugins that they start to significantly slow down your shop. It doesn’t help that WooCommerce uses a WordPress database structure, which definitely wasn’t designed with eCommerce in mind. For example, products are stored in the same table as posts—they are just another post type.

Updates and conflicts WooCommerce and its plugins, like any other software, require regular updates. The updates need to be done by a developer and each update has to be tested in a closed environment first, to make sure it won’t break anything. It often takes an unexpectedly long amount of time, especially when there are conflicts between plugins. Sometimes these conflicts are breaking the whole website and are time-consuming to debug and fix. This significantly increases maintenance costs.

Themes and (the lack of) extensibility WooCommerce themes are just PHP files, there is no templating language—like Twig—used in the WordPress themes. This makes extending the theme templates very cumbersome. Let’s say that the requirement is to add one new link on the “My account” page navigation. You need to create a new file, manually copy the contents of the existing template and add the new link. If you are lucky, and the theme files are well split, you may need to do that for a file called e.g. account-links.php. If the theme creators didn’t care that much about splitting the files, you may as well need to override the whole account page. It also means that when updating the theme, you will need to manually go through all overwritten pages and check if something has changed in the original template in the new release, which again, increases the maintenance cost.

At Kiwee, we are currently putting WooCommerce on hold, and we recommend to consider alternative eCommerce solutions when starting a new project.


Languages and frameworks