Skip to content

app-generator/ecommerce-django-stripe

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
November 1, 2022 16:42
October 25, 2022 17:55
November 2, 2022 10:13
October 19, 2022 12:20
October 25, 2022 17:54
November 2, 2022 10:19
June 16, 2023 15:45
November 25, 2022 09:02
October 17, 2022 16:50
October 18, 2022 09:43
November 2, 2022 08:26

Django & Stripe Mini eCommerce

Open-source mini eCommerce project that loads the products from JSON files saved in the templates directory (no database required) and uses a decent UI for page styling - Powered by Django.

Roadmap & Features

Status Item info
Django For backend logic
Stripe Payment processor
Soft UI Design (Free Version) by Creative-Tim
JSON Products definition - see sample
Automatic Products Discovery Source DIR: templates\products
Dw Products from Stripe On going development via Python Stripe Library
Docker -
CI/CD Render Deployment Platform

✨ Video Presentation

This video explains how to use the product


django-ecomm-stripe-products-provisioning.mp4

Quick Start

👉 Step 1 - Download the code from the GH repository (using GIT)

$ git clone https://github.com/app-generator/ecommerce-django-stripe.git
$ cd ecommerce-django-stripe

👉 Step 2 - Create .env using provided env.sample

Add .env file in your projects root directory and add the following credentials

DEBUG=True
SECRET_KEY=
STRIPE_SECRET_KEY=
STRIPE_PUBLISHABLE_KEY=
DOMAIN_URL=

👉 Step 3 - Install dependencies

$ python -m venv env
$ source env/bin/activate
$ pip install -r requirements.txt

👉 Step 4 - Migrate DB & Start the APP

$ python manage.py migrate
$ python manage.py runserver

Visit http://localhost:8000 in your browser. The app should be up & running.


👉 Step 5 - Access the products and initiate a payment

IMPORTANT: Make sure your Stripe account is running in TEST Mode and Use Test CC provided by Stripe:

  • CC Number: 4242 4242 4242 4242
  • Any data for the rest of the fields

Create a new Product

  • Go to products/templates/products directory
  • Create a new JSON file with data:
    • name: Used in product page & Cards
    • price: Used for payment
    • currency: Used for payment
    • info: used in cards
    • short_description: used in product page
    • full_description: used in product page
  • Create Media Files
    • Go to products/static/products
    • Create a directory using the same name as for JSON file
      • Create card.jpg: 500x335px
      • Create cover.jpg: 2100x1400px
  • Start or refresh the app
    • The new product should be listed in the home page
    • Product page is available at address:
      • http://127.0.0.1:8000/product/<SLUG>/ where the SLUG is the name of the JSON file

✨ Load and create product from stripe

  • Go to Create Product route in Products dropdown [You must be a superuser]
  • On the left side there should be a button Get Products From Stripe this button will pull all the products associated with the stripe account. demo
    • There will be product list, you can create a product by clicking the Create button. demo
  • On the right side you will see the local product list and a button Edit.
    • You can edit a product from here. [ID is not editable] demo

Sample product page generated for Air ZOOM Pegasus, assets loaded from here


Django Stripe Sample - Air ZOOM Pegasus (sample Product


Homepage eCommerce cards

Django & Stripe Mini eCommerce - Open-Source Starter provided by AppSeed.


Codebase structure

The project has a simple structure, represented as bellow:

< PROJECT ROOT >
   |
   |-- products/__init__.py
   |-- products/
   |    |-- static/
   |    |    |-- <css, JS, images>         # CSS files, Javascripts files
   |    |
   |    |-- templates/
   |    |    |
   |    |    |-- includes/                 # Page chunks, components
   |    |    |    |-- navigation.html      # Top bar
   |    |    |    |-- sidebar.html         # Left sidebar
   |    |    |    |-- scripts.html         # JS scripts common to all pages
   |    |    |    |-- footer.html          # The common footer
   |    |    |
   |    |    |-- layouts/                  # App Layouts (the master pages)
   |    |    |    |-- base.html            # Used by common pages like index, UI
   |    |    |    |-- base-fullscreen.html # Used by auth pages (login, register)
   |    |    |
   |    |    |-- products/                        # Define your products here
   |    |    |    |-- nike-goalkeeper-match.json  # Sample product
   |
   |-- requirements.txt
   |
   |-- run.py
   |
   |-- ************************************************************************

Credits & Links



Django & Stripe Mini eCommerce - Free sample provided by AppSeed.