Should you develop an eCommerce website from scratch or use an existing solution? There’s an ongoing debate as to the best approach for businesses and which option makes the most financial sense. Both sides have valid points. For some businesses, going off-the-shelf makes more sense, whereas for others, custom development is the only reasonable option. So what’s right for you? To find out, start by asking yourself these three questions:
- Does my website need to handle thousands or even millions of users?
- Does my website need to handle high loads and provide fast performance?
- Does my project require unique features?
If your answer to all these questions is yes, consider building your eCommerce website using Python. To understand why, we’ve analyzed eCommerce development with Python in light of three important factors: scalability, performance, and unique features.
If your answers to these questions are no, you’d better use an eCommerce platform. To see the whole picture, we’ll walk you through cases when a ready-made solution is the best way to go.
For eCommerce platforms, scalability matters. Retailers look to attract new customers and increase sales. And when the number of customers grows, your platform needs to grow too.
You may ask, Can’t I run a scalable business with a ready-made solution? Yes, you can. Platforms such as Shopify and Magento can scale. But what differs is the cost of scaling.
With custom development, there are two ways to go about scaling your project: vertically or horizontally.
To put it simply:
- Vertical scaling is when you add more power to your platform by upgrading your project’s infrastructure. To scale your platform vertically, you add more database servers, caching servers, and web servers to your platform. Django provides mechanisms to do this by default.
- Horizontal scaling is when you scale Django instances. In other words, you add more machines. Horizontal scaling isn’t a must; it’s applied when vertical scaling isn’t enough.
When scaling, it’s important to get things right from the start. At Steelkiwi, we begin each project by discussing the idea, the product’s functionality, and scaling plans, including how many users the client expects to have when their platform is released and how many they expect in the future. By doing this, we can define which scaling method is right for our client’s app. Next, we design the architecture to scale so that scaling the platform is painless when the time comes.
Vertical scaling is the most cost-efficient, as you can pay Amazon Web Services (AWS) to add more servers and a developer to support those servers. When scaling your platform horizontally, you need to pay for servers and actual software development.
Scaling with eCommerce platforms is a bit different. With Shopify, for example, you can start a website with any plan ― Basic Shopify, Shopify, Advanced Shopify ― and scale your store by changing your plan. Here is Shoppify’s pricing:
As your platform grows even more, you can migrate to Shopify Plus, a scalable solution for enterprises. This enterprise plan starts at around $2,000 per month, which means you’ll pay at least $24,000 a year.
If you want to develop a scalable website with Magento, they have a solution called Magento Commerce, previously known as Magento Enterprise Edition (EE). A license for Magento EE costs $24,000 per year.
Note: If you’re non-technical, you’ll have to hire a software developer to build your website with Magento, as it requires technical skills. The hourly rate for a Magento developer differs depending on their location. For example, if you hire a software engineer from Eastern Europe, development will cost you $15–30 per hour. The hourly rate for a US Magento developer is $75–90.
With Django, you can develop a website with high performance from the beginning. There are a variety of techniques and Django tools that can help you get your code running more efficiently, faster, and using fewer system resources. These tools aim at optimizing caching, database performance, and HTTP performance.
Additionally, Django provides tools such as django-debug-toolbar to get insights into where inefficiencies are in your code so you know what to optimize. You can also use third-party apps such as Google PageSpeed and Yahoo’s YslowGoogle PageSpeed to better understand your platform’s overall performance.
If you’re interested in more information and an explanation of optimization gains with Django, read the official documentation by the Django Software Foundation. There, you can find an overview of Django tools and techniques to improve your site's performance and minimize memory consumption.
World-famous companies have been using Python for many years and are proof of its performance and scalability. Retail platforms like Wish and Instacart are great examples here. Non-commerce websites that use Python/Django include Disqus, Instagram, Pinterest, YouTube, Mozilla, The Washington Post, Spotify, Eventbrite, and Dropbox.
How about the performance of ready-made solutions? High performance isn’t their strong suit. The main reason for that is third-party extensions. With off-the-shelf solutions, you’ll most likely require third-party extensions to add the necessary functionality. The problem is they take up lots of space, which increases load time and decreases performance. Therefore, the more third-party apps a website has, the worse its performance.
Let’s talk numbers. According to Littledata, the average load speed of a Magento page is 2.8 seconds, while for Shopify, it’s 2.6 seconds. Large e-stores have slower loading times. On average, it takes a Magento store 6 seconds and a Shopify store 6.8 seconds to fully load.
If you need functionality to meet specific business needs or a particular design to fit your brand, then you’ll need custom development.
With custom development, you can also benefit from artificial intelligence and machine learning. Today, these new fields are among the top technology trends in the retail industry. Big names in eCommerce have invested a lot in these new areas and are already benefiting from them in a variety of ways.
How does Amazon know what you want to buy before you actually buy it? And how does eBay pick items just for you? Product recommendations are powered by machine learning.
There are several key machine learning use cases in eCommerce:
- Recommendations to provide users with the most relevant items. Amazon is famous for its recommendation engine. eBay is another good example. With around 1.2 billion items listed, they manage to predict what’s most relevant for each customer by analyzing search history, buying behavior, and how users with similar preferences and behaviors interact with eBay.
- Image recognition. American Eagle, an American casual apparel and accessories retailer, lets users search for items by photos. Walmart benefits from facial recognition with machine learning to define frustrated and unhappy shoppers through their facial expressions.
- Fraud detection. With machine learning, you can process thousands of transactions faster than any human analyst could and prevent fraudulent payments before they happen.
- Speech recognition and machine translation to understand what your customers say. Alibaba translates every customer review, product title, category, and description.
Python is the most popular programming language for machine learning according to the 2019 Octoverse report. In 2018, Tensorflow, an open-source Python machine learning project, and PyTorch, a Python machine learning library, were the most contributed to and fast-growing GitHub projects.
In addition to these two solutions, Python provides lots of other useful scientific libraries and frameworks, so you’ll find a tool for literally any machine learning use case. For example, you can use SciPy, Pandas, NumPy, and Seaborn for data analysis and visualization; TensorFlow, Keras, and scikit for machine learning; NLTK and spaCy for natural language processing.
When you shouldn’t develop an eCommerce website in Python
For some use cases, custom development may not be the best option. Let’s take a moment to review some instances when it makes sense to use an eCommerce platform to develop your online store.
A ready-made platform might be the only option if you want to build a store without actual coding. Yet this is possible only for small websites with little functionality and no customizations.
With off-the-shelf software, you can create a simple website without coding knowledge, but you’ll need coding for any extensions, premium templates, and customizations. Take Shopify as an example. It gives you control over your designs by letting you edit HTML and CSS. To do this, you’ll need to have at least basic HTML/CSS skills or hire a web developer. In the case of Magento, you’ll need a programmer’s help.
Most ready-made solutions offer the necessary functionality to build and manage an eCommerce website. For instance, BigCommerce features a content management system (CMS), payment functionality, order and inventory management, order fulfillment and shipment, discounts, return management, and app integrations. With OpenCart, store owners can benefit from unlimited products and categories, product ratings and reviews, multi-currency and multi-lingual support, an admin dashboard, payment gateway integration, shipping integrations, and sales reporting.
Off-the-shelf solutions provide quite a lot of templates (both free and paid), usually with limited options to customize them.
Note: Often, theme customizations require technical skills. Remember Shopify? You can’t do even basic editing of your layout without HTML/CSS.
If money is an issue, consider using a ready-made solution. Initially, you won’t have to invest too much to build your platform. But remember that each time you want to add functionality, implement add-ons, or customize features, you’ll pay.
Keep in mind that a ready-made platform isn’t always cheap. Take Shopify as an example. Often, you need to rely on third-party apps to add functionality, which means you’ll pay additional fees. Want social login? It’ll cost you an extra $9 each month. Need to use an external payment gateway? There’s a fee for that. The same goes for lots of other things.
Python is a solution for fully custom development, meaning you can decide on everything while building your website, from designs to functionality. With Python, you can create a large-scale and high-performance app. Development might take a big bite out of your budget, but it’s a one-time investment of this size. There will also be some expenses in the future when you decide to implement new features and make changes. But the nice thing about custom development is that you own the platform. Even if you don’t add more features, change existing features, or change the design, it’s still yours and it exists.
With eCommerce builders, on the other hand, you pay less to set up your website but then keep paying to use it. Today, ready-made platforms are highly customizable and include must-have functionality for an eCommerce platform. But if you decide to build a scalable platform with an off-the-shelf solution, there’s a good chance you’ll find yourself paying more than you would have if you developed from scratch.
This is similar to renting versus buying a house. Buying entails lots of initial expenses and some maintenance costs for redoing a bathroom, renovating the kitchen, or simply replacing household items.
When renting, you pay in small parts on a regular basis, so your expenses may be less painful. Want to renovate or redo your rental property? You’ll have to pay. You get value for your monthly rent payments: a place to live for a period of time. But renting doesn’t have any future value once your payments stop. The same goes for ready-made platforms: you have an online store while you’re paying for it. Once you stop paying, the website you created isn’t really yours.
We hope our eCommerce with Python guide has given you a better understanding of what’s best for you: building an eCommerce website with Python or using a ready-made platform. Meanwhile, you can check out our portfolio of solutions built with Python.