[Recommendation] #1399868 - Add gally recommendation - #47
Open
PierreGauthier wants to merge 3 commits into
Open
Conversation
PierreGauthier
commented
Jul 13, 2026
Contributor
| Q | A |
|---|---|
| Branch? | master for features / current stable version branch for bug fixes |
| Tickets | #... |
| License | OSL-3.0 |
There was a problem hiding this comment.
Pull request overview
This PR introduces Gally-powered product and cart recommendations in the Sylius shop, backed by new channel-level configuration (recommendation type + max sizes) and SDK/indexer integration to sync association types as recommender types.
Changes:
- Add Twig components + templates to render recommendations on product pages (per association type) and in the cart.
- Add channel configuration fields (DB + admin form + translations) to control recommendation behavior.
- Add recommendation plumbing:
RecommendationFinder, SDKRecommenderManagerservice wiring, and indexer provider/subscriber for recommender types.
Reviewed changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/Twig/GallyContext.php | Exposes cart recommendation type code + product association types to Twig. |
| src/Twig/Component/Product/RecommendationComponent.php | New product-page recommendation Twig component. |
| src/Twig/Component/Cart/RecommendationComponent.php | New cart recommendation Twig component. |
| src/Resources/views/shop/product/show/content/product_listing/recommendations.html.twig | Replaces default association rendering with Gally-aware recommendations block. |
| src/Resources/views/shop/product/show/content/product_listing/recommendation.html.twig | Renders a single association-type recommendation section. |
| src/Resources/views/shop/cart/index/content/recommendations.html.twig | Adds cart recommendations hook content with Gally fallback. |
| src/Resources/views/shop/cart/index/content/recommendations_content.html.twig | Renders recommended products grid for the cart. |
| src/Resources/views/admin/channel/form/sections/gally.html.twig | Adds admin UI fields for recommendation configuration. |
| src/Resources/translations/messages.en.yaml | Adds translations for recommendation section + form labels. |
| src/Resources/config/services/twig/component/product.xml | Registers the product recommendation Twig component service. |
| src/Resources/config/services/twig/component/cart.xml | Registers the cart recommendation Twig component service. |
| src/Resources/config/services/twig.xml | Injects product association type repository into GallyContext. |
| src/Resources/config/services/sdk.xml | Registers Gally\Sdk\Service\RecommenderManager. |
| src/Resources/config/services/indexers.xml | Adds recommender type provider + association type subscriber wiring. |
| src/Resources/config/services.xml | Imports cart twig-component services; wires ChannelTypeExtension + RecommendationFinder. |
| src/Resources/config/app/twig_hooks_shop.yml | Disables native hooks and mounts the new recommendation templates. |
| src/Recommendation/RecommendationFinder.php | Implements “hard associations first, then Gally recommendations” resolution. |
| src/Model/GallyChannelTrait.php | Adds new channel fields + typed properties + getters/setters for recommendations. |
| src/Model/GallyChannelInterface.php | Extends channel contract with recommendation-related getters/setters. |
| src/Migrations/Version20260709120000.php | Adds DB columns for recommendation configuration on sylius_channel. |
| src/Indexer/Subscriber/ProductAssociationTypeSubscriber.php | Syncs recommender types on association type create/update events. |
| src/Indexer/Provider/RecommenderTypeProvider.php | Builds Gally recommender types from Sylius association types. |
| src/Form/Extension/ChannelTypeExtension.php | Adds recommendation configuration fields to the channel form. |
| src/Command/StructureSync.php | Allows structure sync command to include recommenderType. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
PierreGauthier
force-pushed
the
feat-reco
branch
from
July 13, 2026 14:46
90c9ffb to
f5ae983
Compare
PierreGauthier
force-pushed
the
feat-reco
branch
from
July 15, 2026 10:21
f5ae983 to
8fe1b3f
Compare
PierreGauthier
force-pushed
the
feat-reco
branch
from
July 27, 2026 09:23
c8a7593 to
8514d73
Compare
PierreGauthier
force-pushed
the
feat-reco
branch
from
July 27, 2026 09:30
8514d73 to
931b685
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.