This will create a folder frobshop for your project. It is highly
recommended to install Oscar in a virtualenv.

Attention

Please ensure that pillow, a fork of the the Python Imaging Library
(PIL), gets installed with JPEG support. Supported formats are printed
when pillow is first installed.
Instructions on how to get JPEG support are highly platform specific,
but guides for PIL should work for pillow as well. Generally
speaking, you need to ensure that libjpeg-dev is installed and found
during installation.

Note that Oscar requires django.contrib.flatpages which isn’t
included by default. flatpages also requires django.contrib.sites,
which won’t be enabled by default when using Django 1.6 or upwards.
More info about installing flatpages is in the Django docs.

Tip

Oscar’s default templates use django-compressor and django-widget-tweaks
but it’s optional really. You may decide to use your own templates that
don’t use either. Hence why they are not in the ‘core apps’.

to allow customers to sign in using an email address rather than a username.

Ensure that your media and static files are configured correctly. This means
at the least setting MEDIA_URL and STATIC_URL. If you’re serving files
locally, you’ll also need to set MEDIA_ROOT and STATIC_ROOT.
Check out the sandbox settings for a working example. If you’re serving
files from a remote storage (e.g. Amazon S3), you must manually copy a
“Image not found” image into MEDIA_ROOT.

Alter your frobshop/urls.py to include Oscar’s URLs. You can also include
the Django admin for debugging purposes. But please note that Oscar makes no
attempts at having that be a workable interface; admin integration exists
to ease the life of developers.

If you have more than one language set your Django settings for LANGUAGES,
you will also need to include Django’s i18n URLs:

The default checkout process requires a shipping address with a country. Oscar
uses a model for countries with flags that indicate which are valid shipping
countries and so the country database table must be populated before
a customer can check out.

The easiest way to achieve this is to use country data from the pycountry
package. Oscar ships with a management command to parse that data:

By default, this command will mark all countries as a shipping country. Call
it with the --no-shipping option to prevent that. You then need to
manually mark at least one country as a shipping country.

Every Oscar deployment needs at least one
productclass
and one
fulfillmentpartner.
These aren’t created automatically as they’re highly specific to the shop you
want to build.

When managing your catalogue you should always use the Oscar dashboard, which
provides the necessary functionality. Use your Django superuser email and password to login to:
http://127.0.0.1:8000/dashboard/ and create instances of both there.

It is important to note that the Django admin site is not supported. It may
or may not work and is only included in the sandbox for developer’s
convenience.

For a deployment setup, we recommend creating product classes
as data migration.

The order management in Oscar relies on the order pipeline that
defines all the statuses an order can have and the possible transitions
for any given status. Statuses in Oscar are not just used for an order
but are handled on the line level as well to be able to handle partial
shipping of an order.

The order status pipeline is different for every shop which means that
changing it is fairly straightforward in Oscar. The pipeline is defined in
your settings.py file using the OSCAR_ORDER_STATUS_PIPELINE setting.
You also need to specify the initial status for an order and a line item in
OSCAR_INITIAL_ORDER_STATUS and OSCAR_INITIAL_LINE_STATUS
respectively.

To give you an idea of what an order pipeline might look like take a look
at the Oscar sandbox settings:

Defining the order status pipeline is simply a dictionary of where each
status is given as a key. Possible transitions into other statuses can be
specified as an iterable of status names. An empty iterable defines an
end point in the pipeline.

With these three settings defined in your project you’ll be able to see
the different statuses in the order management dashboard.