Domain-driven e-commerce for Django

Oscar is an e-commerce framework for Django designed for building domain-driven applications. It is structured so that the core business objects can be customised to suit the domain at hand. In this way, your application can accurately model its domain, making feature development and maintenance much easier.


  • Any product type can be handled, including downloadable products, subscriptions, variant products (eg a T-shirt in different sizes and colours).
  • Customisable products, such as T-shirts with personalised messages.
  • Can be used for large catalogues - Oscar is used in production by sites with more than 20 million products.
  • Multiple fulfillment partners for the same product.
  • Range of merchandising blocks for promoting products throughuout your site.
  • Sophisticated offers that support virtually any kind of offer you can think of - multibuys, bundles, buy X get 50% of Y etc
  • Vouchers
  • Comprehensive dashboard
  • Support for split payment orders
  • Extension libraries available for PayPal, GoCardless, DataCash and more

Oscar is a good choice if your domain has non-trivial business logic. Oscar’s flexibility means it’s straightforward to implement business rules that would be difficult to apply in other frameworks.

Example requirements that Oscar applications already handle:

  • Paying for an order with multiple payment sources (eg using a bankcard, voucher, giftcard and business account).
  • Complex access control rules governing who can view and order what.
  • Supporting a hierarchy of customers, sales reps and sales directors - each being able to “masquerade” as their subordinate users.
  • Multi-lingual products and categories

Oscar is developed by Tangent Labs, a London-based digital agency. It is used in production in several applications to sell everything from beer mats to ipads. The source is on Github - contributions welcome.

Indices and tables