Dynamic Curation for Product Listing Pages with Oracle Commerce Cloud

At Oracle Commerce Cloud, we strive to build and equip our customers with powerful APIs and tools to manage their commerce sites. We’ve recently released a new set of APIs and tools that will allow our customers to create rules that can influence the order of product listings presented to shoppers. We call this “dynamic curation”. Let’s take a look at some use cases to see when you would want to use this feature:

  1. For shoppers who search on “iPhone,” top results should include a blended mixture of: (a) most viewed products like the latest iPhone models and (b) best selling products like lightning cables
  2. Within women’s collection, prioritize products that are newest, best selling, and in-stock
  3. By default, push in-stock and on-sale products to the top of the list

As you may know, the guided search engine that powers Oracle Commerce storefronts provides various ranker modules that can be applied to influence the order of navigation and search results. Of course, shoppers can explicitly specify a sort order from the list of choices presented to them (like “top rated” or “price low to high”) as they navigate and browse products on a site — a standard online shopping experience. To elevate the shopper’s experience and to support the use cases that I mentioned above, guided search shipped a new ranker module called blended ranker in OCC version 18C-MP. The ranker takes in a set of criteria (a.k.a factors) like “newness” and “sales”, calculates an on-the-fly score based on the importance that each criterion is given along with a few tunable parameters, and uses this dynamic score to influence the sort order of the navigation and search results. The blend score of each record is passed back in the results list payload under “DGraph.RankLabel.blend” attribute. Also, in the preview storefront, “Why Rank” is turned on for debugging purposes. So the search response payload in preview will contain an explanation for why a particular record was ranked in the way that it was.


In this initial release of dynamic curation, we support the following criteria:

Curation rules

Shoppers typically browse a commerce site through brand landing pages, campaign pages, or plain old navigation and search. And so, it only makes sense that we give merchandizers the ability to set different criteria for dynamic curation based on a shopper’s location within the site. Enter curation rules. A rule can be specified to trigger based on a shopper’s search terms or the collection that the shopper is currently viewing. Our fast rule engine will then trigger the most specific curation rule that it can match based on a shopper’s state.

UI Tool

We have also released a new intuitive UI tool that can be used to create and manage these dynamic curation rules. Here’s a screenshot:


We provide a REST API to create and manage the curation rules. The base path of the end-point is “https://<occ-admin-host>:<occ-admin-port>/gsadmin/v1/cloud/content/rankingRules”. The usual suspects, GET, POST, PUT and DELETE are all supported on this end-point.

Here’s a sample JSON payload that can be POSTed to the end-point to create a curation rule:

"priority": 10,
"ecr:type": "content-item",
"contentItem": {
"@type": "RankModuleBlend",
"blendFactors": [
"importance": 0.9,
"@type": "DateBlendFactor",
"attribute": "product.dateAvailable"
"importance": 0.6,
"@type": "DimValBlendFactorGroup",
"attribute": "sku.analytics.onSale",
"items": [{
"@type": "DimValBlendFactor",
"dvalID": "4183723715"
"triggers": [{
"exactLocation": false,
"searchTerms": "shoes",
"matchmode": "MATCHEXACT"

Let me try to elaborate on the sample payload with this picture:

Priority on a curation rule can be used to influence the rule triggering aspect. It is considered as an expert mode option.

What’s next?

In the upcoming releases, we are going to enhance dynamic curation to give even more granular control to merchandizers. We are also working on various auto pilot features using ML models to enhance the shopper experience. If any of this sounds interesting to you, come work with us. We are hiring!

The views expressed in this article are my own and do not represent those of my employer. The development, release and timing of any features or functionality described for Oracle’s products remain at the sole discretion of Oracle.