Navigation

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.

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.

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.

Note

The createdb is a shortcut for using Django’s syncdb
command and setting the initial migration state for South. You
can alternatively use syncdb and migrate if preferred.
South is automatically added to INSTALLED_APPS if the
USE_SOUTH setting is set to True.

createdb will also install some demo content, such as a contact
form, image gallery and your shop’s first product. 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.

Cartridge is an open source project managed using both the Git and
Mercurial version control systems. These repositories are hosted on
both GitHub and Bitbucket respectively, so contributing is as
easy as forking the project on either of these sites and committing
back your enhancements.

Please note the following guidelines for contributing:

Contributed code must be written in the existing style. For Python
(and to a decent extent, JavaScript as well), this is as simple as
following the Django coding style and (most importantly)
PEP 8. Front-end CSS should adhere to the
Bootstrap CSS guidelines.

Contributions must be available on a separately named branch
based on the latest version of the main branch.

Run the tests before committing your changes. If your changes
cause the tests to break, they won’t be accepted.

If you are adding new functionality, you must include basic tests
and documentation.

Here’s a quick start to hacking on Cartridge after forking it on
GitHub, by using the internal “project_template” as your current
project:

Cartridge’s development branch often relies on features that exist
in Mezzanine’s development branch, but haven’t yet made it into an
official release. To install Mezzanine’s development version in your
environment, run:

The following modules have been developed outside of Cartridge. If you
have developed a module to integrate with Mezzanine or Cartridge, and
would like it listed in the documentation, send an email to the
mezzanine-users mailing list. You can also add modules to the
Mezzanine Grid on djangopackages.com.

To report a security issue, please send an email privately to
core-team@mezzaninecms.com. This gives us a chance to fix the issue and
create an official release prior to the issue being made
public.

For all other Cartridge support, the primary channel is the
mezzanine-users mailing list. Questions, comments, and all related
discussions take place here amongst knowledgeable members of the
community.

If you’re certain you’ve come across a bug, then please use the
GitHub issue tracker. It’s crucial that enough information is
provided to reproduce the bug. This includes things such as the
Python stack trace generated by error pages, as well as other aspects
of the development environment used, such as operating system,
database, Python version, etc. If you’re not sure you’ve found a
reproducable bug, then please try the mailing list first.