Promotions are small blocks of content that can link through to other parts of this site. Examples include:

  • A banner image shown on at the top of the homepage that links through to a new offer page
  • A “pod” image shown in the right-hand sidebar of a page, linking through to newly merchandised page.
  • A biography of an author (featuring an image and a block of HTML) shown at the top of the search results page when the search query includes the author’s surname.

These are modeled using a base promotion model, which contains image fields, the link destination, and two “linking” models which link promotions to either a page URL or a particular keyword.


class oscar.apps.promotions.models.AbstractProductList(*args, **kwargs)[source]

Abstract superclass for promotions which are essentially a list of products.

class oscar.apps.promotions.models.AbstractPromotion(*args, **kwargs)[source]

Abstract base promotion that defines the interface that subclasses must implement.


Returns the template to use to render this promotion.

class oscar.apps.promotions.models.AutomaticProductList(*args, **kwargs)[source]

AutomaticProductList(id, name, description, link_url, link_text, date_created, method, num_products)

class oscar.apps.promotions.models.HandPickedProductList(*args, **kwargs)[source]

A hand-picked product list is a list of manually selected products.

class oscar.apps.promotions.models.Image(*args, **kwargs)[source]

An image promotion is simply a named image which has an optional link to another part of the site (or another site).

This can be used to model both banners and pods.

class oscar.apps.promotions.models.KeywordPromotion(*args, **kwargs)[source]

A promotion linked to a specific keyword.

This can be used on a search results page to show promotions linked to a particular keyword.

class oscar.apps.promotions.models.MultiImage(*args, **kwargs)[source]

A multi-image promotion is simply a collection of image promotions that are rendered in a specific way. This models things like rotating banners.

class oscar.apps.promotions.models.OrderedProduct(*args, **kwargs)[source]

OrderedProduct(id, list, product, display_order)

class oscar.apps.promotions.models.OrderedProductList(*args, **kwargs)[source]

OrderedProductList(id, name, description, link_url, link_text, date_created, handpickedproductlist_ptr, tabbed_block, display_order)

class oscar.apps.promotions.models.PagePromotion(*args, **kwargs)[source]

A promotion embedded on a particular page.

class oscar.apps.promotions.models.RawHTML(*args, **kwargs)[source]

Simple promotion - just raw HTML

class oscar.apps.promotions.models.SingleProduct(*args, **kwargs)[source]

SingleProduct(id, name, product, description, date_created)

class oscar.apps.promotions.models.TabbedBlock(*args, **kwargs)[source]

TabbedBlock(id, name, date_created)


class oscar.apps.promotions.views.HomeView(**kwargs)[source]

This is the home page and will typically live at /

class oscar.apps.promotions.views.RecordClickView(*args, **kwargs)[source]

Simple RedirectView that helps recording clicks made on promotions