Skip to content

IBX-11571: Rendering recommendations outside of Page Builder documented in Dev-doc#3127

Open
julitafalcondusza wants to merge 4 commits into5.0from
IBX-11571
Open

IBX-11571: Rendering recommendations outside of Page Builder documented in Dev-doc#3127
julitafalcondusza wants to merge 4 commits into5.0from
IBX-11571

Conversation

@julitafalcondusza
Copy link
Copy Markdown
Contributor

Question Answer
JIRA Ticket (https://ibexa.atlassian.net/browse/IBX-11571)
Versions 5.0

Rendering recommendations outside of Page Builder (using existing controllers) described in Dev-doc.

Checklist

  • Text renders correctly
  • Text has been checked with vale
  • Description metadata is up to date
  • Redirects cover removed/moved pages
  • Code samples are working
  • PHP code samples have been fixed with PHP CS fixer
  • Added link to this PR in relevant JIRA ticket or code PR

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

Preview of modified files

Preview of modified Markdown:

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 9, 2026

Copy link
Copy Markdown
Member

@alongosz alongosz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I'd mark somehow (maybe with a label) that this portion applies to Headless+(despite mentions of Page Builder).

Copy link
Copy Markdown
Contributor

@adriendupuis adriendupuis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's good, my only concern is the large controller table.

Comment on lines +26 to +39
Any other required parameters are specific to each controller and are detailed in the **Parameters** column of the table below:

|Block name|Controller|Parameters|Recommendation item type|
|----------|----------|----------|------------------------|
|[Content that have been seen along with the item category]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#content-that-have-been-seen-along-with-the-item-category-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\ContentBasedOnProductCategoryBlockController::showAction`|`categoryId` (integer), `limit` (integer), `template` (string)|Content|
|[Most popular content]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-content-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\PopularContentBlockController::showAction`|`limit` (integer), `template` (string)|Content|
|[Most popular products]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-products-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\PopularItemsBlockController::showAction`|`showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[Most popular products in category]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-products-in-category-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\PopularItemsInCategoryBlockController::showAction`|`categoryId` (numeric), `showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[Other customers have also seen]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-seen-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\SimilarItemsBlockController::showAction`|`productCode` (string), `showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[Other customers have also seen this content]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-seen-this-content-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\SimilarContentBlockController::showAction`|`contentId` (integer), `limit` (integer), `template` (string)|Content|
|[Other Customers Have also Purchased block]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-purchased-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\OtherCustomersAlsoPurchasedBlockController::showAction`|`productCode` (string), `limit` (integer), `template` (string)|Product|
|[Personalized content recommendations]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#personalized-content-recommendations-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\UserContentRecommendationsBlockController::showAction`|`limit` (integer), `template` (string)|Content|
|[The Personal Shopping Assistant]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#the-personal-shopping-assistant-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\UserItemRecommendationsBlockController::showAction`|`productCode` (string), `showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[User's item history]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#users-item-history-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\UserItemHistoryBlockController::showAction`|`showInStock` (boolean), `limit` (integer), `template` (string)|Product|
Copy link
Copy Markdown
Contributor

@adriendupuis adriendupuis Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder how this table render with so large cell values.
I tested it locally, it's not too bad but can be improved.

  • As a start, to gain some place, I would remove the namespace and have it in the introduction.
  • I added more new line control (a bit like in https://doc.ibexa.co/en/5.0/discounts/extend_discounts/)
  • I deduplicate the back-slashes and add the parenthesis meaning that this is a class method (and not a class constant)
Suggested change
Any other required parameters are specific to each controller and are detailed in the **Parameters** column of the table below:
|Block name|Controller|Parameters|Recommendation item type|
|----------|----------|----------|------------------------|
|[Content that have been seen along with the item category]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#content-that-have-been-seen-along-with-the-item-category-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\ContentBasedOnProductCategoryBlockController::showAction`|`categoryId` (integer), `limit` (integer), `template` (string)|Content|
|[Most popular content]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-content-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\PopularContentBlockController::showAction`|`limit` (integer), `template` (string)|Content|
|[Most popular products]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-products-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\PopularItemsBlockController::showAction`|`showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[Most popular products in category]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-products-in-category-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\PopularItemsInCategoryBlockController::showAction`|`categoryId` (numeric), `showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[Other customers have also seen]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-seen-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\SimilarItemsBlockController::showAction`|`productCode` (string), `showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[Other customers have also seen this content]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-seen-this-content-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\SimilarContentBlockController::showAction`|`contentId` (integer), `limit` (integer), `template` (string)|Content|
|[Other Customers Have also Purchased block]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-purchased-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\OtherCustomersAlsoPurchasedBlockController::showAction`|`productCode` (string), `limit` (integer), `template` (string)|Product|
|[Personalized content recommendations]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#personalized-content-recommendations-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\UserContentRecommendationsBlockController::showAction`|`limit` (integer), `template` (string)|Content|
|[The Personal Shopping Assistant]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#the-personal-shopping-assistant-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\UserItemRecommendationsBlockController::showAction`|`productCode` (string), `showInStock` (boolean), `limit` (integer), `template` (string)|Product|
|[User's item history]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#users-item-history-block)|`Ibexa\\Bundle\\ConnectorRaptor\\Controller\\Block\\UserItemHistoryBlockController::showAction`|`showInStock` (boolean), `limit` (integer), `template` (string)|Product|
Any other required parameters are specific to each controller and are detailed in the **Parameters** column of the table below.
Those controllers are in the `Ibexa\Bundle\ConnectorRaptor\Controller\Block` namespace.
|Block name|Controller|Parameters|Recommendation item type|
|----------|----------|----------|------------------------|
|[Content that have been seen along with the item category]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#content-that-have-been-seen-along-with-the-item-category-block)|<nobr>`ContentBasedOnProductCategoryBlockController::showAction()`</nobr>|<nobr>`categoryId` (integer),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Content|
|[Most popular content]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-content-block)|<nobr>`PopularContentBlockController::showAction()`</nobr>|<nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Content|
|[Most popular products]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-products-block)|<nobr>`PopularItemsBlockController::showAction()`</nobr>|<nobr>`showInStock` (boolean),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Product|
|[Most popular products in category]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#most-popular-products-in-category-block)|<nobr>`PopularItemsInCategoryBlockController::showAction()`</nobr>|<nobr>`categoryId` (numeric),</nobr><br><nobr>`showInStock` (boolean),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Product|
|[Other customers have also seen]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-seen-block)|<nobr>`SimilarItemsBlockController::showAction()`</nobr>|<nobr>`productCode` (string),</nobr><br><nobr>`showInStock` (boolean),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Product|
|[Other customers have also seen this content]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-seen-this-content-block)|<nobr>`SimilarContentBlockController::showAction()`</nobr>|<nobr>`contentId` (integer),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Content|
|[Other Customers Have also Purchased block]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#other-customers-have-also-purchased-block)|<nobr>`OtherCustomersAlsoPurchasedBlockController::showAction()`</nobr>|<nobr>`productCode` (string),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Product|
|[Personalized content recommendations]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#personalized-content-recommendations-block)|<nobr>`UserContentRecommendationsBlockController::showAction()`</nobr>|<nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Content|
|[The Personal Shopping Assistant]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#the-personal-shopping-assistant-block)|<nobr>`UserItemRecommendationsBlockController::showAction()`</nobr>|<nobr>`productCode` (string),</nobr><br><nobr>`showInStock` (boolean),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Product|
|[User's item history]([[= user_doc =]]/personalization/raptor_integration/raptor_recommendation_blocks/#users-item-history-block)|<nobr>`UserItemHistoryBlockController::showAction()`</nobr>|<nobr>`showInStock` (boolean),</nobr><br><nobr>`limit` (integer),</nobr><br><nobr>`template` (string)</nobr>|Product|

Before:

Image

After:

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants