setono / sylius-loyalty-plugin
Sylius plugin adding a loyalty program: an append-only points ledger, a rule engine, redemption, tiers and referrals.
Package info
github.com/Setono/sylius-loyalty-plugin
Type:sylius-plugin
pkg:composer/setono/sylius-loyalty-plugin
Fund package maintenance!
Requires
- php: >=8.1
- doctrine/collections: ^1.8 || ^2.1
- doctrine/dbal: ^3.1
- doctrine/orm: ^2.8
- doctrine/persistence: ^3.1
- psr/container: ^1.1 || ^2.0
- psr/log: ^1.0 || ^2.0 || ^3.0
- setono/doctrine-orm-trait: ^1.4
- sylius/core: ^1.0
- sylius/core-bundle: ^1.0
- sylius/resource-bundle: ^1.12
- symfony/config: ^6.4
- symfony/dependency-injection: ^6.4
- symfony/event-dispatcher-contracts: ^3.0
- webmozart/assert: ^1.12
Requires (Dev)
- api-platform/core: ^2.7.16
- babdev/pagerfanta-bundle: ^3.8
- behat/behat: ^3.14
- dama/doctrine-test-bundle: ^8.0
- doctrine/doctrine-bundle: ^2.11
- jms/serializer-bundle: ^4.2
- lexik/jwt-authentication-bundle: ^2.17
- phpstan/phpstan-webmozart-assert: ^2.0
- setono/sylius-plugin-pack: ~1.14.1
- shipmonk/composer-dependency-analyser: ^1.6
- sylius-labs/polyfill-symfony-security: ^1.1.2
- symfony/debug-bundle: ^6.4
- symfony/dotenv: ^6.4
- symfony/intl: ^6.4
- symfony/property-info: ^6.4
- symfony/serializer: ^6.4
- symfony/web-profiler-bundle: ^6.4
- symfony/webpack-encore-bundle: ^1.17.2
- willdurand/negotiation: ^3.1
This package is auto-updated.
Last update: 2026-07-08 10:41:03 UTC
README
A loyalty program for Sylius 1.14. The plugin is built around an append-only points ledger (points are a financial liability, so balances are derived from the ledger and never hand-edited) and is delivered in three phases: points core + rule engine, tiers, and referrals. It integrates natively with Sylius — ResourceBundle CRUD, GridBundle admin listings, the adjustment system for redemption, state-machine callbacks, and shop template events — and is channel-aware (one loyalty account per customer per channel).
Status: under active development; no release is tagged yet. Detailed installation instructions (order entity extension, schema diffing, cron commands) are added as the relevant features land.
Contributing / local development
-
Run
composer create-project --prefer-source --no-install --remove-vcs setono/sylius-loyalty-plugin:dev-master ProjectName
or just click the
Use this templatebutton at the right corner of this repository. -
Run
cd ProjectName && composer install
-
From the plugin skeleton root directory, run the following commands:
php init (cd tests/Application && yarn install) (cd tests/Application && yarn build) (cd tests/Application && bin/console assets:install) (cd tests/Application && bin/console doctrine:database:create) (cd tests/Application && bin/console doctrine:schema:create) (cd tests/Application && bin/console sylius:fixtures:load -n)
-
Start your local PHP server:
symfony serve(see https://symfony.com/doc/current/setup/symfony_server.html for docs)
To be able to set up a plugin's database, remember to configure you database credentials in tests/Application/.env and tests/Application/.env.test.