| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | =======
Signals
=======
Oscar implements a number of custom signals that provide useful hook-points for
adding functionality.
product_viewed
--------------
.. data:: oscar.apps.catalogue.signals.product_viewed
    :class:
Raised when a product detail page is viewed.  
Arguments sent with this signal:
``product``
    The product being viewed
``user``
    The user in question
``request``
    The request instance
``response``
    The response instance
product_search
--------------
.. data:: oscar.apps.catalogue.signals.product_search
    :class:
Raised when a search is performed.
Arguments sent with this signal:
``query``
    The search term
``user``
    The user in question
basket_addition
---------------
.. data:: oscar.apps.basket.signals.basket_addition
    :class:
Raised when a product is added to a basket
Arguments sent with this signal:
``product``
    The product being added
``user``
    The user in question
voucher_addition
----------------
.. data:: oscar.apps.basket.signals.voucher_addition
    :class:
Raised when a valid voucher is added to a basket
Arguments sent with this signal:
``basket``
    The basket in question
``voucher``
    The voucher in question
pre_payment
-----------
.. data:: oscar.apps.checkout.signals.pre_payment
    :class:
Raised immediately before attempting to take payment in the checkout.
Arguments sent with this signal:
``view``
    The view class instance
post_payment
------------
.. data:: oscar.apps.checkout.signals.post_payment
    :class:
Raised immediately after payment has been taken.
Arguments sent with this signal:
``view``
    The view class instance
order_placed
------------
.. data:: oscar.apps.order.signals.order_placed
    :class:
Raised by the :class:`oscar.apps.order.utils.OrderCreator` class when creating an order.
Arguments sent with this signal:
``order``
    The order created
``user``
    The user creating the order (not necessarily the user linked to the order
    instance!)
 |