PHPackages                             mangoweb-sylius/sylius-extended-channels - 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. mangoweb-sylius/sylius-extended-channels

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

mangoweb-sylius/sylius-extended-channels
========================================

Extended channels plugin for Sylius

v2.1.0(5mo ago)1318.8k↓69.6%7[1 issues](https://github.com/mangoweb-sylius/SyliusExtendedChannelsPlugin/issues)MITPHPPHP ^8.3CI passing

Since Feb 28Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/mangoweb-sylius/SyliusExtendedChannelsPlugin)[ Packagist](https://packagist.org/packages/mangoweb-sylius/sylius-extended-channels)[ RSS](/packages/mangoweb-sylius-sylius-extended-channels/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (48)Versions (22)Used By (0)

 [ ![](https://avatars0.githubusercontent.com/u/38423357?s=200&v=4) ](https://www.mangoweb.cz/en/)

Extended Channels Plugin
 [ ![](https://camo.githubusercontent.com/aa562b5bccbb3b13639b251ecf77d140c3a5de3b47dfe4d193443daf788686fc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d616e676f7765622d73796c6975732f73796c6975732d657874656e6465642d6368616e6e656c732e737667) ](https://packagist.org/packages/mangoweb-sylius/sylius-extended-channels "License") [ ![](https://camo.githubusercontent.com/63990d1e4c7f195f249b2d45a70aa70711fd98de6028bec26305c4b54864ccf0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d616e676f7765622d73796c6975732f73796c6975732d657874656e6465642d6368616e6e656c732e737667) ](https://packagist.org/packages/mangoweb-sylius/sylius-extended-channels "Version") [ ![](https://camo.githubusercontent.com/6b1072dfed4b1ed2db2cf2071b2ae8f519f1cc52fb7136e00f3b9ae6d773fe7c/68747470733a2f2f636972636c6563692e636f6d2f67682f6d616e676f7765622d73796c6975732f53796c697573457874656e6465644368616e6e656c73506c7567696e2e7376673f7374796c653d736869656c64) ](https://app.circleci.com/pipelines/github/mangoweb-sylius/SyliusExtendedChannelsPlugin "Build status")
 [![Approved by Sylius](https://camo.githubusercontent.com/5b98e02f3693c16fd3f40037251d70ca5e1ecd2a11608dd21c9c7e3933b8942e/68747470733a2f2f73796c6975732e636f6d2f6173736574732f62616467652d617070726f7665642d62792d73796c6975732e706e67)](https://camo.githubusercontent.com/5b98e02f3693c16fd3f40037251d70ca5e1ecd2a11608dd21c9c7e3933b8942e/68747470733a2f2f73796c6975732e636f6d2f6173736574732f62616467652d617070726f7665642d62792d73796c6975732e706e67)
=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#extended-channels-plugin--------------------------------------------------------)

Features
--------

[](#features)

- Duplicate product and product variant
- Bulk action to set categories for products
- Mark Taxon as an external link so taxonomy can be used for creating custom menus with links anywhere
- Download current exchange rates
- Update product prices using downloaded or custom exchange rates
- Set channel timezone (see [Optional](#Optional) bellow for loading timezones data)
- Set channel phone (deprecated, use standard Sylius *Contact phone number* instead)
- Send a copy of order email to a custom email address (BCC) per channel
- When SMTP is unavailable, it prevents error 500 on order submit but logs the error and submits the order
- Cancel unpaid orders for a certain payment method
- Allows changing code for the product and product variant
- Administration for Hello Bars (you can use your own types)

 [![](https://raw.githubusercontent.com/mangoweb-sylius/SyliusExtendedChannelsPlugin/master/doc/admin.png)](https://raw.githubusercontent.com/mangoweb-sylius/SyliusExtendedChannelsPlugin/master/doc/admin.png)

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

[](#installation)

1. Run `$ composer require mangoweb-sylius/sylius-extended-channels`.
2. Add plugin classes to your `config/bundles.php`:

    ```
    return [
       ...
       MangoSylius\ExtendedChannelsPlugin\MangoSyliusExtendedChannelsPlugin::class => ['all' => true],
    ];
    ```
3. Your Entity `Channel` has to implement `\MangoSylius\ExtendedChannelsPlugin\Model\ExtendedChannelInterface`. You can use Trait `MangoSylius\ExtendedChannelsPlugin\Model\ExtendedChannelTrait`.
4. Your Entity `Taxon` has to implement `\MangoSylius\ExtendedChannelsPlugin\Model\ExternalLinkTaxonInterface`. You can use Trait `MangoSylius\ExtendedChannelsPlugin\Model\ExternalLinkTaxonTrait`.
5. Add `{{ form_row(form.externalLink) }}` to template in `@SyliusAdmin/Taxon/_form.html.twig`.
6. Replace inner content of ` ... ` with `{{ include('@MangoSyliusExtendedChannelsPlugin/Grid/bulkActions.html.twig') }}` in `@SyliusUi/Grid/Body/_navigation.html.twig`.
7. Replace inner content of ` ... ` with `{{ include('@MangoSyliusExtendedChannelsPlugin/Grid/bulkActions.html.twig') }}` in `@SyliusAdmin/Grid/_default.html.twig`.
8. Add resource to `config/packeges/_sylius.yaml`

    ```
    # config/packages/_sylius.yaml
    imports:
         ...
         - { resource: "@MangoSyliusExtendedChannelsPlugin/config/resources.yaml" }
    ```
9. Add routing to `config/routes.yaml`

    ```
    # config/routes.yaml
    mango_extended_channels_plugin:
        resource: "@MangoSyliusExtendedChannelsPlugin/config/routing.yaml"
        prefix: "/%sylius_admin.path_name%"
    ```

For guide to use your own entity see [Sylius docs - Customizing Models](https://docs.sylius.com/en/1.7/customization/model.html)

### Optional

[](#optional)

Run `src/Migrations/basic-data/timezones-data.sql` for load the timezones table. (Recommended, otherwise the timezone select will be empty)

Usage
-----

[](#usage)

### Commands

[](#commands)

- Updates exchange rates (you need to define currencies first in Sylius admin)

    ```
    mango:exchange-rates:update
    ```
- Update Product prices by exchange rates, from `sourceChannel` (primary value, won't be changed) to `targetChannel`. You can run this after the previous command to update by downloaded rates, or you can run it without the previous one to update the prices with your custom exchange rates set in Sylius admin.

    ```
    mango:product:update-price sourceChannel targetChannel
    ```
- Remove orders that are not paid for a configured period and for certain shipping methods. This allows to keep unpaid orders which are e.g. to be paid at personal pickup, therefore needs to stay unpaid for a couple of hours / days. Configuration parameters:

    - `sylius_order.order_expiration_period`
    - `sylius_order.expiration_method_codes`

    ```
    mango:cancel-unpaid-orders
    ```
- You can use events to modify an object when you duplicate it

    - `mango-sylius-extended-channels.duplicate.product.before-persist`
    - `mango-sylius-extended-channels.duplicate.product.after-persist`
    - `mango-sylius-extended-channels.duplicate.product-variant.before-persist`
    - `mango-sylius-extended-channels.duplicate.product-variant.after-persist`
- You can use event after bulk category assignment

    - `mango-sylius-extended-channels.products.after_bulk_categories`
- You can change the types of Hello bars

    ```
    parameters:
        mangoweb_sylius_extended_channels_hello_bar_types:
            error: 'Error'
            success: 'Success'
            info: 'Info'
            warning: 'Warning'
    ```
- Use the Twig function for listing Hello Bars

    - `mangoweb_sylius_available_hello_bars()`
    - `mangoweb_sylius_available_hello_bars_by_type(type)`

Development
-----------

[](#development)

### Usage

[](#usage-1)

- Create symlink from .env.dist to .env or create your own .env file
- Develop your plugin in `/src`
- See `bin/` for useful commands

### Testing

[](#testing)

After your changes you must ensure that the tests are still passing.

```
$ composer install
$ bin/console doctrine:schema:create -e test
$ bin/behat
$ bin/phpstan.sh
$ bin/ecs.sh
```

License
-------

[](#license)

This library is under the MIT license.

Credits
-------

[](#credits)

Developed by [manGoweb](https://www.mangoweb.eu/).

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance75

Regular maintenance activity

Popularity34

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity85

Battle-tested with a long release history

 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 ~184 days

Recently: every ~101 days

Total

15

Last Release

103d ago

Major Versions

v0.4.1 → v1.0.02020-04-28

v1.5.0 → v2.0.02025-10-02

PHP version history (5 changes)v0.2.0PHP ^7.1

v1.0.0PHP ^7.3

v1.4.0PHP ^8.0

v2.0.0PHP ^8.2

v2.1.0PHP ^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2500352?v=4)[Johan Hornof](/maintainers/hornofj)[@hornofj](https://github.com/hornofj)

![](https://avatars.githubusercontent.com/u/13216499?v=4)[Vašo](/maintainers/VasoOppelt)[@VasoOppelt](https://github.com/VasoOppelt)

---

Top Contributors

[![ondrej-kuhnel](https://avatars.githubusercontent.com/u/6840281?v=4)](https://github.com/ondrej-kuhnel "ondrej-kuhnel (20 commits)")[![jaroslavtyc](https://avatars.githubusercontent.com/u/2290225?v=4)](https://github.com/jaroslavtyc "jaroslavtyc (9 commits)")[![hornofj](https://avatars.githubusercontent.com/u/2500352?v=4)](https://github.com/hornofj "hornofj (8 commits)")[![MathieuDelmarre](https://avatars.githubusercontent.com/u/60355887?v=4)](https://github.com/MathieuDelmarre "MathieuDelmarre (2 commits)")[![radekbernatek](https://avatars.githubusercontent.com/u/3998427?v=4)](https://github.com/radekbernatek "radekbernatek (2 commits)")[![xdanik](https://avatars.githubusercontent.com/u/7594682?v=4)](https://github.com/xdanik "xdanik (1 commits)")

---

Tags

syliussylius-plugin

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StyleECS

Type Coverage Yes

### Embed Badge

![Health badge](/badges/mangoweb-sylius-sylius-extended-channels/health.svg)

```
[![Health](https://phpackages.com/badges/mangoweb-sylius-sylius-extended-channels/health.svg)](https://phpackages.com/packages/mangoweb-sylius-sylius-extended-channels)
```

###  Alternatives

[sylius/refund-plugin

Plugin provides basic refunds functionality for Sylius application.

701.8M20](/packages/sylius-refund-plugin)[stefandoorn/sitemap-plugin

Sitemap Plugin for Sylius

841.1M1](/packages/stefandoorn-sitemap-plugin)[monsieurbiz/sylius-rich-editor-plugin

A Rich Editor plugin for Sylius.

75416.2k6](/packages/monsieurbiz-sylius-rich-editor-plugin)[odiseoteam/sylius-vendor-plugin

Vendor plugin for Sylius. Add Vendor (Brand) to your products

6068.4k1](/packages/odiseoteam-sylius-vendor-plugin)[synolia/sylius-scheduler-command-plugin

Scheduler Command Plugin.

35389.6k](/packages/synolia-sylius-scheduler-command-plugin)[stefandoorn/google-tag-manager-plugin

Google Tag Manager plugin for Sylius.

23292.9k2](/packages/stefandoorn-google-tag-manager-plugin)

PHPackages © 2026

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