PHPackages                             cv65kr/sylius-personalized-products - 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. cv65kr/sylius-personalized-products

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

cv65kr/sylius-personalized-products
===================================

Personalized products, choices by machine learning (Prediction IO) for Sylius.

30PHP

Since Jul 14Pushed 7y ago1 watchersCompare

[ Source](https://github.com/cv65kr/SyliusPersonalizedProducts)[ Packagist](https://packagist.org/packages/cv65kr/sylius-personalized-products)[ RSS](/packages/cv65kr-sylius-personalized-products/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Sylius Personalized Products Plugin
===================================

[](#sylius-personalized-products-plugin)

Overview
--------

[](#overview)

I used [Apache PredictionIO](http://predictionio.apache.org/index.html) to create plugin, which shows personalize recommended products, based on watched products.

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

[](#installation)

### Sylius

[](#sylius)

```
composer require cv65kr/sylius-personalized-products
```

Add plugin dependencies to your AppKernel.php file:

```
public function registerBundles()
{
    return array_merge(parent::registerBundles(), [
        ...

        new \cv65kr\SyliusPersonalizedProducts\SyliusPersonalizedProductsPlugin(),
    ]);
}
```

Import required config in your app/config/config.yml file and setup parameters:

```
imports:
    ...

    - { resource: "@SyliusPersonalizedProductsPlugin/Resources/config/services.yml" }

parameters:
    sylius_prediction_event_host: http://machine_learning
    sylius_prediction_event_port: 7070
    sylius_prediction_engine_host: https://machine_learning
    sylius_prediction_engine_port: 8000
    sylius_prediction_key: 'a-mevXQWyArRnxmHvlFKrjHLdjuvhnpqOgYEu8XgvfpLW0RTuPl_wUUQo3ZWQa5F'
```

Import routing in your app/config/routing.yml file:

```
app_personalized_products:
    resource: "@SyliusPersonalizedProductsPlugin/Resources/config/routing.yml"
```

Embed in template:

```
{{ render(path('sylius_personalized_products_controller')) }}
```

**Note 1:** Controller render should be used only for logged customers.

**Note 2:** You can use `limit` and `template` parameres in route.

### Apache PredictionIO

[](#apache-predictionio)

First of all, add in `docker-compose.yml` machine learning:

```
  machine_learning:
      build: ../ml
      ports:
        - "9000:9000"
        - "7070:7070"
        - "8000:8000"
      volumes:
        - /ml/engine:/CustomEngine
```

And go inside container:

```
docker exec -it machine_learning bash
```

Next:

```
cd /CustomEngine
```

We need, download template for 0.9 version:

```
pio template get apache/predictionio-template-recommender --version v0.3.2 MyRecommendation
```

Create API key and paste them in Sylius config parameter - `sylius_prediction_key`:

```
pio app new SyliusPersonalizedProducts
```

Let’s verify that our new app is there with this command:

```
pio app list
```

In Sylius run:

```
bin/console s:p:p
```

And now back into `machine_learning` container

```
cd /CustomEngine/MyRecommendation
```

Build, they may few minutes:

```
pio build --verbose
```

Edit `engine.json`:

```
vim engine.json
```

Change:

```
"appName": "INVALID_APP_NAME"
```

To:

```
"appName": "SyliusPersonalizedProducts"
```

Next train:

Create sample data for training and import them by:

```
pio import --appid 1 --input data-sample.json
```

**Note:** Example sample file, You need modify this file:

Next run:

```
pio train
```

And deploy, hooray!

```
pio deploy
```

Contribution
------------

[](#contribution)

Learn more about our contribution workflow on .

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

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://www.gravatar.com/avatar/1f3abff9c4c57d42563d1d5caaf6a19e9a3d7c67faf58f140b6aff26b47d535f?d=identicon)[cv65kr](/maintainers/cv65kr)

---

Top Contributors

[![cv65kr](https://avatars.githubusercontent.com/u/9404962?v=4)](https://github.com/cv65kr "cv65kr (7 commits)")

### Embed Badge

![Health badge](/badges/cv65kr-sylius-personalized-products/health.svg)

```
[![Health](https://phpackages.com/badges/cv65kr-sylius-personalized-products/health.svg)](https://phpackages.com/packages/cv65kr-sylius-personalized-products)
```

PHPackages © 2026

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