{"id":43441522,"url":"https://github.com/vtex-apps/recommendation-shelf","last_synced_at":"2026-04-01T17:32:55.346Z","repository":{"id":306078646,"uuid":"218133371","full_name":"vtex-apps/recommendation-shelf","owner":"vtex-apps","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-18T13:09:12.000Z","size":3161,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":15,"default_branch":"master","last_synced_at":"2026-03-19T03:46:17.640Z","etag":null,"topics":["hacktoberfest","srv-search-engagement","store-framework","xp-merch"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vtex-apps.png","metadata":{"files":{"readme":"docs/README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-10-28T19:55:03.000Z","updated_at":"2026-03-18T13:07:42.000Z","dependencies_parsed_at":"2025-07-23T15:23:40.238Z","dependency_job_id":"1fe1e194-8492-4284-9157-3aabf3e3bac5","html_url":"https://github.com/vtex-apps/recommendation-shelf","commit_stats":null,"previous_names":["vtex-apps/recommendation-shelf"],"tags_count":64,"template":false,"template_full_name":null,"purl":"pkg:github/vtex-apps/recommendation-shelf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Frecommendation-shelf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Frecommendation-shelf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Frecommendation-shelf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Frecommendation-shelf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vtex-apps","download_url":"https://codeload.github.com/vtex-apps/recommendation-shelf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vtex-apps%2Frecommendation-shelf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","srv-search-engagement","store-framework","xp-merch"],"created_at":"2026-02-02T22:23:22.237Z","updated_at":"2026-04-01T17:32:55.332Z","avatar_url":"https://github.com/vtex-apps.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e 📢 Use this project, [contribute](https://github.com/vtex-apps/recommendation-shelf) to it, or open issues to help evolve it using [Store Discussion](https://github.com/vtex-apps/store-discussion).\n\n# Recommendation Shelf\n\n\u003e ⚠️ This app is currently under development and research by the VTEX Search and Personalization team. During this phase, it should only be installed on selected accounts participating in the closed beta phase of the [Product Recommendations](https://help.vtex.com/en/tutorial/product-recommendations-beta--2QIexbD2FSXBxELUnFtg7g) feature. For other accounts, installing this app will not have any effect. If you want to adopt this feature for your business, please contact [our Support](https://support.vtex.com/hc/en-us/requests).\n\nThe Recommendation Shelf app is a store component that displays a collection of products using recommendation strategies.\n\n![recommendation-shelf](https://cdn.jsdelivr.net/gh/vtex-apps/recommendation-shelf@master/docs/shelf.png)\n\n\u003e ℹ️ Learn more about [Product Recommendations](https://help.vtex.com/en/tutorial/product-recommendations-beta--2QIexbD2FSXBxELUnFtg7g).\n\n## Before you begin\n\nMost recommendation strategies rely on user navigation data as input. Therefore, your store must be configured with our pixel for the `recommendation-shelf` to work properly. This configuration is managed by the VTEX team, so please wait for our confirmation before proceeding with the integration.\n\n## Installation\n\nThis app uses our store builder with the blocks architecture. To learn more about Store Builder, [click here.](https://help.vtex.com/en/tutorial/understanding-storebuilder-and-stylesbuilder#structuring-and-configuring-our-store-with-object-object)\n\nFollow these steps to use the Recommendation Shelf app in your store:\n\n1. Add the app as a dependency in your store theme. In your `manifest.json` file, add the following to the `dependencies` section:\n\n   ```json\n   \"dependencies\": {\n     \"vtex.recommendation-shelf\": \"2.x\"\n   }\n   ```\n\n2. Add the `recommendation-shelf` block into your app theme where you want the shelf to appear.\n\n3. Customize the behavior of the shelf block.\n\n   The example below shows the following configuration of the `recommendation-shelf` block and its supporting blocks:\n\n   - It creates a `recommendation-shelf#visual-similarity` block that uses the \"VISUAL_SIMILARITY\" recommendation strategy and sets the shelf title to \"Similar items\".\n   - It defines a `list-context.product-list-static` block, which includes the `product-summary.shelf` block and a child slider layout.\n   - It configures the `slider-layout#recommendation-slider` block to control how many items are shown per page on desktop, tablet, and phone, and enables infinite scrolling.\n\n   Example:\n\n   ```json\n   \"recommendation-shelf#visual-similarity\": {\n     \"blocks\": [\"list-context.product-list-static\"],\n     \"props\": {\n       \"campaignVrn\": \"vrn:recommendations:biggy:rec-similar-v2:00318b68-cb1b-4d5a-8b0f-cc7fbcdd014b\",\n       \"title\": \"Similar items\"\n     }\n   },\n   \"list-context.product-list-static\": {\n     \"blocks\": [\n       \"product-summary.shelf\"\n     ],\n     \"children\": [\n       \"slider-layout#recommendation-slider\"\n     ]\n   },\n   \"slider-layout#recommendation-slider\": {\n     \"props\": {\n       \"itemsPerPage\": {\n         \"desktop\": 5,\n         \"tablet\": 3,\n         \"phone\": 2\n       },\n       \"infinite\": true\n     }\n   }\n   ```\n\n4. Customize the product summary (optional).\n\n   The Recommendation Shelf relies on the `slider-layout` and `product-summary.shelf` components. You can further customize the shelf by creating a custom product summary, for example:\n\n   ```json\n   \"product-summary.shelf#custom\": {\n     \"children\": [\n       \"product-summary-name\",\n       \"product-summary-description\",\n       \"product-summary-image\",\n       \"product-summary-price\",\n       \"product-summary-sku-selector\",\n       \"product-summary-buy-button\"\n     ]\n   }\n   ```\n\n   For more information, see the [Product Summary API configuration](https://github.com/vtex-apps/product-summary/blob/master/README.md#configuration).\n\n### Configuration\n\nYou can configure the `recommendation-shelf` block in your theme app using the following props:\n\n### Props\n\nConfigure the `recommendation-shelf` block using the following properties:\n\n| Prop name      | Type      | Description                                                                                                                               | Default value |\n| -------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------- |\n| `title`        | `string`  | Shelf title displayed to users.                                                                                                           | -             |\n| `campaignVrn`  | `string`  | VRN identifier for the recommendation campaign.                                                                                           | -             |\n| `displayTitle` | `boolean` | Whether to show the shelf title (`true`) or hide it (`false`).                                                                            | `true`        |\n| `itemsContext` | `array`   | Context source for items in the recommendation request (`PDP` or `CART`). Useful for enabling shelves on the cart page with `CROSS_SELL`. | `['PDP']`     |\n\n## Recommendation strategies\n\nBelow are the available recommendation strategies that can be used to fetch product suggestions:\n\n| `strategy`          | Description                                                                               | Pages           |\n| ------------------- | ----------------------------------------------------------------------------------------- | --------------- |\n| `TOP_ITEMS`         | Returns the most bought products in the store.                                            | Any             |\n| `PERSONALIZED`      | Returns recommended products based on the last products clicked by the user in the store. | Any             |\n| `LAST_SEEN`         | Returns recommended products based on the last products viewed by the user in the store.  | Any             |\n| `CROSS_SELL`        | Returns complementary products related to the current product or the items in the cart.   | Any             |\n| `VISUAL_SIMILARITY` | Returns products considered visually similar to the current product.                      | `store.product` |\n| `SIMILAR_ITEMS`     | Returns products considered most similar to the current product.                          | `store.product` |\n\n## Troubleshooting\n\nCheck if others have encountered similar issues [here](https://github.com/vtex-apps/recommendation-shelf/issues). Feel free to [open issues](https://github.com/vtex-apps/recommendation-shelf/issues/new) or contribute with pull requests.\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n\n[![All Contributors](https://img.shields.io/badge/all_contributors-0-orange.svg?style=flat-square)](#contributors-)\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n## Contributors ✨\n\nThanks goes to these wonderful people:\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n \n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind are welcome!\n\n\u003c!-- DOCS-IGNORE:end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtex-apps%2Frecommendation-shelf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvtex-apps%2Frecommendation-shelf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvtex-apps%2Frecommendation-shelf/lists"}