PHPackages                             spryker-demo/merchant-review-feature - 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. spryker-demo/merchant-review-feature

ActiveMetapackage[Utility &amp; Helpers](/categories/utility)

spryker-demo/merchant-review-feature
====================================

Merchant review \[feature\]

1.0.0(7mo ago)00proprietaryPHP &gt;=8.2CI passing

Since Sep 25Pushed 7mo agoCompare

[ Source](https://github.com/spryker-demo/merchant-review-feature)[ Packagist](https://packagist.org/packages/spryker-demo/merchant-review-feature)[ RSS](/packages/spryker-demo-merchant-review-feature/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (5)Versions (2)Used By (0)

MerchantReviewFeature Module
============================

[](#merchantreviewfeature-module)

[![Minimum PHP Version](https://camo.githubusercontent.com/ec21f169d70b69344c67d6f18fa1a24d20476d2f0cd680e8c4a1534c22f34e5f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230382e322d3838393242462e737667)](https://php.net/)

Merchant Review Feature

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

[](#installation)

### Install feature

[](#install-feature)

```
composer require spryker-demo/merchant-review-feature

```

### Add `SprykerDemo` namespace to configuration

[](#add-sprykerdemo-namespace-to-configuration)

```
$config[KernelConstants::CORE_NAMESPACES] = [
    'SprykerDemo',
    ...
];

```

### Build transfers

[](#build-transfers)

```
console transfer:generate

```

### Wire route provider plugin

[](#wire-route-provider-plugin)

```
# src/Pyz/Yves/Router/RouterDependencyProvider.php

use SprykerDemo\Yves\MerchantReviewWidget\Plugin\Router\MerchantReviewWidgetRouteProviderPlugin;

// ...

public function getRouteProvider(): array
{
    return [
        // ...
        new MerchantReviewWidgetRouteProviderPlugin(),
    ];
});

```

### Wire merchant review widget

[](#wire-merchant-review-widget)

```
# src/Pyz/Yves/ShopApplication/ShopApplicationDependencyProvider.php

use SprykerDemo\Yves\MerchantReviewWidget\Widget\MerchantReviewWidget;

// ...

protected function getGlobalWidgets(): array
{
    return [
        // ...
        MerchantReviewWidget::class,
    ];
});

```

### Apply Twig customization

[](#apply-twig-customization)

```
# src/Pyz/Yves/MerchantProfileWidget/Theme/default/components/molecules/merchant-profile/merchant-profile.twig

{% block body %}

        {{ block('contentInner') }}

    {% widget 'MerchantReviewWidget' args [data.idMerchant] only %}{% endwidget %}

    {{ block('additional') }}
{% endblock %}

```

### Wire search plugins

[](#wire-search-plugins)

```
# src/Pyz/Client/MerchantReviewSearch/MerchantReviewSearchDependencyProvider.php

use Spryker\Client\SearchElasticsearch\Plugin\QueryExpander\PaginatedQueryExpanderPlugin;
use Spryker\Client\SearchElasticsearch\Plugin\ResultFormatter\PaginatedResultFormatterPlugin;
use SprykerDemo\Client\MerchantReviewSearch\Plugin\Elasticsearch\QueryExpander\RatingAggregationQueryExpanderPlugin;
use SprykerDemo\Client\MerchantReviewSearch\Plugin\Elasticsearch\QueryExpander\SortByCreatedAtQueryExpanderPlugin;
use SprykerDemo\Client\MerchantReviewSearch\Plugin\Elasticsearch\ResultFormatter\MerchantReviewsResultFormatterPlugin;
use SprykerDemo\Client\MerchantReviewSearch\Plugin\Elasticsearch\ResultFormatter\RatingAggregationResultFormatterPlugin;
// ...

    /**
     * @return array
     */
    public function getMerchantReviewsQueryExpanderPlugins(): EventSubscriberCollectionInterface
    {
        return [
                // ...
                new PaginatedQueryExpanderPlugin(),
                new RatingAggregationQueryExpanderPlugin(),
                new SortByCreatedAtQueryExpanderPlugin(),
        ];
    }

    /**
     * @return array
     */
    public function getMerchantReviewsSearchResultFormatterPlugins(): array
    {
        return [
                // ...
                new MerchantReviewsResultFormatterPlugin(),
                new PaginatedResultFormatterPlugin(),
                new RatingAggregationResultFormatterPlugin(),
        ];
    }

    /**
     * @return array
     */
    protected function getMerchantRatingAggregationQueryExpanderPlugins(): array
    {
        return [
            new LocalizedQueryExpanderPlugin(),
            new RatingAggregationQueryExpanderPlugin(),
        ];
    }

    /**
     * @return array
     */
    protected function getMerchantRatingAggregationResultFormatterPlugins(): array
    {
        return [
            new RatingAggregationResultFormatterPlugin(),
        ];
    }

```

### Wire publisher plugins

[](#wire-publisher-plugins)

```
# src/Pyz/Zed/Publisher/PublisherDependencyProvider.php

use SprykerDemo\Zed\MerchantReviewSearch\Communication\Plugin\Publisher\MerchantReviewSearchDeletePublisherPlugin;
use SprykerDemo\Zed\MerchantReviewSearch\Communication\Plugin\Publisher\MerchantReviewSearchPublisherTriggerPlugin;
use SprykerDemo\Zed\MerchantReviewSearch\Communication\Plugin\Publisher\MerchantReviewSearchWritePublisherPlugin;

// ...

protected function getPublisherTriggerPlugins(): array
{
    return [
        // ...
        new MerchantReviewSearchPublisherTriggerPlugin(),
    ];
}

protected function getPublisherPlugins(): array
{
    return [
        // ...
        new MerchantReviewSearchDeletePublisherPlugin(),
        new MerchantReviewSearchWritePublisherPlugin(),
    ];
}

```

### Wire queue plugins

[](#wire-queue-plugins)

```
# src/Pyz/Zed/Queue/QueueDependencyProvider.php

use SprykerDemo\Shared\MerchantReviewSearch\MerchantReviewSearchConfig;
// ...

protected function getProcessorMessagePlugins(Container $container): array
{
    return [
        // ...
        MerchantReviewSearchConfig::MERCHANT_REVIEW_SYNC_SEARCH_QUEUE => new SynchronizationSearchQueueMessageProcessorPlugin(),
    ];
}

```

### Configure ACL

[](#configure-acl)

```
# src/Pyz/Zed/AclMerchantPortal/AclMerchantPortalDependencyProvider.php

use SprykerDemo\Zed\MerchantReviewMerchantPortalGui\Communication\Plugin\AclMerchantPortal\MerchantReviewAclEntityConfigurationExpanderPlugin;
use SprykerDemo\Zed\MerchantReviewMerchantPortalGui\Communication\Plugin\AclMerchantPortal\MerchantReviewMerchantPortalGuiMerchantAclRuleExpanderPlugin;

// ...

protected function getAclEntityConfigurationExpanderPlugins(): array
{
    return [
        // ...
        new MerchantReviewAclEntityConfigurationExpanderPlugin(),
    ];
}

protected function getMerchantAclRuleExpanderPlugins(): array
{
    return [
        // ...
        new MerchantReviewMerchantPortalGuiMerchantAclRuleExpanderPlugin(),
    ];
}

```

```
# src/Pyz/Zed/Acl/AclConfig.php

protected function addPyzMerchantPortalInstallerRules(array $installerRules): array
{
    return [
        // ...
        'merchant-review-merchant-portal-gui',
    ];
}

```

### Adjust Navigation configuration file

[](#adjust-navigation-configuration-file)

```

    ...

        ...

            ...

                My Merchant Reviews &amp; Ratings
                My Merchant Reviews &amp; Ratings
                merchant-review-gui
                index
                index

        Merchant Reviews
        Merchant Reviews
        offers
        merchant-review-merchant-portal-gui
        merchant-reviews
        index

```

### Apply Twig customization

[](#apply-twig-customization-1)

```
# src/Pyz/Zed/ProductManagement/Presentation/Index/index.twig

{% block action %}
    {{ createActionButton('/import-process-spreadsheet-gui/index/select-sheet', 'Product Import from Spreadsheet' | trans) }}
    ...
{% endblock %}

```

### Add translations

[](#add-translations)

```
# data/import/common/common/glossary.csv

merchant_review.merchant_ratings,Merchant Ratings,en_US
merchant_review.merchant_ratings,Bewertungen,de_DE
merchant_review.merchant_ratings,Merchant Ratings,fr_FR
merchant_review.merchant_ratings,Merchant Ratings,es_ES
merchant_review.merchant_reviews,Merchant Reviews,en_US
merchant_review.merchant_reviews,Rezensionen,de_DE
merchant_review.merchant_reviews,Merchant Reviews,fr_FR
merchant_review.merchant_reviews,Merchant Reviews,es_ES
merchant_review.on,on,en_US
merchant_review.on,am,de_DE
merchant_review.on,on,fr_FR
merchant_review.on,on,es_ES
merchant_review.summary.star,star,en_US
merchant_review.summary.star,Stern,de_DE
merchant_review.summary.star,étoile,fr_FR
merchant_review.summary.star,estrella,es_ES
merchant_review.summary.stars,stars,en_US
merchant_review.summary.stars,Sterne,de_DE
merchant_review.summary.stars,étoiles,fr_FR
merchant_review.summary.stars,estrellas,es_ES
merchant_review.summary.out_of,out of,en_US
merchant_review.summary.out_of,von,de_DE
merchant_review.summary.out_of,hors de,fr_FR
merchant_review.summary.out_of,fuera de,es_ES
merchant_review.summary.review,review,en_US
merchant_review.summary.review,Bewertung,de_DE
merchant_review.summary.review,commentaire,fr_FR
merchant_review.summary.review,reseña,es_ES
merchant_review.summary.reviews,reviews,en_US
merchant_review.summary.reviews,Bewertungen,de_DE
merchant_review.summary.reviews,commentaires,fr_FR
merchant_review.summary.reviews,reseñas,es_ES
merchant_review.summary.title,Merchant Reviews & Ratings,en_US
merchant_review.summary.title,Händlerbewertungen,de_DE
merchant_review.summary.title,Merchant Reviews & Ratings,fr_FR
merchant_review.summary.title,Merchant Reviews & Ratings,es_ES
merchant_review.no_reviews,No review for this merchant yet,en_US
merchant_review.no_reviews,Noch keine Bewertung für diesen Händler,de_DE
merchant_review.no_reviews,No review for this merchant yet,fr_FR
merchant_review.no_reviews,No review for this merchant yet,es_ES
merchant_review.submit.add_a_review,Add a Review,en_US
merchant_review.submit.add_a_review,Bewertung hinzufügen,de_DE
merchant_review.submit.add_a_review,Ajouter un commentaire,fr_FR
merchant_review.submit.add_a_review,Agrega una reseña,es_ES
merchant_review.submit.rating,Rating,en_US
merchant_review.submit.rating,Bewertung,de_DE
merchant_review.submit.rating,Notation,fr_FR
merchant_review.submit.rating,Clasificación,es_ES
merchant_review.submit.rating.none,No rating was selected,en_US
merchant_review.submit.rating.none,Es wurde keine Bewertung ausgewählt,de_DE
merchant_review.submit.rating.none,No rating was selected,fr_FR
merchant_review.submit.rating.none,No rating was selected,es_ES
merchant_review.submit.summary,Summary,en_US
merchant_review.submit.summary,Überschrift,de_DE
merchant_review.submit.summary,Résumé,fr_FR
merchant_review.submit.summary,Resumen,es_ES
merchant_review.submit.description,Description,en_US
merchant_review.submit.description,Rezension,de_DE
merchant_review.submit.description,Description,fr_FR
merchant_review.submit.description,Descripción,es_ES
merchant_review.submit.nickname,Name,en_US
merchant_review.submit.nickname,Name,de_DE
merchant_review.submit.nickname,Nom,fr_FR
merchant_review.submit.nickname,Nombre,es_ES
merchant_review.submit.success,Merchant review was successfully submitted.,en_US
merchant_review.submit.success,Rezensionen wurde erfolgreich versendet.,de_DE
merchant_review.submit.success,Merchant review was successfully submitted.,fr_FR
merchant_review.submit.success,Merchant review was successfully submitted.,es_ES
merchant_review.error.no_customer,Please login to access this feature.,en_US
merchant_review.error.no_customer,"Bitte melden Sie sich an, um Zugiff auf dieses Feature zu erhalten.",de_DE
merchant_review.error.no_customer,Please login to access this feature.,fr_FR
merchant_review.error.no_customer,Please login to access this feature.,es_ES
merchant_review.error.invalid_rating,Merchant rating should be selected.,en_US
merchant_review.error.invalid_rating,Bewertungen soll ausgewählt werden.,de_DE
merchant_review.error.invalid_rating,Merchant rating should be selected.,fr_FR
merchant_review.error.invalid_rating,Merchant rating should be selected.,es_ES
merchant_review.error.no_blank_nickname,Please fill the Nickname.,en_US
merchant_review.error.no_blank_nickname,Bitte geben Sie den Spitznamen ein.,de_DE
merchant_review.error.no_blank_nickname,Please fill the Nickname.,fr_FR
merchant_review.error.no_blank_nickname,Please fill the Nickname.,es_ES
merchant_review.error.no_blank_summary,Please fill the summary.,en_US
merchant_review.error.no_blank_summary,Bitte füllen Sie die Zusammenfassung aus.,de_DE
merchant_review.error.no_blank_summary,Please fill the summary.,fr_FR
merchant_review.error.no_blank_summary,Please fill the summary.,es_ES
merchant_review.error.no_blank_description,Please fill the description.,en_US
merchant_review.error.no_blank_description,Bitte füllen Sie die Beschreibung aus.,de_DE
merchant_review.error.no_blank_description,Please fill the description.,fr_FR
merchant_review.error.no_blank_description,Please fill the description.,es_ES
merchant_review.reviews,Reviews,en_US
merchant_review.reviews,Bewertungen,de_DE
merchant_review.reviews,Reviews,fr_FR
merchant_review.reviews,Reviews,es_ES

```

### Import translations

[](#import-translations)

```
console data:import:glossary

```

### Add `synchronization` Propel behavior

[](#add-synchronization-propel-behavior)

```

```

### Add `event` Propel behavior

[](#add-event-propel-behavior)

```

```

### Build Propel classes

[](#build-propel-classes)

```
console propel:install

```

### Build Backoffice frontend

[](#build-backoffice-frontend)

```
frontend:zed:install-dependencies
frontend:zed:build

```

### Build Yves frontend

[](#build-yves-frontend)

```
frontend:yves:install-dependencies
frontend:yves:build

```

### Build MP frontend

[](#build-mp-frontend)

```
frontend:mp:install-dependencies
frontend:mp:build

```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance63

Regular maintenance activity

Popularity0

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 60% 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

229d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c6756c39a921146991fee6b4090f4130af143ee3aa7a776b688365c5f3d5b511?d=identicon)[spryker\_solution\_consulting\_demos](/maintainers/spryker_solution_consulting_demos)

---

Top Contributors

[![geronica](https://avatars.githubusercontent.com/u/86779768?v=4)](https://github.com/geronica "geronica (3 commits)")[![asaulenko](https://avatars.githubusercontent.com/u/20285714?v=4)](https://github.com/asaulenko "asaulenko (1 commits)")[![devvent](https://avatars.githubusercontent.com/u/4672959?v=4)](https://github.com/devvent "devvent (1 commits)")

### Embed Badge

![Health badge](/badges/spryker-demo-merchant-review-feature/health.svg)

```
[![Health](https://phpackages.com/badges/spryker-demo-merchant-review-feature/health.svg)](https://phpackages.com/packages/spryker-demo-merchant-review-feature)
```

###  Alternatives

[muqsit/simple-packet-handler

Handle specific data packets (virion for PMMP API 4.0.0)

426.1k3](/packages/muqsit-simple-packet-handler)[webdevstudios/taxonomy_core

A tool to make custom taxonomy registration just a bit simpler. Automatically registers taxonomy labels, and provides helpful methods.

394.0k1](/packages/webdevstudios-taxonomy-core)[metabolism/wp-steroids

Supercharge Wordpress with YML configuration, increase performance and security

237.1k1](/packages/metabolism-wp-steroids)[zman/zman

A Jewish date converter and helper.

186.4k](/packages/zman-zman)[pudongping/hyperf-wise-locksmith

A mutex library provider for the Hyperf framework, designed to enable serialized execution of PHP code in high-concurrency scenarios.

106.3k2](/packages/pudongping-hyperf-wise-locksmith)

PHPackages © 2026

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