Recommendations

Recommendations provide shop users with suggested products, such as on a product detail page. You can also create cart-based or top seller recommendations. The possibilities are endless! To utilize these capabilities fully, we will guide you through them on this page.


Configuration

After enabling the Recommendation module for your Makaira Instance, access the configuration section via the menu entry "Recommendations".

Create a Recommendation

To create a new Recommendation (Reco), enter the following information:

Input fieldExampleDescription
NameSimilar ProductsA name that describes your Reco
Identifiersimilar-productsA unique identifier - you will need to provide this identifier when integrating the Reco into your store pages via the Makaira API
🚧

You are not done yet! After creating the Recommendation, switch to edit mode to adjust its settings.


Edit a Recommendation

After creating a Recommendation (Reco), you can edit it and adjust the available settings to your needs. The following settings can be configured:

Name and Identifier
Refer to the "Create a Recommendation" section for details about these fields.

Recommendation Base
Choose an option from the list to define the data source for your Reco. The following options are available:

OptionsDescription
Picture SimilarityProducts that look similar to the current product (the image in the picture_url_main field will be used).
Text SimilarityProducts with similar product descriptions or other text field similarities.
Bought TogetherProducts usually bought together with this product.
Behaviour History (Cart Based)Other people who had this in their shopping cart also bought these products.
Behaviour History (User Based)Other users who bought this also bought these products.
NoneNo base data will be used; access the "raw" product data imported to Makaira - suitable for Topseller Recos, Best Rated Recos, or completely custom Recos without relying on similarity/preweighted results.

Footnotes:
°: After importing your picture URL data into Makaira, we will start calculating picture similarity for you; please contact Makaira Support for assistance.
°°: Makaira Tracking is required to use this Recommendation Base.


Populate with Text Similarity

🚧

This option is not available for the following Recommendation Bases: Text Similarity, None.

This option adds products based on the Recommendation Base "Text Similarity" if not enough results can be retrieved for your selected primary Recommendation Base.


Filter

📘

This option adds products based on the Recommendation Base "Text Similarity" if not enough results can be retrieved for your selected primary Recommendation Base.

With filters, you can narrow down the recommended products using concrete values or values based on the input product.

Comparators
The following comparators are available:

ComparatorRequired Data TypeDescription
likeanyFilter where the field contains the value
not likeanyFilter where the field does not contain the value
in listanyFilter where the field value is in the specified list
not in listanyFilter where the field value is not in the specified list
emptyanyFilter where the field value is empty
not emptyanyFilter where the field value is not empty
greaterint, floatFilter where the field value is greater than
greater or equalint, floatFilter where the field value is greater than or equal
lessint, floatFilter where the field value is less than
less or equalint, floatFilter where the field value is less than or equal
betweendateFilter where the value is between a range of periods

"Compare With" Field

You can choose between the following options:

Field valueDescription
Static ValueA static value is used for the comparison
Input ProductThe value will be taken from the product sent during the request to the Makaira API.

Usage of Filter Function
Watch the short video to see the filter functionality in action:


Boosting

📘

Use our Preview feature to see your changes in real time.

This option allows you to boost specific products in your Recommendation.

Comparators
The following comparators are available:

ComparatorDescription
use valueSpecial case for boosting: only for int/float fields - boosts the product based on the value in the field (e.g., higher-rated products to the front)
likeProducts with fields containing the value will be moved to a higher position
not likeProducts with fields not containing the value will be moved to a higher position
in listProducts with field values in the selection list will be moved to a higher position
not in listProducts with field values not in the selection list will be moved to a higher position
emptyProducts with empty field values will be moved to a higher position
not emptyProducts with non-empty field values will be moved to a higher position

Usage of the Boosting Function
Watch the short video to see the boosting functionality in action:


Extra Features

Use Machine Learning

🚧

This feature is only available if you use Makaira Tracking and have purchased the Machine Learning module.

This option allows you to automatically apply user-specific data (e.g., device, location) to your Recommendations.

You need to send the constraints IP, User-Agent, and Timezone when making a request to the Makaira API (see the "API Integration" section for more details).

Find more information about our Machine Learning module here.

Use Ranking-Mix

This option allows you to reuse your Ranking-Mix on the Recommendations, eliminating the need to reconfigure your general boosting settings.

Randomize

This option adds some randomness to the results. The score of each recommended product may change randomly by up to 20%. As a result, a user may not always see the same recommendations, increasing the likelihood of showing something that interests them. We recommend using this option with additional boosting to ensure results are not completely random.


Preview

We provide a preview feature to assist you in adjusting settings like Filter and Boosting. Open the Preview in the upper right corner. Test your settings by searching for a product and clicking on it to see recommended products.

Watch the short video to see the Preview functionality in action:


API Integration

Makaira allows you to integrate Recommendations into your storefront using our API.
For detailed information about our Recommendation API, refer to the Makaira API Documentation, specifically the "Recommendation" section.


* Recommendations are only available when you book the Makaira Recommendations module.

Dynamic Recommendation Configuration in the API Request

For some use cases, it is useful to set the configuration directly in the API request of your storefront/shop. This is beneficial when the shop has more information about the customer than the stateless Makaira API. For example, if your shop knows whether the current customer is price-sensitive, you can show price-sensitive customers cheaper top-sellers and others higher-priced articles. You must modify your request for each customer.

  1. Create an empty setting for your new recommendation by providing just an ID. Note that all other configurations will be ignored for this use case.
  2. Create an API request with your custom settings. Use the Makaira UI with its preview to help you get the raw structure of the request (check the network tab of your browser when using the preview; the request will go to "recommendation/public").
    An example request that sets a main category and boosts a price greater than 33 may look like:
    {
      "constraints": {
        "query.language": "de",
        "query.shop_id": "1",
        "query.use_stock": false
      },
      "fields": [
        "id",
        "title",
        "active",
        "picture_url_main"
      ],
      "count": 200,
      "recommendationId": "my_reco_id",
      "productId": "",
      "boosting": [
        {
          "field": "price",
          "operator": "gte",
          "boostingStrength": "med",
          "type": "double",
          "compareWith": "staticValue",
          "value": [
            "33"
          ]
        }
      ],
      "filter": [
        {
          "field": "maincategory",
          "operator": "inList",
          "type": "text",
          "compareWith": "staticValue",
          "value": "my_category"
        }
      ],
      "id": 40,
      "isActive": true,
      "isPopulateTextSimilarity": false,
      "boostWithSimilarAttributes": false,
      "isUseMachineLearning": false,
      "isUseRankingMix": false,
      "name": "em",
      "randomness": false,
      "diversify": false
    }

Adapt your request to your needs and test it before integrating it into your system. Note that the field "productId" must be set but may be an empty string.