Promotion handlers

The Spree::PromotionHandler handles promotion activation. If the promotion is eligible , then the promotion can be activated, and finally applied by the Spree::PromotionActions associated with the promotion.

Promotions can be activated in three different ways using subclasses of the Spree::PromotionHandler model:

  • Cart: Activates the promotion when a customer adds a product to their cart. In the Solidus backend, this is the handler used when an administrator assigns the activation method "Apply to all orders" to a promotion.
  • Coupon: Activates the promotion when a customer enters a coupon code during the checkout process.
  • Page: Activates the promotion when a customer visits a specific store URL.


Solidus is an open source platform supported by the community. We encourage everyone using Solidus to contribute back to the documentation and the code.

If you’re interested in contributing to the docs, get started with the contributing guidelines. If you see something that needs fixing and can’t do it yourself, please send us an email.