1. Installation


We’re sorry but this documentation section is outdated. Please have that in mind when trying to use it. You can help us making documentation up to date via Sylius Github. Thank you!

We assume you’re familiar with Composer, a dependency manager for PHP. Use the following command to add the bundle to your composer.json and download the package.

If you have Composer installed globally.

composer require sylius/promotion-bundle

Otherwise you have to download .phar file.

curl -sS https://getcomposer.org/installer | php
php composer.phar require sylius/promotion-bundle

1.1. Adding required bundles to the kernel

You need to enable the bundle inside the kernel.

If you’re not using any other Sylius bundles, you will also need to add SyliusResourceBundle and its dependencies to kernel. Don’t worry, everything was automatically installed via Composer.


// app/AppKernel.php

public function registerBundles()
    $bundles = array(
        new FOS\RestBundle\FOSRestBundle(),
        new JMS\SerializerBundle\JMSSerializerBundle(),
        new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
        new BabDev\PagerfantaBundle\BabDevPagerfantaBundle(),
        new winzou\Bundle\StateMachineBundle\winzouStateMachineBundle(),
        new Sylius\Bundle\ResourceBundle\SyliusResourceBundle(),
        new Sylius\Bundle\PromotionBundle\SyliusPromotionBundle(),

        // Other bundles...
        new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),

1.2. Promotion Subject configuration


You need to have a class that is registered as a Sylius resource. It can be for example a CarRentalOrderClass.

  • Make your CarRentalOrder class implement the PromotionSubjectInterface.

Put its configuration inside your app/config/config.yml.

# app/config/config.yml
                model: App\Entity\CarRentalOrder

And configure doctrine extensions which are used by the bundle.

# app/config/config.yml
            timestampable: true

Congratulations! The bundle is now installed and ready to use.