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.

A picture of my 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 out

    I 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.
  • Javascript - my site isn't hugely interactive, but I did learn a few nice tricks with some simple javascript.

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.

Do you like tea? I source and sell some of the best Chinese tea in the UK »