Cartridge is a shopping cart application built using the Django framework. It is BSD licensed, and designed to provide a clean and simple base for developing e-commerce websites. It purposely does not include every conceivable feature of an e-commerce website; instead, Cartridge focuses on providing core features common to most e-commerce websites.
This specific focus stems from the idea that every e-commerce website is different, is tailored to the particular business and products at hand, and should therefore be as easy to customize as possible. Cartridge achieves this goal with a code-base that is as simple as possible and implements only the core features of an e-commerce website.
- Hierarchical categories
- Easily configurable product options (colours, sizes, etc.)
- Hooks for tax/shipping calculations and payment gateways
- Sale pricing
- Promotional discount codes
- PDF invoice generation (for packing slips)
- Stock control
- Product popularity
- Thumbnail generation
- Built-in test suite
- Separation of presentation (no embedded markup)
- Smart categories (by price range, colour, etc)
- Registered or anonymous checkout
- Configurable number of checkout steps
- Denormalised data for accessiblilty and performance
- Authenticated customer accounts with transaction history
Cartridge is designed as a plugin for the Mezzanine content management platform, and therefore requires Mezzanine to be installed. The integration of the two applications should occur automatically by following the installation instructions below.
The easiest method is to install directly from PyPI using pip by running the command below, which will also install the required dependencies mentioned above:
$ pip install -U cartridge
Otherwise, you can download Cartridge and install it directly from source::
$ python setup.py install
Once installed, the command mezzanine-project can be used to create a new Mezzanine project, with Cartridge installed, in similar fashion to django-admin.py:
$ mezzanine-project -a cartridge project_name $ cd project_name $ python manage.py createdb --noinput $ python manage.py runserver
Here we specify the -a switch for the mezzanine-project command, which tells it to use an alternative package (cartridge) for the project template to use. Both Mezzanine and Cartridge contain a project template package containing the settings.py and urls.py modules for an initial project. If you'd like to add Cartridge to an existing Mezzanine or Django project, you'll need to manually configure these yourself. See the FAQ section of the Mezzanine documentation for more information.
The createdb command is a shortcut for using Django's migrate command, which will also install some demo content, such as a contact form, image gallery, and more. If you'd like to omit this step, use the --nodata option with createdb.
You should then be able to browse to http://127.0.0.1:8000/admin/ and log in using the default account (username: admin, password: default). If you'd like to specify a different username and password during set up, simply exclude the --noinput option included above when running createdb.
Subscribe to Python Awesome
Get the latest posts delivered right to your inbox