PHPackages                             setono/sylius-items-sold-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. setono/sylius-items-sold-plugin

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

setono/sylius-items-sold-plugin
===============================

Sylius Plugin to display items sold on every Product/ProductVariant details admin page.

20[1 PRs](https://github.com/Setono/SyliusItemsSoldPlugin/pulls)PHP

Since Sep 4Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Setono/SyliusItemsSoldPlugin)[ Packagist](https://packagist.org/packages/setono/sylius-items-sold-plugin)[ RSS](/packages/setono-sylius-items-sold-plugin/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

SetonoSyliusItemsSoldPlugin
===========================

[](#setonosyliusitemssoldplugin)

[![Latest Version on Packagist](https://camo.githubusercontent.com/0e5e49366d4833a471cfa3753aa366ce4c166dbae6ac0b6df93b6c8a0eb5923e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7365746f6e6f2f73796c6975732d6974656d732d736f6c642d706c7567696e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/setono/sylius-items-sold-plugin)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Build Status](https://camo.githubusercontent.com/9b993b0cf4051fe7cea5fc5229df69a27e1192fe484bc8b9e403205a9c0720fb/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f5365746f6e6f2f53796c6975734974656d73536f6c64506c7567696e2f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/Setono/SyliusItemsSoldPlugin)[![Quality Score](https://camo.githubusercontent.com/a185082ea4b3c9fec0e66ab6a96af28fec6e63562fc9bdf0d2facaaba2c9ccea/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f5365746f6e6f2f53796c6975734974656d73536f6c64506c7567696e2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/Setono/SyliusItemsSoldPlugin)

Sylius Plugin to display items sold on every Product/ProductVariant details admin page

[![alt text](plugin.png)](plugin.png)

Install
-------

[](#install)

### Add plugin to composer.json

[](#add-plugin-to-composerjson)

```
composer require setono/sylius-items-sold-plugin
```

### Register plugin at AppKernel.php

[](#register-plugin-at-appkernelphp)

```
# app/AppKernel.php

final class AppKernel extends Kernel
{
    public function registerBundles(): array
    {
        return array_merge(parent::registerBundles(), [
            // ...
            new \Setono\SyliusItemsSoldPlugin\SetonoSyliusItemsSoldPlugin(),
        ]);
    }
}
```

### Add routing

[](#add-routing)

```
# app/config/routing.yml
setono_sylius_items_sold_plugin_admin:
    resource: "@SetonoSyliusItemsSoldPlugin/Resources/config/admin_routing.yml"
    prefix: /admin
```

### Configure plugin (optional)

[](#configure-plugin-optional)

You can omit this step as far as plugin works even without configuration. In that case result will count carts/orders in any (checkout/payment/shipment) states without any interval limitation and will not be cached.

But lets suppose we need to:

- See how much times every item was sold last 14 days
- Cache that values for 30 mins (1800 seconds) to decrease server load a bit
- We don't want to count orders in states other than in *payed* and *shipped*

```
# app/config/config.yml
services:
    app.setono_sylius_items_sold.cache:
        class: Symfony\Component\Cache\Simple\FilesystemCache
        arguments:
            - ''
            - 0
            - "%kernel.cache_dir%/items-sold"

setono_sylius_items_sold:
    cache:
        service: 'app.setono_sylius_items_sold.cache'
        ttl: 1800
    interval: 14
    payment_states:
        - paid
    shipping_states:
        - shipped
```

Tips:

- Don't forget to clean cache after changing `interval` parameter.
- Don't specify `interval` if you wish to count even items added to carts (as far as cart doesn't have order date at `checkoutCompletedAt` field)
- Discover `Setono\SyliusItemsSoldPlugin\DependencyInjection\Configuration`for more info about config options

(Manually) Test plugin
======================

[](#manually-test-plugin)

- Run application: (by default application have default config at `dev` environment and example config from `Configure plugin` step at `prod` environment)

    ```
    SYMFONY_ENV=dev
    cd tests/Application && \
        yarn install && \
        yarn run gulp && \
        bin/console assets:install web -e $SYMFONY_ENV && \
        bin/console doctrine:database:create -e $SYMFONY_ENV && \
        bin/console doctrine:schema:create -e $SYMFONY_ENV && \
        bin/console sylius:fixtures:load -e $SYMFONY_ENV && \
        bin/console server:run -d web -e $SYMFONY_ENV
    ```
- Log in at `http://localhost:8000/admin`with Sylius demo credentials:

    ```
    Login: sylius@example.com
    Password: sylius

    ```
- Go to any product edit page like `http://localhost:8000/admin/products/1`
- Or to product variant page like `http://localhost:8000/admin/products/1/variants/1/edit`
- See how much that item was ordered (or even added to cart depending on config)

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2412177?v=4)[Joachim Løvgaard](/maintainers/loevgaard)[@loevgaard](https://github.com/loevgaard)

---

Top Contributors

[![igormukhingmailcom](https://avatars.githubusercontent.com/u/6544038?v=4)](https://github.com/igormukhingmailcom "igormukhingmailcom (11 commits)")

---

Tags

phpsyliussylius-pluginsymfony

### Embed Badge

![Health badge](/badges/setono-sylius-items-sold-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/setono-sylius-items-sold-plugin/health.svg)](https://phpackages.com/packages/setono-sylius-items-sold-plugin)
```

###  Alternatives

[amstaffix/pagination

Simple pagination

46290.4k6](/packages/amstaffix-pagination)[faonni/module-smart-category

SmartCategory module is a base of Smart Categories functionality.

8289.3k3](/packages/faonni-module-smart-category)[sitegeist/silhouettes

Preconfigure property-silhuettes that can be applied to various properties of multiple NodeTypes.

16157.5k](/packages/sitegeist-silhouettes)[michaeljennings/refinery

A php class to refine data into a set format.

129.5k2](/packages/michaeljennings-refinery)

PHPackages © 2026

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