> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt ## Resource: Service Plugins ## Namespace: ecom-recommendations ## Article: Introduction ## Article Link: https://dev.wix.com/docs/velo/events-service-plugins/e-commerce/service-plugins/ecom-recommendations/introduction.md ## Article Content: # Introduction The Recommendations service plugin (formerly SPI) provides functionality for integrating advanced recommendation algorithms into your Wix site. This allows you to offer personalized product suggestions, enhancing user engagement and overall shopping experience. You can implement custom or external recommendation algorithms that don't come natively with Wix with your eCommerce purchase flows. For example, you can provide recommendations based on user behavior, related products, or other custom logic, enriching how Wix apps such as Wix Stores and Wix Bookings display suggestions to users. Wix eCommerce calls the service plugin endpoint [`getRecommendations()`](https://dev.wix.com/docs/velo/api-reference/wix-ecom-v2/service-plugins-spis/ecom-recommendations/get-recommendations.md) to retrieve the relevant product suggestions. ### Configure your service plugin To configure and customize your plugin, you need to provide important information in the service plugin configuration file. ### Configuration file fields | Name | Type | Description | |----------------------|--------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `catalogAppIds` | Array | Required. App IDs of supported catalogs.

The following are Wix apps that provide catalogs and their app IDs:
Wix Stores: `"215238eb-22a5-4c36-9e7b-e7c08025e04e"`
Wix Bookings: `"13d21c63-b5ec-5912-8397-c3a5ddb27a97"`
Wix Restaurants: `"9a5d83fd-8570-482e-81ab-cfa88942ee60"` | | `supportedAlgorithms`| Array | Required. Recommendation algorithms implemented by the app. See the table below for details on the structure of the supportedAlgorithms object. | ### `supportedAlgorithms` properties | Property | Type | Description | |-----------------|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `reserved` | int | Reserved field with a value of 1. | | `name` | string | Required. Algorithm name. This value is not translatable. | | `description` | string | Required. Algorithm description. This describes how the algorithm works and if it has any limitations regarding site content, number of items in the catalog, site traffic, and so on. This value is not translatable. | | `additionalInfo`| google.protobuf.StringValue | A supplemental `description`. It can be used to help break up and organize information. You can, for example, display this information as a tooltip or as an additional section that is collapsed by default. | | `algorithmType`| enum | Algorithms may have the following types:
* `RELATED_ITEMS` - This type of algorithm provides recommendations based on 1 or more other provided items. For example, when an item is added to a cart, the algorithm can suggest other items frequently bought together with that item.
* `GLOBAL` - This type of algorithm provides general recommendations based on site or project statistics. | | `algorithmId` | string | Required. Algorithm ID. This must be unique for a specific app but does not have to be unique across all apps on the site or in the project. | The following is an example of a valid config file: ```json { "catalogAppIds": ["c567afb8-ac2c-4888-a90c-94933066ae6a"], "supportedAlgorithms": [ { "algorithmId": "945a457f-0a57-4cf4-95a1-95991b545119", "name": "Frequently bought together", "description": "Products frequently bought together with selected one", "algorithmType": "RELATED_ITEMS" }, { "algorithmId": "97f48eb2-4d42-4296-b620-13862dd0353e", "name": "Personalized recommendations", "description": "Personalized recommendations based on user's behavior", "additionalInfo": "Works best when user has a history of interactions with the site", "algorithmType": "GLOBAL" } ] } ``` Learn more: + [Tutorial: Recommendations Service Plugin](https://dev.wix.com/docs/develop-websites/articles/code-tutorials/wix-e-commerce-stores/tutorial-e-commerce-recommendations-service-plugin.md) + [Custom App Extensions Using Service Plugins](https://support.wix.com/en/article/velo-custom-business-app-extensions-using-spis-beta) ### To add a service plugin 1. [Add the plugin to your site](https://dev.wix.com/docs/develop-websites/articles/coding-with-velo/integrations/custom-extensions-spis/custom-app-extensions-using-sp-is.md#step-1-create-a-new-extension-on-your-wix-site). 2. Update the [`getConfig()`](https://dev.wix.com/docs/velo/api-reference/wix-ecom-v2/service-plugins-spis/ecom-recommendations/get-config.md) function in the **-config.js** file that is added to your site during step 1. 3. Update the [`getRecommendations()`](https://dev.wix.com/docs/velo/api-reference/wix-ecom-v2/service-plugins-spis/ecom-recommendations/get-recommendations.md) function in the **.js** file that is added to your site during step 1.