Devticks | Web development and Cloud Development Company

Full Stack MERN Web Application

 

 

Project goal

 

Introduction:

This case study covers the implementation of a carousel of products on redbullshop.com as a part of SAP Commerce Cloud C/4Hana solution. The selection of products on the carousel is derived from influence matrix like top conversion, add to cart rate, top revenue products or top trending products.The goal was to enrich redbullshop.com with dynamic user’s behaviour driven product recommendations and promotions in order to drive sales and increase business revenue.

Client Background:

Redbull is a famous enterprise brand which implements SAP Hybris Ecommerce solution for selling Redbull merchandise. The web storefront and the backoffice is built using highly customised implementation in order to operate in over 100 countries globally with different product and taxation laws.

Challenge:

In order to design such a dynamic system, there was a challenge to collect clickstream events in a 24 hour long sliding window with 5 minute slide interval. Moreover, once the events are collected then the next challenge was how to find the score to rank products based on the customer defined influence matrix.

Skills and deliverables:

   B2B commerce, B2C commerce, ReactJS, Java 8/11, Spring Boot 2, Cloudformation stack, RxJava, Postgres, Git, Docker, Kubernetes, AWS, Microservices, Apache Airflow

 https://redbullshop.com 

Solution:

I worked on SAP commerce cloud hybris solution to design and implement the above feature requirement from Redbull. I implemented the solution using Apache Flink streaming platform, Java 8/11 Restful Microservices, Elasticsearch for product ranking calculation and ReactJS for ecommerce storefront.

  • Maintain two set of windows for a set of products. 24 Hour window and 7 Day window.
  • Data of the last 24 Hours or 7 Days should be available every ‘t’ minutes which is equivalent to window slide time. ‘t’ is set to 5 minutes for the first prototype.
  • Metric Calculation: Metric values M<1,2,3……n> should be calculated for each incoming product event. Here metrics can be conversion rate, revenue or margin etc. [Calculations within Flink on each incoming event]
  • Score Calculation: Convert each metrics M<1,2,3……n> into individual Scores S<1,2,3……n> by normalising the metric value to a scale between <min> to <max> range after squashing the very low and very high outlier values.[Calculations within Flink at window close time]
  • Scores After Coefficient: Multiply coefficient factor for 24 Hours (x)  and 7 Days (y) to each score S<1,2,3……n> to get new set of scores S*<1,2,3……n>. Coefficients x,y will be hardcoded. [Multiplication within Flink at window close time].
  • ElasticSearch: Updated scores S*<1,2,3……n> for 24 Hours and 7 Days will be sent to Elasticsearch every 5 minutes on Flink Sliding window time.
  • Mixcard Calculation: Get a set of coefficients (C1, C2) for mixcard and apply the transformation in Elasticsearch to get single score per product as:
  • MX = ( C1 * S7*1 + C1 * S24*1 ) + ( C2 * S7*2 +  C2 * S24*2 )     <== Aggregating 24 Hour and 7 Day window scores and apply coefficients for mixcard
  • Sort the MX and return a list of ‘n’ required products. 
  • On Demand ElasticSearch: The mixcard calculation formulae will be applied within Elasticsearch and we require testing to confirm if elasticsearch can perform this on demand for dynamic Mixcard coefficients C<1,2,3……n> or otherwise we will pre-calculate that once the Mixcard is defined.
  • Mixcard Calculation on Subset of SKUs: The mixcard formulae will be applied to the Top N SKUs for each metric. It might be the case that a product PN+1 might have a better aggregated mixcard score than any of the subset used by the UI. However, we will ignore that.
  • A JAVA 11 Spring Boot 2 Merch Metric Microservice was implemented for Apache Flink streaming pipeline
  • A Java 11 Spring Boot 2 Catalog Microservice was implemented for product ranking using Elasticsearch

Results:

As a long term full stack Engineer for SAP Hybris, I provided solutions to all the above mentioned problems to the company. Successfully implementation showed promising results for promoting the right set of  products based on the business strategy.

Conclusion:

  • Highly dynamic and adaptive matrix engine for ranking products on ecommerce storefronts carousel
  • Java Microservice based backend implementation

I delivered the architecture and implementation of a highly dynamic product ranking engine using Flink streaming, Elasticsearch and Java for implementing different business strategies by promoting selected products on the carousel. The end result is more conversion for selected products.

 

Java case study 2
Java case study 3
Java case study 4

Let's get started on your project!

We bring smart ideas to life with future-ready solutions. Discover your passion and
celebrate achievements with us.

Scroll to Top