setono/sylius-loyalty-plugin

Sylius plugin adding a loyalty program: an append-only points ledger, a rule engine, redemption, tiers and referrals.

Maintainers

Package info

github.com/Setono/sylius-loyalty-plugin

Type:sylius-plugin

pkg:composer/setono/sylius-loyalty-plugin

Transparency log

Fund package maintenance!

Setono

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 4


README

Latest Version Software License Build Status Code Coverage Mutation testing

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

  1. Run

    composer create-project --prefer-source --no-install --remove-vcs setono/sylius-loyalty-plugin:dev-master ProjectName

    or just click the Use this template button at the right corner of this repository.

  2. Run

    cd ProjectName && composer install
  3. 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)
  4. 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.