We're going to take you step-by-step to build a modern, fully open-source, eCommerce web application using Python, Django, Bootstrap, Javascript, and more.

codingforentrepreneurs codingforentrepreneurs Last update: Mar 26, 2024

eCommerce

eCommerce Logo

This course will teach you step-by-step to build a eCommerce site from scratch. We'll be using open-source software to create each aspect of a fully functioning eCommerce business.

Full Course is here: https://www.joincfe.com/courses/ecommerce/

Below you'll find the related lecture code to any given section and lesson. Enjoy!

Code

Section - Hello World

Intial Commit

Section - Products Component

1 - Your first app Module

2 - Understanding CRUD

3 - Product Model

4 - Django Admin

5 - List View

6 - Detail View

7 - ImageField & FileField

8 - Understanding Lookups

9 - Custom Model Managers

10 - Featured & Custom QuerySets

11 - SlugField & Signals

12 - Products URLs

Section: Templates

1 Base Template

2 - Include Tag

3 Pass Arguments with Include

4 - Reusable List View Snippets

5 - Reverse for URLs

6 - Navbar

7 - Template Filters

8 - ForLoop Counter & Cycle

Section: Bootstrap

1 - Adding Bootstrap (no code)

2 - Container vs Container-Fluid (no code)

3 - Rows And Columns

4 - Column Sizing

6 - Desinging for Different Browser Sizes with Breakpoints

7 - Spacing with Margin & Padding

8 - Navbar

10 - Integrate to Django

Section: Search Component

1 - A Basic Search View

2 - Display the Query to the User

3 - Creating the Search Form

4 - Better Lookups with Q

5 - Tag Component

6 - Shell Commands for a Brief Intro to Foreign Keys

7 - Search by Related Model

Section: Cart Component

1 - Cart App

2 - Django Sessions

3 - Cart Model

4 - Create A Cart in the View

5 - Cart Model Manager

5 - Cart Model Manager Part 2

7 - M2M Changed Signal to Calculate Cart Total

8 - Cart Update View

9 - Add to Cart Form

10 - Display Cart

11 - Remove Items from the Cart

12 - Cart Icon & FontAwesome

Section: Checkout Process

1 - The Roadmap for the Checkout Process

2 - The Order Component

3 - Generate the Order ID

4 - Calculate the Order Total

5 - Checkout View

6 - Math with Decimals and Floats in Python

7 - Upgrading Auth to Prep for Checkout

8 - Billing Profile Model"

9 - Billing Profile in the Checkout View

10 - Guest Checkout Profile

11 - Associate Billing Profile to Order

12 - Order Manager

13 - Billing Profile Manager

14 - Addresses App

16 - Associate Addresses to Order

17 - Finalize Checkout

18 - Reuse Addresses for Checkout

19 - Checkout Success

Section: Fast Track to Jquery

1 - Getting Started

2 - A Basic Selector

3 - Selectors Part 2

4 - Content Overflow Part 1

5 - Data Types, Iteration and Conditionals

6 - Content Overflow Part 2

7 - Click Events

8 - Handling form data in jQuery

Section: Products & Async

1 - Sync vs Async (no code)

2 - Ajax-ify a Form

3 - Handle Ajax in Django with JsonResponse

4 - Cart Item Count

5 - Refresh Cart Ajax

6 & 7 - Refresh Cart Ajax Part 2 & 3

8 - Finalize Cart Updating with Ajax

8 - Finalize Cart Updating with Ajax

9 - Auto Search

10 - Display Errors with jQuery Confirm

11 - Ajaxify the Contact Form Part 1 & 2

13 - Custom eCommerce JS

14 - Ajax CSRF Security for Django

Add Ons

Custom Django User Model

1 - Before we get started (no code)

2 - Create the Abstract Base User

3 - Create the User Model Manager

4 - Change Auth User Model to our Custom Model (no code)

5 - Reload the Database with Fixtures

6 - Forms & Admin for our Custom User

7 - Add a Required Field to the User Model

8 - Update Login & Register Forms

9 - Login & Register Views

Custom Analytics

1 - Getting Started (No Code)

2 - Craft the Object Viewed Model

3 - Get Client IP Address

4 - A Custom Signal

5 - Object Viewed Mixin

6 - Handle the Object Viewed Signal

7 - Handling and Ending User Sessions

Stripe Integration

1 - Getting Started

2 - Create Stripe Customer

3 - Payment Method View & Stripe JS

4 - Improving Payment Method Form

5 - Improving Payment Method Form Part 2

6 - Reusable Stripe Module

7 - Add Card to Customer with Stripe

8 - Save Card in Django

9 - Charge the Customer

10 - Putting it All Together

11 - Guest Card Checkout

12 - Changing Payment Methods

13 - Improve Card UI - Part 1

14 - Improve Card UI - Part 2

Mailchimp Integration

3 - Setup API Keys

4 - Marketing App

5 - Mailchimp Class Part 1

6 - Mailchimp Class Part 2

7 - Mailchimp Class Part 3

8 - Django & Mailchimp

9 - User Email Marketing Preference View

10 - Mailchimp Webhook Handler

Go Live

1 - Local vs Production Environments (no code)

2 - New Settings Module

3 - Multiple Settings Modules

4 - Prepare for HTTPs

5 - The gitignore File

6 - Requirements File

7 - Setup Git Version Control

8 - Deploy to Heroku

9 - AWS S3 for Static Files

10 - Add Custom Domain & HTTPs on Heroku

11 - Live Environment Variables

12 - Error Views and Templates

13 - Setup Email to Help Solve Server Errors

14 - Using Heroku Locally

Account & Settings

1 - User Account Home

2 - Naming & Dropdown

3 - Account Bootstrap Cards

4 - Link Account Bootstrap Cards

5 - Password Reset and Change

6 - send_email and get_template

7 - Email Activation

8 - Custom QuerySet for Confirmable Activations

9 - Email Activation View

10 - Email Reactivation

11 - Improved Login Form & View

12 - Login Form for Confirmation Emails

13 - Upgrading the Guest Checkout Form

14 - Edit Account Details

15 - User Product History View

16 - Orders & Order Detail

17 - Final Addresses on Order

18 - Addresses List View

19 and 20 - Update & Create Addresses Part 1 & 2

Selling Digital Items

1 - Digital Products & Cart

2 - Shipping-less Checkout

3 - Product Purchases

4 - Handling Products Being Purchased

5 - Display of Refunded Items

6 - Library View

7 - Library View for Products Only

8 - Product File Model

9 - Changing File Field Storage to Protected Location

10 - Download Product File Part 1

11 - Download Product File Part 2

12 - Perform the File Download

13 - Checking Download Permissions

14 - In Library Display Part 1

15 - In Library Display Part 2 with Ajax

16 - AWS S3 File Upload

17 - Fixing the Upload Path

18 - Creating the AWS Download Class

19 - Using the AWS Download Client

20 - A Custom Filename

Graphs and Sales

1 - Setup the View

2 - Add Context for the Order Data

3 - Intuitive Recent Order Total

4 - Aggregate & Annotate

5 - Get Data by Custom QuerySet

6 - Intro to Datetime Module

7 - Filter by Range of Time

8 - Chart-js Intro

9 - Using Ajax to Render Charts

10 - Display True Data

11 - Cleanup

12 - Inline Js to External

Subscribe to our newsletter