5. How promotions are applied ?

By using the promotion eligibility checker and the promotion applicator checker services, the promotion processor applies all the possible promotions on a subject.

The promotion processor is defined via the service sylius.promotion_processor which uses the class Sylius\Bundle\PromotionsBundle\Processor\PromotionProcessor. Basically, it calls the method apply of the promotion applicator for all the active promotions that are eligible to the given subject.