Built from scratch shop for personal usage:
- Templates built on Material Design Bootstrap 4;
- Anonymous checkout and payment through Django Sessions;
- Internalization for EN and DE;
- Integrated Paypal Server Side Checkout;
- Email notification of User and Admins about succesfull order, refunds, deliveries;
- Lightbox for image gallery;
Kudos to JustDjango and the video tutorial for getting me started!
- Create virtual environment in root folder
python -m venv venv
- Switch to virtual environment:
*nix
source venv/bin/activate
Windowsvenv/bin/activate
- Install all dependencies from requirements.txt
pip install -r requirements.txt
- Migrate everything, create database
python manage.py makemigrations
python manage.py migrate
- Create superuser (admin)
python manage.py createsuperuser
- Create
.env
file in root directory with fields:
DJANGO_SECRET_KEY = "YOUR DJANGO SECRET. CAN BE GENERATED VIA GENERATION"
HOST = "YOUR EXTERNAL IP ON WHICH YOU WOULD LIKE TO SERVE YOUR APP"
PAYPAL_CLIENT_ID = "TO BE OBTAINED IN developer.paypal.com"
PAYPAL_CLIENT_SECRET = "TO BE OBTAINED IN develope.paypal.com"
GMAIL_ACCOUNT = "YOUR GMAIL ADDRESS"
GMAIL_PASSWORD = "YOUR GMAIL APP PASSWORD"\
- App uses memcached. Either install memcached on your machine or change settings.py "CACHES"
- Run local server
python manage.py runserver
- In the admin panel
127.0.0.1/admin
change domain name of your website
- User enters site;
- User places item in the order with
ordered = False
which is a workaround for cart implementation:
if not logged in - Order with
session_key
is created for this user;
if logged in - Order for this user is created,session_key
remains empty;
- User proceeds to checkout;
- User proceeds for payment procedure. As of now it is only PayPal server side;
- After succesfull capture of Paypal credit, Order is marked
ordered = True
and available for admin to proceed with the delivery;
- API;
- Additional payment methods;
- Auction functionality;
- Tracking API;