Feature: Rule-based product associations

Status: Released
Feature name: Rule-based product associations

Business goal

Business users ask us to provide them more options in managing product recommendations: when customer retrieves some product we also show him an additional list(s) of other products (frequently bought together, supplementarity, most popular etc.) expecting that the customer will see something he would like to buy.

Product to match = a product retrieved by a customer.

Product to display = product system delivers as a recommendation

Product matching rule defines a filtered variety of products to match and related filtered variety of products to display.

Now we can create associations manually only: you go to the product record and filter and select explicitly a list of products that are “associated” (matched) with this product.

This approach makes impossible to use the functionality for many customers because of the following reasons:

  • too many efforts required for initial setting of associations (open each product, build relations)
  • too many efforts required for associations updating (a new product added → how to put it to all associated lists)

The goal is to provide a tool for a business user that allows setting a rule on how to associate products to match with products to display so that system will follow this rule without additional efforts.

User stories

As a business user , I want to register a product matching rule for automatic products associating so that the system automatically displays the list of products (products to display) associated with the products to match when a customer retrieves a product (product to match) is retrieved in the store, the system displays a list of products (products to display) that are recalculated by the rule on the fly.

As a business user , I want to preview the current variety of “products to match” at the moment when I define a product matching rule, so that I can make sure that everything is correct before I save the rule

As a business user , I want to preview the current variety of “products to display” at the moment when I define a product matching rule, so that I can make sure that everything is correct before I save the rule.

As a business user , I want to set in the admin panel the sorting rule for products to display as a part of the product matching rule, so that the list is delivered to the storefront being sorted.

As a business user , I want to set in the admin panel the priority of product matching rules , so that there was no uncertainty about what “products to display” will be delivered in case more than one product matching rule can be applied to the exact product to match.

Definition of Done

  1. All user stories resolved
  2. UI is implemented according to requirements
  3. API is implemented according to specification
  4. Test cases work

How to demo:

  • configure the rule to display products with the same value of property Model Family
  • it becomes visible as “TOP 10 Frequently bought together” in the Electronic theme for each of these products.

Scenarios and mockups

The main scenario for product matching rule registration

In UI a product matching rule relates to marketing (the Rule).

A business user goes to the Marketing module, selects a “Rule-based products associations” menu point:

image
Next blade: a list of existent rules, that were already registered:


The user clicks the “Add” button.

Next blade: rule management


User clicks “Main parameters”

Next blade: Main parameters

  • Is active status (default = Inactive)
  • Start date - the date since when the rule is applied if active ( same as for promotions )
  • End date - the date till when the rule is applied if active ( same as for promotions )
  • Store(s) - to which store(s) the rule should be applied if active
  • Group name - the tag that defines what kind of scenario this rule should be applied

The user selects parameters and clicks “Ok” and returns to the rule management blade

Next blade: rule management


User clicks “Products to match”

Next blade: Select the Catalog

User selects the catalog

Next blade: Build the filter for products to match
image
User clicks “Select properties”

Next blade: select properties for filtering
image
The user selects properties and clicks Ok

Next blade: Property list:
image


A user selects properties and clicks “Preview” (top of the blade)

Next blade : Preview products to match


User reviews the list and closes it (click the cross)

Next blade : Build the filter for products to match
image
User clicks Apply

Next blade : rule management


User clicks “Products to display”

Same as for products to match

Finally, the user returns to the blade “rule management”


User clicks “Output tuning”

The user selects properties to sort (one or two).

The user sets the output limit.

User clicks “Ok”

Next blade: rule management


User clicks “Create”

The rule is created

Next blade : a list of existent rules


The end of scenario.

API Specification

The API should provide

  • CRUD API (with permissions) for Management UI
  • Touchpoint API to receive Active rule-base associations:
    • Get Collection of Product Id: String for the specific criteria:
      • StoreId : String - Required
      • Group/Scenario : String - Required
      • ProductsToMatch - Collection Of Product Id to Match: String. Optional
      • Take : Integer. Optional. Default: 10. Max 10000
      • Skip : Integer. Optional. Default = 0
    • And return a collection of the products with:
      • SKU
      • SeoUrl
      • Name
      • Actual Price
      • Primary Image

Permissions

The CRUD permissions should be Store scoped. So, I can limit access to rules for specific stores.

Non Functional Requirements

Touchpoints API be able to return Rule-base Associations < 150 ms for - Azure S2

  • 30 Active rules for the scenario, 5 Active rules for Single ProductToMatch
  • 10, 100, 1000 Products to match in rule
  • Return TOP 30 Products’ associations
1 Like