======================= Installing django-oscar ======================= Environment ----------- This section is optional but recommended. Install pip and virtualenv (if you haven't already):: sudo apt-get install python-setuptools sudo easy_install pip sudo pip install virtualenv virtualenvwrapper echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc Create a new virtual env:: mkvirtualenv --no-site-packages $PROJECTNAME A nice extension now is to edit your ``~/.virtualenv/$PROJECTNAME/bin/postactivate`` file to contain:: cd ~/path/to/my/workspace/$PROJECTNAME so that you can simply type ``workon $PROJECTNAME`` to jump into your project folder with the virtual environment set-up. Installation ------------ Install oscar and its dependencies:: pip install -e git+git://github.com/tangentlabs/django-oscar.git#egg=django-oscar You will also need to install the appropriate python module for your database of choice. If you are using MySQL, then run the following:: pip install MySQL-python Also, depending on your search backend for haystack, you'll need to install further packages:: pip install pysolr Now create the project:: cd /path/to/my/workspace django-admin.py startproject $PROJECTNAME Configure ``settings.py`` ------------------------- * Add ``'django.middleware.transaction.TransactionMiddleware'`` to your ``MIDDLEWARE_CLASSES`` tuple, making sure it comes AFTER ``'django.contrib.auth.middleware.AuthenticationMiddleware'``. * Add the following to your `INSTALLED_APPS`:: 'haystack', 'oscar', 'oscar.apps.analytics', 'oscar.apps.discount', 'oscar.apps.order', 'oscar.apps.checkout', 'oscar.apps.shipping', 'oscar.apps.order_management', 'oscar.apps.product', 'oscar.apps.basket', 'oscar.apps.payment', 'oscar.apps.offer', 'oscar.apps.address', 'oscar.apps.partner', 'oscar.apps.image', 'oscar.apps.customer', 'oscar.apps.promotions', 'oscar.apps.reports', 'oscar.apps.search', 'oscar.apps.catalogue_import', * Add these to ``TEMPLATE_CONTECT_PROCESSORS``:: 'oscar.apps.search.context_processors.search_form', 'oscar.apps.promotions.context_processors.promotions', 'oscar.apps.promotions.context_processors.merchandising_blocks', * Import default settings:: from oscar.defaults import * * If using Solr, configure it:: HAYSTACK_SITECONF = 'oscar.search_sites' HAYSTACK_SEARCH_ENGINE = 'solr' HAYSTACK_SOLR_URL = 'http://127.0.0.1:8080/solr' HAYSTACK_INCLUDE_SPELLING = True Now fill in the normal settings (not related to django-oscar) within ``settings.py`` - eg ``DATABASES``, ``TIME_ZONE`` etc A vanilla install of django-oscar is now ready, you could now finish the process by running:: ./manage.py syncdb However, in reality you will need to start extending the models to match your domain. It's best to do this before creating your initial schema. Configure URLs -------------- Oscar comes with a number of urls and views out of the box. These are recommendations rather than a requirement but you easily use them in your e-commerce site by adding the oscar urls to your projects local ``urls.py``:: (r'^', include('oscar.urls')), This will bring in all of oscar's defined urls. Of course you can pull in the urls for the individual apps if you prefer or simply define your own