I consider myself as a typical web developer. What do I mean by typical?
That must be why I learnt each of them in this order (not on purpose actually).
I tried C, but never liked it. I hate waiting, so an interpreted language like PHP suited me better.
Therefore, the options below are due to my "typical" web background.
I recently created a serverless, front-end-only e-shop with Vue JS, Snipcart and Firebase hosting. Here it is (Dev tees) https://futari.fr.
I had a lot of thoughts before choosing the right technology for this and, that's why I wanted to talk about some available options.
To create an e-commerce website, ask yourself the following:
- what's my deadline?
- do I have a lot of products?
- do I have specific e-commerce features (complex shipping, multi-site...)?
- do I have a complex / specific UI / design?
- do I have a lot of 3rd-party that I need to interact with?
These questions are important, because they will help you choose the right tool.
There are 3 kinds of tools you can use to create an e-commerce: open-source CMS, hosted / API platforms, from scratch with frameworks + libs.
Let's see some pros and cons:
Open Source Solutions
WooCommerce with Wordpress (open-source CMS)
- Great community
- Lots of resources (plugins, themes, tutorials)
- Regular updates (can be a con)
- Easy & fast to setup
- Free to use
- Mobile friendly admin panel and default themes
- Need to learn Wordpress (but that's not a big deal)
- Most extensions are not free
- Poorly optimized out-of-the-box
- Way too many updates, which makes customizing a theme hard sometimes
- Theming can become hard if you have complex UI and features
- All Wordpress cons (hacks, lack of consistency in the API)
Prestashop (open-source CMS)
- Can be self-hosted or hosted on their side
- Good admin panel (that is quite important for the end-user)
- Good performance
- Multilingual out-of-the-box
- Free to use
- Expensive assistance
- Hard to scale for big businesses
- Content pages can be a challenge sometimes
Magento (open-source CMS)
- Very extensible
- Lots of complex features out of the box (multi-site, multi-currency...)
- Scalable (ready for large set of products)
- Community version is free to use
- Learning curve
- Hosting (you need a dedicated server to get the most of it)
- Time consuming (lots of configuration)
Hosted platforms / API platforms
- The most used for dropshipping, large community on that
- A Large set of plugins (they call it apps)
- Very easy to setup and customize the UI
- Lots of payment gateways out-of-the-box
- Lots of features (webhooks, api, advanced tax and shipping management)
- Price, it's a hosted platform so it's not free
- Complex Theming can be tedious
- Hard to create your own admin panel features
- Content pages may be challenging
- Self-contained (it's a hosted platform)
- Amazingly easy to setup
- Drops in any existing website
- No whole server needed, just an endpoint to handle tokens (aws does the trick)
- Theming is... up to you since it's really just a checkout
- If you have many products, management will be tricky
- Advance e-commerce features are not available (check Stripe orders for more)
- You need to use Stripe as payment gateway obviously
- Checkout UI is not customizable (but only that, your site can be like you want)
- same as Stripe checkout
- but! you have Shopify's admin panel with it so advanced e-shop features!
- same as regular Shopify
- some CSS must be done through JS with their SDK for the buy button
- Very easy to setup
- Advanced e-commerce features (shipping, tax, payment gateways...)
- Drops in any existing website
- No backend needed, works on static websites
- Webhooks available to communicate with their backend if needed
- Product management admin panel
- Cart theming is simple
- It's not free, like Shopify it's a platform but, for the admin panel
- Lack of certain very advanced features that Magento has for example
- No plugin system in the admin (but that's the philosophy I guess)
From scratch with a framework
Well, nothing special to say except you can use any framework of your choice associated with libs to create your own e-commerce. Laravel and Symfony has some good libraries for that.
The thing is, choose a framework with the most available modules possible so as to focus only on what is really specific to your website.
So basically I would put it like this:
- To add some e-commerce to existing site:
- Snipcart, Shopify button, Stripe Checkout
- To create a single product e-shop:
- Shopify button, Stripe checkout
- To create a multiple product e-shop with no backend:
- To create a huge e-commerce (thousands of products)
- Magento, Prestashop,From scratch with a framework
- To create fast:
- Woocommerce, Prestashop, Shopify
- To create for free (except server cost):
- Woocomemrce, Prestashop, Magento
- To create a multi-site / multi-store
- To create e-commerce and many content pages
- Woocommerce, Shopify button + any CMS or Snipcart + any CMS
- To create a really specific kind of e-commerce with admin advanced features
- Magento, From scratch with a framework
- If you really have lots of time and need flexibility
- From scratch with a framework
I could go more in details again but I think this is okay :)