Django ecommerce website with full-fledged backend features like mailing order to customers, printing order pdfs and managing asynchronous tasks.
The templates used in the frontend is designed by https://boostrapious.com.
The templates are great for learning how to build an e-commerce website.
virtualenv env
source env/bin/activate
pip install -r requirements.txt
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
-
Install RabbitMQ on Linux by executing the command below from the shell
apt-get install rabbitmq
If you're using macOS or Windows, click here to download the standalone version of RabbitMQ.
-
After installing, RabbitMQ, execute the following commmand to launch RabbitMQ
rabbitmq-server
-
Open a new shell, change directory to your project directory and start your celery worker with the following command
celery -A myshop worker -l info
Note that celery has been installed when you ran 'pip install -r requirements.txt'
-
To monitor asynchronous tasks with Flower - a web application for monitoring celery. Open a new shell and run the following command from your project directory.
celery -A myshop flower
-
Weasyprint - To create pdf receipt for orders. Find implementation in views.py of orders app (line 44 - 52).
-
Celery - To handle asynchronous tasks - Example: sending order mails to customers. Find implementation in celery.py of ecommmerce folder, tasks.py of orders app and line 28 of views.py
-
RabbitMQ - Used as message broker for celery
-
Flower - Used to monitor Celery