Each of us wants to save on purchases, which is why we sign up for the newsletter, collect discount coupons for next purchases, take part in contests. However, these are one-off activities that do not attract customers permanently. This Sylius plugin allows you to get a client for longer. For every purchase on your website, the customer receives points which he can later exchange for discounts.

How does the plugin work?

Sylius Bonus Points plugin offers functionality that allows you to configure rules for your customers so they can earn bonus points for shopping.
Those points have expiration date and can be exchanged by customer for a discount while submitting new order.
1 bonus point = 1 currency discount

Why is it worth implementing a catalog plugin?

  • One strategy can have multiple rules attached,
  • Rules are easily extendable in code,
  • Customers are motivated to buy your products as they will get additional points in return,
  • Points have expiry date that can also motive customers to place another order and use them.

Key features for bonus points strategies

  • Possibility to extend rule set,
  • Amount of bonus points can be added statically per order or as a percentage of product price.

Plugin Configuration

Plugin configuration is available in Sylius Administration Panel in the left sidebar by clicking Bonus points strategies in Marketing section.

Step 1 – To add first strategy click on the Create button on the right side of the bonus points panel

Step 2 – Chose calculation option (per order price OR per order item percentage)

In this case we are going to add 10% bonus points per order item price.

Step 3 – Define rules for adding points

In our case, we would like to add bonus points for products in T-Shirt category.

Step 4 – After clicking Create, your new strategy will be created

To check it – got to Marketing → Bonus Points Strategies that would list all available strategies.


After the user order is paid, the customer can use his bonus points during next order.

Bonus points can be used only to lower price of items, not the shipping cost.

Technical Overview

The plugin delivers one Twig function that can be implemented freely in the project:

bitbag_active_bonus_points – fetches amount of bonus points available for currently logged in user

Usage:1{{ (bitbag_active_bonus_points() / 100) | number_format(2) }}

The plugin extends CartType Form by adding bonusPoints of MoneyType to the cart

If you have any questions related to this plugin or want us to create a new one for you, contact us!