| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- ================================
- How to configure stock messaging
- ================================
-
- Stock messaging is controlled on a per-partner basis. A product's stockrecord
- has the following methods for messaging:
-
- .. autoclass:: oscar.apps.partner.abstract_models.AbstractStockRecord
- :members: availability, availability_code
-
- Both these methods delegate to a "partner wrapper" instance. These are defined
- in the ``OSCAR_PARTNER_WRAPPERS`` setting which is a dict mapping from partner
- name to a class path, for instance::
-
- # settings.py
- OSCAR_PARTNER_WRAPPERS = {
- 'Partner A': 'myproject.wrappers.PartnerAWrapper',
- }
-
- The default wrapper is :class:`oscar.apps.partner.wrappers.DefaultWrapper`,
- which provides methods of the same name.
-
- .. autoclass:: oscar.apps.partner.wrappers.DefaultWrapper
- :members: availability, availability_code
-
- Custom wrappers should subclass this class and override the appropriate methods.
- Here's an example wrapper that provides custom availability messaging::
-
- # myproject/wrappers.py
- from oscar.apps.partner import wrappers
-
-
- class PartnerAWrapper(wrappers.DefaultWrapper):
-
- def availability(self, stockrecord):
- if stockrecord.net_stock_level > 0:
- return "Available to buy now!"
- return "Sorry, not available"
-
- def availability_code(self, stockrecord):
- if stockrecord.net_stock_level > 0:
- return "icon_tick"
- return "icon_cross"
|