Ranking-Mix

The ranking Mix setting allows user to influence (boost) the order of category listing and search results based on additional parameters.
Initially, the ranking mix has no effect on the results of a search or category call. They must first be explicitly enabled for categories and/or for search results.

❗️

Attention: As soon as the ranking mix is activated for categories, manual sorts from the product data ("category": [{"pos"}]) will no longer taken into account.

Individual parameters can be weighted via slider on a scale from 0 to 100. A weighting of 0 means that the parameter has no influence.
The weighting of the parameters is linear, with the boosting factors added to each other:
[Search-Score] * [Boosting-Factor-1 + Boosting-Factor-2 + ...] = [New Score]


Available parameters are:

Ranking factor

Field name

Data source(s)

Added to shopping cart

mak_boost_norm_basket

only available with Makaira Tracking

New

mak_boost_norm_insert

in OXID generated from OXINSERT

Profit Margin

mak_boost_profit_margin

in OXID generated from OXBPRICE

Ratings

mak_boost_norm_rating

in OXID generated from OXRATING

Number of detail page views

mak_boost_norm_view

only available with Makaira Tracking

Revenue

mak_boost_norm_revenue

  • Makaira Tracking
  • in OXID generated from (OXVARMINPRICE+OXVARMAXPRICE)/2*OXSOLDAMOUNT

Number of sales

mak_boost_norm_sold

  • Makaira Tracking
  • in OXID generated from OXSOLDAMOUNT

📘

The maximum degree of influence of the respective ranking factor can also be changed by our support ([email protected])! By default, all ranking factors are configured equally strong.


Calculation of Boost Fields

If you want to calculate the boost fields based on your own data you can always override the field listed in the table above by your own modifiers. The values in these fields have to follow some rules:

  • The value is a float number between 0 (lowest value) and 1 (highest value)
    If there is a field with higher numbers you want to have the boosting based on you have to map the values on a scale from 0 to 1
  • The values in the field should be evenly distributed over your product dataset
    If the value tends to be chunky, meaning for example a lot of values are close to 0 or close to 1 you should apply a logarithm for example

You can find the calculation as example in the Boosting Modifier in the default OXID Connect Implementation:
Boost Field Modifier: https://github.com/MakairaIO/oxid-connect/blob/stable/src/Makaira/Connect/Modifier/Product/BoostFieldModifier.php

Boost Field Utilities (calculation utils): https://github.com/MakairaIO/oxid-connect/blob/stable/src/Makaira/Connect/Utils/BoostFields.php


Order for out of stock items

With the option Show out of stock items at the end it is possible to influence the order of items on the search results page as well as the category and manufacturer pages and to give preference to available items.


Prioritization of boosting values

Boosting values can be either imported by the mak_boost_norm_* (see NDSJON) values or they are calculated by Machine Learning in case you have booked the Makaira Personalization.

In three cases the value from the machine learning will be taken instead of the value given on the document type.

  • The mak_boot_norm_ attribute is not set in the incoming data
  • The mak_boot_norm_ attribute is set to null
  • The mak_boot_norm_ attribute is set to an empty string

Example

{
  "id": 1,
  ....
  "mak_boost_norm_revenue": "",
  "mak_boost_norm_sold": 0.841922,
  "mak_boost_norm_null": null,
  ....
}
+--------+--------------+----------+
| id     | key          | value    |
+--------+--------------+----------+
| 992365 | norm_revenue | 0.804867 |
| 992365 | norm_sold    | 0.531379 |
| 992365 | norm_view    | 0.746732 |
| 992365 | norm_null    | 0.676548 |
+--------+--------------+----------+
{
    "id": 1,
     .... 
    "mak_boost_norm_revenue": 0.804867,  // value from ML as NDJSON holds an empty string
    "mak_boost_norm_sold": 0.841922,     // value from NDJSON as explicit given
    "mak_boost_norm_null": 0.676548,     // value from ML as NDJSON is null
    "mak_boost_norm_view": 0.746732      // value from ML as NDJSON attribute is not set
    ....
}

* The Ranking Mix is only available when you book the Makaira Search & Filter module.