Personalized recommendations compliant with the Omnibus Directive

Published October 18, 2023
Modules
Difficulty
Powered by
salestube logo

Recommendations with Omnibus price

The e-commerce industry is the new frontier of innovation, providing both consumers and companies with a better experience. However, there are some issues that can disrupt the relationship between the two parties. The volatility of pricing information along with promotions and discounts is one of them: it often leads to situations where users have been misled or deceived by a company’s promotional scenarios. That’s why the Omnibuse Directive was introduced to strengthen consumer rights and ensure a better customer experience.

The directive implements a new obligation to regulate price transparency for discounts and promotions. The purpose of this new regulation is to strengthen control over misleading business practices, ensure free access to price information, and guarantee that citizens and businesses can benefit from clear and effective information. To comply with the Omnibus Directive, for discounted products/services, companies must additionally display the lowest price that was applied during the 30-day period before the price reduction.

In this case, you will learn how to create personalized recommendations that additionally include the price that must be mandatorily displayed for discounted products using dynamic content. We want customers to know the real deal when they shop, so we’ve got three prices for discounted products:

  • The current promotional price,
  • The lowest price in the last 30 days (the omnibus price),
  • The regular price outside the promotional period.

This way, customers can see all the savings and get even more motivated to grab that sweet promo offer!

Note: The most important step to take before creating a recommendation is to update your product feed. You need to expand your product feed with an additional attribute that indicates the lowest price of the discounted product from the last 30 days. In our case, this attribute is marked as c:omnibus_price.
Later in the process, you will see a Jinjava code containing a rule that checks if the sale price (g:salePrice.value) of the product is lower than the actual price (g:price.value). If so, this indicates that the product is discounted and the omnibus will be displayed with the discount percentage.
Note that all attribute names shown in this use case are just examples, you can use any naming for your own purposes.
Tip: If you don’t want to use dynamic content, you can retrieve recommendations through API, using this method. This way, you may keep fragile or frequently changing parameters at your end. Using the mentioned method, you retrieve the product ID from Synerise via API and pull all other necessary product information on your side.

Prerequisites


Process


In this use case, you will go through the following steps:

  1. Prepare AI recommendations.
  2. Create dynamic content campaign.

Prepare AI recommendation


  1. Go to Image presents the Communication icon Communication > Recommendations > Add recommendation.

  2. Enter the name of the recommendation (it is only visible on the list of recommendations).

  3. In the Type & source section, click Define.

  4. From the Catalog dropdown list, select a product feed that has a trained model.

  5. Select the Personalized recommendation type.

  6. Confirm the recommendation type by clicking Apply.

  7. In the Items section, click Define.

  8. Click Add slot.

  9. Click the Unnamed slot that was created.

  10. Define the minimum and maximum number of products displayed in the frame according to your needs.

  11. Optionally, you can use filters to include specific items in the recommendation frame.

  12. Confirm the configuration by clicking Apply.

  13. Optionally, you can define the settings in the Boosting and Additional settings sections.

    Tip: Learn more about boosting and additional settings.
  14. Click Save.

    AI recommendation configuration
    AI recommendation campaign configuration

Create dynamic content


  1. Go to Image presents the Communication icon Communication > Dynamic content > Create new.
  2. Enter the name of the dynamic content.
  3. Choose the Insert Object type.
  4. As an audience, select the user segment for which you want to display the recommendation.
  5. In the Content section, select Simple message, and specify the CSS selector where you want to insert the dynamic content with recommendations.
  6. In the Content tab, click Create Message.
  7. In the code editor, insert Jinjava with the AI recommendation.

Note: Replace your_campaign_ID with the ID of the AI recommendation. The ID of the AI campaign is contained in the URL of the recommendation.
Replace the price attributes used in the jinjava below with price attributes with the nomenclature you have implemented at your site. In this use case, we use g:price.value for the original price of the product, g:salePrice.value for the sale price of the product and c:omnibus_price for the omnibus price.
Click to see Jinjava

<!-- Downloading the AI campaign --> 
<ul>
 {% recommendations3 campaignId=your_campaign_ID %}
 {% for p in recommended_products3 %}
 <li data-snr-ai-product-id="{{p.itemId}}">
    <a class="snrs-AI--item-link" href="{{p.link}}" title="{{p.title}}">
        <img src="{{ p.imageLink }}"class="products-slider__item-image snrAI-product-image snrAI-product-image-{{p.itemId}}" width="90" alt="{{p.title}}" id="snrAI-image-{{p.itemId}}">
        <h3 class="snrs-AI-product--product-name">
            <span class="snrs-AI-product--name-first">{{p.title}}</span>
        </h3>
        <span class="snrs-AI-product--price">
            {% if p.salePrice.value < p.price.value %}
                <span class="snrs-AI-product--price-sale"> {{ p.salePrice.value }} $</span>
                <span class="snrs-AI-product--price-omnibus"> 
                    Last lowest price: 
                    {{ p.attributes.omnibus_price }} $ / 
                    {{ ((p.salePrice.value|float / p.attributes.omnibus_price|float - 1) * 100) | round(0) }} 
                </span>
                <span class="snrs-AI-product--price-original"> 
                    Original price: 
                    {{ p.price.value }} $ / 
                    {{ ((p.salePrice.value|float / p.price.value|float - 1) * 100) | round(0) }} 
                </span>
            {% else %}
                <span class="snrs-AI-product--price-base"> {{ p.price.value }} $</span>
            {% endif %}
        </span>
    </a>
 </li>
{% endfor %} {% endrecommendations3 %}
</ul>

  1. Save the template.
  2. In the Schedule section, select the date when the dynamic content is activated.
  3. In Display settings, define the circumstances for displaying the content.
    Note: Instructions how to do it are available here.
  4. Confirm by clicking Apply.
  5. In the UTM & URL parameters section, click Skip step.
  6. Activate the dynamic content.

What’s next


You can also use the ID of the recommendation in other types of communication, described here.

Check the use case set up on the Synerise Demo workspace


You can check the configuration of the campaign components directly in Synerise Demo workspace:

If you don’t have access to the Synerise Demo workspace, please leave your contact details in this form, and our representative will contact you shortly.

Read more


πŸ˜•

We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

πŸ˜‰

Awesome!

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

Close modal icon Placeholder alt for modal to satisfy link checker