Django ecommerce - why I didn't choose Satchmo or LFS
For anyone who wants to use Django as the base for their e-commerce site, there's normally two choices - use Satchmo, or Lightning Fast Store (LFS) as your platform. I chose the third option - my own custom store.
- Buy Chinese tea at www.minrivertea.com - my Chinese tea website
Satchmo and LFS are both pre-built, community maintained shop applications. They're probably two ends of the complexity scale - Satchmo is feature rich, and LFS is stripped down and simple (or at least, it was when I made the decision. It seems like more features have been added since).
In the end, after trying them both out, I decided to make my own Django ecommerce shop, custom built from scratch. At this point, I have to remind everyone that I'm not a professional coder, and my Django/Python skills are intermediate at best. But, I still felt like this was a good choice:
It's my business, I should know it inside outI felt that if I'm going to run an online business, I'd better know it better than I know myself. Like any other aspect of a business, I have to know every facet, know where the problems might be, and how can that happen if I just plug-and-play someone else's code? If something goes wrong, I want to know that I can fix it, ASAP.
Satchmo/LFS are too complicated (for me)I started out trying both of these, but perhaps because I'm not a great coder, both were too complicated. Too many options, unclear documentation, unclear code (ie. unclear for me, a beginner)...again, my business is all online, and I can't afford to be confused about it.
How hard is it, really?If you're building an online shop for a wide range of complicated products, then maybe Satchmo or LFS might be what you need. But, for a simple product, then how complicated does it need to be? Some products, some prices, some forms, a basket, a paypal integration? Maybe some emails, some notifications - even if you're a django beginner, this shouldn't be intimidating.
All in all it took me around 6 weeks to build, including a lot of time spent on design. There weren't any major challenges, but I did learn a few very useful things:
- Signals - how to use signals to send emails or Prowl notifications to customers/admins on certain events (eg. a sale, a problem).
- Basic maths with Python - again, not being a programmer, I've never done maths in code before. Doing the shopping basket part of the site, calculating discounts, totals etc. gave me a chance to learn how to do basic maths with Python
- Cookies - I'm using cookies to keep track of a person's basket, so I learned how to set cookies and, after lots of bugs, mess ups and failures, learned a nice rule of thumb (keep cookie use to a minimum, if only for your own sanity).
- Improving site performance - I used Django-static to improve the performance of my site. I've written about this before, but again, it's something new for me.
So, if you're a beginner Django-ista, then don't be afraid! It's really not that hard, and sometimes feature rich pre-written apps are not that helpful for a beginner, because they don't allow you to learn or improve, and contain vastly more than you'll ever need.