Recently I had to build an eCommerce website for myself, well mostly for my wife. On my trip to Turkey I fell in love with the artisanal work found in outdoor markets so I bought a handmade lamp, a beautiful hand painted vase, and some cute knick-knack items as gifts for my wife. My wife loved the gifts and we started talking about how amazing these items are and how great it would be to share these exquisite treasures with everyone else and that’s how Vazo Market was born.
Why Magento Sucks
Magento markets itself as the best eCommerce platform with built in features but that comes with a huge price. First and foremost, Magento is extremely slow and complicated. Sure you can turn on the caching which makes a big difference but during development, you will have to manually refresh the cache over and over again and sometimes even that doesn’t work, so you have to manually delete the cache folders. If you make template changes you have to re-index and clear the cache, which can take quite some time depending on your theme/modules. Don’t believe how slow it is, just google magento admin demo and try adding a product.
The core modules have bugs which don’t get fixed right away and the documentation is lacking. The SEO for Magento is horrible. Being that Magento is an eCommerce platform you would expect to at least get basic product schema but no, there is no schema, and there is no xml sitemap to submit to google either. Yes, you can add meta descriptions and generate search engine friendly urls but almost all the eCommerce platforms allow that nowadays; Besides all of this there aren’t any decent SEO plugins that work out of the box. Yoast is building an SEO plugin but it is currently in Beta.
The UI for Magento is unintuitive, it is like they never considered what steps are necessary for a specific process, i.e to add a product, you go to catalog, and add the info but wait you want to add some attributes like (color, or size), oh now you have to go to stores, attributes, and add an attribute but wait, you don’t want to add this attribute to all your products oh in that case you have to go to attribute set and create a new set and add the attribute and go back to the product, select new attribute set and then you can hit publish. That’s not all, Magento might require you to clear the cache so you have to do that and wait a minute for the page to reload. Sometimes you go back to the products tab and there is nothing there so you have to enter that info again as well.
That was just one example of how confusing Magento admin can be. There are other scenarios where the options are hidden somewhere in the dark alley of Magento’s admin and you have to go for a treasure hunt with your flashlight.
Overall, building with Magento is like pulling a cargo train. Yes it will handle ton of cargo and you can keep adding cabins but it is slow, inefficient, and will probably break somewhere down the road.
Trying Reaction Commerce
After struggling with Magento for 2 months and waking up to see that my site had crashed, I decided to look for another eCommerce platform. A coworker showed me reaction commerce and I really liked how minimal and flexible this platform is, plus I was already learning Meteor so I decided to give it a try.
Reaction Commerce is built on top of Meteor, which utilizes Node and Mongo. It is light weight, flexible and real-time. The SEO functionality is decent and the admin panel is minimal, sometimes too minimal if you ask me, but we will get to that.
What I love about meteor is that if you are making any changes and you hit update it will automatically update the site for your clients (they won’t have to reload the page). Compared to Magento’s caching, meteor is light years ahead. You might be wondering what will happen if you have a large catalog. I haven’t tested this but I think Reaction will only get the data for the new product and the view will render it. React is pretty efficient with DOM rendering.
Reaction is fairly new and the community is small but extremely active. I became involved with the community through slack and github and began to build my website. For a while, it all went great but soon I realized that reaction is too young. There were still bugs with the core and besides that I don’t think they have fully decided on the frameworks core design. They were also migrating views from meteors template engine to react so half of the app is in react and the other half is in Blaze. Among all of this, the lack of documentation made it hard for me to make any progress.
Reaction’s documentation is lacking and confusing. There is not a single diagram that shows template hierarchy or how your plugins interact with the theme. I read through changing the template section many times and after I figured out how to change the homepage, it turns out there is a simple one liner that could do the same.
The other thing that bothered me about reaction is that you have to do a reaction reset every time you customize the workflow. I understand why it is necessary but I don’t get why it deletes all the data. It was annoying to keep adding the data over and over again. However, later I realized you can make fixtures and the data would get automatically uploaded on restart.
I think Reaction has a lot of potential and I will continue to be a part of the community. I didn’t pick it for this project because I didn’t have enough time, but I really like the concepts behind it. I am almost certain that with enough time I will be able to figure it out.
Woocommerce to the Rescue
After three months and no website, I decided to go back to what I was familiar with; WordPress and Woocommerce. It took me a week to build a fully functioning website, that is SEO optimized, as well as fast and reliable. The website is synced to our social profiles so we get free marketing values with zero effort. As of today we already rank for one keyword and hopefully over time it will improve. Woocoomerce is easy to build and customize, the documentation is great and you get all the functionality you need. If you want to extend any aspect of your site you have lots of free plugins to choose from that probably perform better than most of Magento’s plugins.
Woocommerce supports stripe and paypal out of the box and it is a breeze to set it up. You can install Yoast plugin to optimize your website for SEO. There is a plugin for almost any kind of extension you need, and most importantly the paid plugins are cheap and reliable. Even if a plugin breaks your site, you can just disable it, as opposed to total chaos in Magento.
Don’t fall into the trap that Woocommerce is just a plugin and that wordpress is a blogging platform. These two platforms will give you everything you need to open an online store. In fact with Yoast plugin, you will get better SEO than Magento.
My advice for anyone starting an online store is to use Woocommerce and don’t fill into the trap that you have to spend thousands of dollars in order to get a state of the art online store. You have everything you need to get started for free.