PHPackages                             urbanara/catalog-promotion-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. urbanara/catalog-promotion-plugin

ActiveSylius-bundle[Utility &amp; Helpers](/categories/utility)

urbanara/catalog-promotion-plugin
=================================

Catalog promotion extension for Sylius.

v1.0.0-alpha.12(8y ago)086MITPHPPHP ^7.1

Since Jun 5Pushed 7y agoCompare

[ Source](https://github.com/akorchaginn/UrbanaraCatalogPromotionPlugin)[ Packagist](https://packagist.org/packages/urbanara/catalog-promotion-plugin)[ RSS](/packages/urbanara-catalog-promotion-plugin/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (22)Versions (14)Used By (0)

Urbanara Catalog Promotion Plugin [![License](https://camo.githubusercontent.com/f471a5548dafcf076332195c1ad9f916c741c44ebbb18431a55a967ed072ef05/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f757262616e6172612f636174616c6f672d70726f6d6f74696f6e2d706c7567696e2e737667)](https://packagist.org/packages/urbanara/catalog-promotion-plugin) [![Version](https://camo.githubusercontent.com/21c53e65ce5ad286596e2b6ea856729eab67820ac395de5b4479931b1ea424cf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f757262616e6172612f636174616c6f672d70726f6d6f74696f6e2d706c7567696e2e737667)](https://packagist.org/packages/urbanara/catalog-promotion-plugin) [![Build status on Linux](https://camo.githubusercontent.com/e8d290520dff55b5ff5b4db9b0439a3e0cade151f863cbfbd18d4fb7f521f223/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f555242414e4152412f557262616e617261436174616c6f6750726f6d6f74696f6e506c7567696e2f6d61737465722e737667)](http://travis-ci.org/URBANARA/UrbanaraCatalogPromotionPlugin) [![Scrutinizer Quality Score](https://camo.githubusercontent.com/c9f4835cfae68891833592a89e65b89947130a3e75014d05afb9dc5c554f6106/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f555242414e4152412f557262616e617261436174616c6f6750726f6d6f74696f6e506c7567696e2e737667)](https://scrutinizer-ci.com/g/URBANARA/UrbanaraCatalogPromotionPlugin/)
======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#urbanara-catalog-promotion-plugin----)

Plugin provides basic functionality of catalog promotion on a top of [Sylius platform](https://github.com/Sylius/Sylius)

Installation
------------

[](#installation)

1. Add plugin to your vendors:

```
$ composer require urbanara/catalog-promotion-plugin
```

2. Extend config files:

    1. Import project config:

        ```
        # app/config/config.yml

        imports:
            ...
            - { resource: "@CatalogPromotionPlugin/Resources/config/app/grid.yml" }
        ```
    2. Import project routing:

        ```
        # app/config/routing.yml
        ...

        urbanara_catalog_plugin:
            resource: "@CatalogPromotionPlugin/Resources/config/routing.yml"
            prefix: /admin
        ```
    3. Add plugin to AppKernel:

        ```
        // app/AppKernel.php

        $bundles = [
           ...
            new \Urbanara\CatalogPromotionPlugin\CatalogPromotionPlugin(),
        ];
        ```
    4. Extend gulp file with following script:

        ```
        // Gulpfile.js

        gulp.task('catalog-promotion', function() {
            return gulp.src([
                'node_modules/jquery/dist/jquery.min.js',
                'vendor/sylius/sylius/src/Sylius/Bundle/UiBundle/Resources/private/js/sylius-prototype-handler.js',
                'vendor/sylius/sylius/src/Sylius/Bundle/UiBundle/Resources/private/js/sylius-form-collection.js',
                'vendor/urbanara/catalog-promotion-plugin/src/Resources/public/**'
            ])
                .pipe(concat('app.js'))
                .pipe(sourcemaps.write('./'))
                .pipe(gulp.dest('web/assets/catalog/' + 'js/'))
                ;
        });

        gulp.task('default', ['admin', 'shop', 'catalog-promotion']);
        ```
3. To support `SyliusElasticSearchPlugin` apply the following changes:

    1. Configure ONGR in `app/config/config.yml`:

        ```
        # app/config/config.yml

        ongr_elasticsearch:
            managers:
                default:
                    index:
                        index_name: sylius
                    mappings:
                        CatalogPromotionPlugin:
                            document_dir: ElasticSearch\Document
        ```
    2. Add required bundles to `app/AppKernel.php`:

        ```
        // app/AppKernel.php

        $bundles = [
            // ...
            new \Sylius\ElasticSearchPlugin\SyliusElasticSearchPlugin(),
            new \ONGR\ElasticsearchBundle\ONGRElasticsearchBundle(),
            new \ONGR\FilterManagerBundle\ONGRFilterManagerBundle(),
            new \SimpleBus\SymfonyBridge\SimpleBusCommandBusBundle(),
            new \SimpleBus\SymfonyBridge\SimpleBusEventBusBundle(),
        ];
        ```
4. If you want to see strikeout prices in your shop you need to customize templates on your own. A sample customization is available under `tests/Application/app/Resources/SyliusShopBundle`

Usage
-----

[](#usage)

Plugin provides basic crud functionality for catalog promotion as well as processor which will influence unit price of bought items. In addition, a twig helper is provided, which will return a ValueObject with old and current price.

Plugin supports catalog promotion with start date, ends date, promotion prioritization, custom promotion per channel, exclusive promotions. By default plugin provides two rules which will reduce a number of influenced items and two action. Rules:

- Is product - the promotion will be applied only to the products selected in select box.
- Is from taxon - the promotion will be applied only to the products which has at least one taxon from selected taxons in select box.

Actions:

- Fixed value action - will reduce the price of product by fixed value. Value is set per channel.
- Percentage action - will reduce the price of product by a percentage.

All features are described in `features/` section.

###  Health Score

25

—

LowBetter than 36% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~42 days

Total

12

Last Release

3069d ago

PHP version history (2 changes)v1.0.0-alpha.1PHP ^7.0

v1.0.0-alpha.2PHP ^7.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20842442?v=4)[Alexey](/maintainers/akorchaginn)[@akorchaginn](https://github.com/akorchaginn)

---

Top Contributors

[![lchrusciel](https://avatars.githubusercontent.com/u/6213903?v=4)](https://github.com/lchrusciel "lchrusciel (88 commits)")[![pamil](https://avatars.githubusercontent.com/u/1897953?v=4)](https://github.com/pamil "pamil (39 commits)")[![manuelgomez-urbanara](https://avatars.githubusercontent.com/u/28291477?v=4)](https://github.com/manuelgomez-urbanara "manuelgomez-urbanara (38 commits)")[![klederson](https://avatars.githubusercontent.com/u/25665?v=4)](https://github.com/klederson "klederson (7 commits)")[![akorchaginn](https://avatars.githubusercontent.com/u/20842442?v=4)](https://github.com/akorchaginn "akorchaginn (5 commits)")[![marcelsud](https://avatars.githubusercontent.com/u/380226?v=4)](https://github.com/marcelsud "marcelsud (4 commits)")[![pjedrzejewski](https://avatars.githubusercontent.com/u/614970?v=4)](https://github.com/pjedrzejewski "pjedrzejewski (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/urbanara-catalog-promotion-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/urbanara-catalog-promotion-plugin/health.svg)](https://phpackages.com/packages/urbanara-catalog-promotion-plugin)
```

###  Alternatives

[akeneo/pim-community-dev

Akeneo PIM, the future of catalog management is open!

1.0k620.8k86](/packages/akeneo-pim-community-dev)[sylius/refund-plugin

Plugin provides basic refunds functionality for Sylius application.

691.7M17](/packages/sylius-refund-plugin)[mapbender/mapbender

Mapbender library

10418.0k7](/packages/mapbender-mapbender)[webgriffe/sylius-table-rate-shipping-plugin

Provides table rate shipping calculator.

1492.4k](/packages/webgriffe-sylius-table-rate-shipping-plugin)[monsieurbiz/sylius-menu-plugin

This plugins allows you to manage menus.

1576.6k1](/packages/monsieurbiz-sylius-menu-plugin)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
