A Noob's Guide to Building an Ecommerce Site with Django-Oscar

An On-going Series of Bumbling Adventures

Update 10 June 2018: I couldn't keep writing at the same pace at which code and other demands were changing. So, I think I'll stop where this is for now. Maybe I'll write it up more completely in future.

Senior devs should probably read this and tell me all the things I could have done better otherwise maybe other noobs will start picking up bad habits from me.

Maybe one day I'll turn this into some sort of interactive follow-along adventure with bright happy colours and cheesy kiddy tunes.

The repo is here.

What level of noob?

Made a couple of Flask apps, or used a Django CMS, maybe deployed a site or two.

Have a sense of Django but don't grok it fully. Haven't actually made custom apps but depended a lot on existing packages like Mezzanine and Oscar. Maybe already skimmed Two Scoops of Django.

Have some problems with class inheritance, and getting contexts for pages. Still confused about models, ORM, and how to use them properly, but knows to prefer Postgres over SQLite in production.

Aspires to use PDB and logger more but... y'know.

Can stumble through with a combination of Google + Stack Overflow + documentation + IRC.

Contents

Part 1: integrating Django-Oscar into Mezzanine

Part 2: handling Oscar's static files and templates

Part 3: overriding Oscar checkout views

Part 4: integrating Paypal checkout express into Django-Oscar

Part 5: testing directing customers to Oscar's thank-you page after payment

Part 6: send customers to Oscar's thank-you page after payment

Part 7: guest checkout

Part 8: multilanguage support (10 June 2018, note: modeltranslation does not work on ipad! oh no!)

Part 9: editing the checkout process

Part 10: set up email back end (Super easy, just google it but watch out for this problem if you're on Digitalocean.)

Coming soon

Part 11: set up error pages

Part ?: set up Google Analytics

Part ?: make the Oscar front end navbar look ok

Part ?: add stuff to the front page

Part ?: PayPal Checkout Express error handling

Part ?: add Stripe because it's cheaper than PayPal

Part ?: add open graph

Part ?: add PostGIS

Part ?: integrate Checkout Express Server-Side REST API into Oscar