| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- ===================
- Offers and vouchers
- ===================
-
- The ``oscar.offers`` app offers functionality for basket-level offers and vouchers. This covers
- features such as:
-
- * 3 for 2 offers on fiction books
- * Buy one book, get a DVD for half price
- * A Christmas voucher code that gives 25% off all products until Decmember 25th
- * All students get £5 off their first order
- * Visitors coming from an affiliate site get 10% off their order
- * A voucher code that can be used once by each customer and gives 25% off
-
- In short, it is very flexible.
-
- Basket-level offers
- -------------------
- A conditional offer has metadata such as a name, description and date range (for when it is active)
- but is defined by two things:
-
- * A *Condition*, which is some criteria that the user's basket has to have met. These are
- either count- (eg must contain one fiction book) or value-based (eg must contain £10 or more
- of DVDs).
- * A *Benefit*, which is the discount that is applied to the basket.
-
- When an offer is applied the basket, the products that are used to meet the condition, and the
- products discounted by the benefit are "consumed" so that they are not available for other offers.
-
- Offers come in 4 types:
-
- * *Site offers* - Offers that are available to all users of the site. Every time a basket is looked
- up for a user, we attempt to apply these offers to give a discount. An example is a "3 for 2" offer
- on all fiction books.
-
- * *Voucher offers* - Offers that are available if you have attached a specific voucher code to your basket.
- For example, a voucher could be created that links to a 25% off offer on all products.
-
- * *User offers* - Offers available only to certain users - these are looked up by passing the ``auth.User``
- object to a look-up service that returns any relevant offers. This could be used to give student
- users a discount or something like that.
-
- * *Session offers* - Offers available for the duration of the current session. These have to be inserted
- into the session by some mechanism, but exist to allow functionality such as giving discount to
- users that come from an affiliate site.
-
- In practice, all these offers are loaded and merged into a single set which is then applied to the basket.
-
- When creating an offer, you need to specify which type of offer it is.
-
- Vouchers
- --------
-
- A voucher is essentially a code which links through to a set of basket-level
- offers (see above). Note that you can have any number of vouchers attached to
- a basket.
-
|