This package provides integration between django-oscar and Amazon Payments (Login and Pay with Amazon).

pip install django-oscar-amazon-payments==0.1


An Amazon Payments package for django-oscar

This package provides integration between django-oscar and Amazon Payments (Login and Pay with Amazon).

Tested with Python 2.7, Django 1.6 and django-oscar 0.7.3.


Follow the instructions on configuring your website for Login and Pay with Amazon under Note that the website setup requires the "Allowed JavaScript origin" to be a HTTPS URL, so you won't be able to test Amazon Payments integration with a site run using the Django runserver command.

You will also need an Amazon MWS API key and secret key. These are used to interact with the Amazon MWS Off-Amazon Payments API to actually process the payments. For more information on how to register for Amazon MWS, see

Add 'amazon_payments' to your INSTALLED_APPS, and also add the following settings in your django settings:


Other settings:

Sandbox site

The sandbox site demonstrates how you can set up 2 different Amazon Payments checkout procedures:

  1. One-step checkout: User selects the shipping address and payment method in one step. Clicking the "Place order" button will immediately attempt to charge the user's Amazon account and takes them to the confirmation / thank you page if successful. Assumes there is one shipping method.
  2. Multi-step checkout: The default oscar checkout process.

Setting up the sandbox site:

  1. Change directory to the sandbox directory

  2. Activate your virtualenv

  3. pip install -r requirements.txt

  4. python syncdb

  5. python migrate

  6. python loaddata fixtures/countries.json

    The countries.json bundled with this project is different from the one in oscar in that it sets is_shipping_country to True for all countries, otherwise because of the validation we do for shipping addresses gotten from Amazon you would get an error message for all countries except GB.

  7. python oscar_import_catalogue fixtures/catalogue.csv

  8. mkdir -p public/media

  9. Create the image_not_found.jpg file:

    ln -s /<INSERT PATH TO OSCAR>/static/oscar/img/image_not_found.jpg public/media/

Remember: Amazon Payments requires your "Allowed JavaScript origin" (one of the settings when you're setting up your Amazon Payments account) to be a HTTPS URL, so you will not be able to test the Amazon Payments functionality with a site run using Django's runserver. You can set up a simple webserver that uses a self-signed SSL certificate in something like nginx or Apache.

Recurring Payments


With the recurring payments feature, buyers can pre-authorize payments for future purchases. This enables you to charge a buyer’s Amazon Payments account on a regular basis for subscriptions and usage based billing without requiring the buyer to authorize a payment each time.

Recurring payments are disabled by default. To enable such payments, override the Basket model in your oscar project to add a "has_subscriptions" property that returns True where appropriate. This has been done in the sandbox site, so you will see the "Recurring payments" widget during checkout.


mkvirtualenv <VIRTUALENV_NAME>
git clone
cd django-oscar-amazon-payments
pip install -e .[oscar]
python test


  • Support newer versions of Django and Oscar