Creating an own Webshop - Part 2”
A few options for webshop software
Let’s assume only software that at least partially meets my requirements get shortlisted. Below, I would like to present a few possible ecommerce solutions.
Shopify
Shopify is an all-inclusive package solution for online retail. Shopify Inc. is headquartered in Canada and handles its European business from Ireland. The Legal sections found on the website, as well as the complexity of the information presented on the topic of Data Protection, lead me to suspect that Shopify is a multinational corporation – and not just a provider of online shops.
But back to the topic.
The domain and hosting are included in the price with Shopify, and you can create your own shop rapidly and without any programming knowledge in a browser window by selecting a theme, and setting a few parameters. Shopify has extensive documentation and offers training and all sorts of other services for its subscribers.
But where’s the fun in that? After all, I run a tech blog and am not a businessman, literally. A bit of programming is definitely something I enjoy. Furthermore, as an open source fan, I don’t particularly like the corporate stance (just look at their modern website, equipped with auto-playing videos and optimized for marketing purposes). The configurability is mediocre at best, and, as with most other solutions, I have to do the optimization for search engine results myself. Regarding data protection and security, they maintain the usual compliance and state-of-the-art communication; so I can’t look behind it and have to assume that they protect their customers well, also in their own interest.
Shopify describes itself as a closed-source SaaS platform.
Therefore, I’m removing this platform from my list of preferred web shop solutions because I don’t want to become unnecessarily dependent on the well-being of third parties. With Shopify, it’s not me who has control over subscription costs or “my” share of the cloud, but Shopify. It’s not me who can determine how many transactions are included in the “plan,” but Shopify. It’s not my customers who remain in control of their data, but Shopify or a third-party company they have commissioned to process it.
Wordpress / WooCommerce
I only know Wordpress as a juggernaut. The jack of all trades, capable of everything you could possibly want thanks to an overwhelming mass of plugins, extensions, and features. And much more you don’t need.
But it’s open source, free, and, according to its own statements, used by many, many shop operators. Let’s take a look at the most well-known e-commerce extension for Wordpress: WooCommerce.
I immediately found countless guides on setting up a WooCommerce store (for example, from GeeksForGeeks or Themeisle), so I’ll refrain from providing my own guide.
After skimming through a few tutorials, I’ll summarize:
- A WooCommerce store is easy to set up and configure using a wizard.
- There are many themes available, and easy-to-integrate store designs offer a suitable look for every taste.
- It helps to already have a WordPress site and some basic knowledge of domains, DNS, and hosting.
- Many payment service providers and some shipping providers are preconfigured.
- There are numerous YouTube tutorial videos on the topic, and detailed documentation is also available.
- Countless plugins allow you to optimize your store for even very specialized areas and purposes.
- However, this variety of options can be offset by the fact that choosing the “best solution” can be difficult, and optimizing the site for speed and search engines can become complex.
All in all, WooCommerce strikes me as a balanced mix of “I want to quickly put together something useful” and “I want to be able to configure and modify everything.”
Snipcart
I would consider Snipcart a “shopping plugin” for any website. Even static websites that can essentially only display a product catalog become a fully-fledged eCommerce solution with Snipcart. The core element here is the shopping cart, which is used to process the purchase.
The interface is the website’s HTML
markup. Snipcart is integrated as a JavaScript
blob and referenced via HTML
. The design and appearance are handled via cascading style sheets. In my case, I could use the existing “tech stack” consisting of a static Jekyll site with a CD pipeline in Gitea on a Caddyserver instance for the shop as well, and with minimal adjustments, conjure a seamless look for the blog and shop. Sounds great, right?
Snipcart is developed by a Canadian company in Quebec. It describes itself as a “Shopping Cart Platform”. An account is required for installation, and you must enter your shopping domain in the Snipcart web frontend, similar to Google Search Console or Google Analytics, to receive a so-called API key. Only with this key will the JavaScript blob integrate correctly.
And this brings us to the first major problem: Snipcart restricts my freedom.
<link rel="preconnect" href="<https://app.snipcart.com>" />
<link rel="preconnect" href="<https://cdn.snipcart.com>" />
This shows me that Snipcart would like to keep the data on its server. I have to use their content delivery network to handle the order process and integrate it with mine. So, it’s by no means the case that all connections remain with me and I “buy” the JS code from Snipcart and run it in the customer’s browser or a database solution behind it on my server.
So, if full autonomy and control over your own site isn’t a priority, Snipcart can be a very elegant e-commerce solution. This is especially worthwhile for existing sites. However, for me, it’s out of the question.
OpenCart
OpenCart offers a PHP-based shop module free of charge and open source. It can be booked as “Software as a Service” through third-party providers or downloaded via Github and deployed on your own server.
Installation and administration are handled via web interface and, in my opinion, are straightforward. You can also find a few images on DockerHub that you can get started with right away.
OpenCart is fully customizable to your needs. Templated themes can also be integrated. Out of curiosity, I visited a few websites that use OpenCart: In my opinion, the shop system is well-structured and easy to use. However, the loading speed of the sample pages isn’t always super fast.
Overall, I consider OpenCart, with its customizable, lightweight shop solution in PHP, to be a good solution - also thanks to its still-active community (13+ years!).
Django
Django is a web framework for Python. It offers many features, allows extensions by simply including Python modules, and allows even beginners to quickly create working solutions. Although there are numerous libraries for websites, shops such as django-SHOP, database integrations, integration of payment systems, etc., everything still has to be put together and configured by the developer.
While this gives you full control and a solution that’s perfectly tailored to your needs, it also has a significant drawback: learning time. Database security must be ensured by the developer, and user input validation must be programmed or at least correctly configured. Customer master data is stored in plain text by default. Access and deletion concepts must be created and implemented by the developer, or time should be allowed to identify and integrate suitable modules.
If frameworks are to be used, it is recommended to check for active community maintenance beforehand. For example, it looks to me as if there hasn’t been much activity on the Github repo for django-SHOP since 2021. A quick search, however, reveals a lot of alternatives - now it’s time to consider something suitable or reinvent the wheel yourself 😃