Category and item attribute assignment hierarchy

A typical e-commerce seller maintains over thousands of items. The task of maintaining an item definition becomes tedious, especially if a group of item shares the same attributes.

For instance, all the garment products shares the same attribute, material and the value as polyester, cotton, denim, or leather. Now, narrow the garment product to the jeans subgroup for ease of illustration. If 1000 jeans are available in the department, the catalog manager must invoke exactly 1000 item-assigned attribute to complete the task. While updating, a few items might be acceptable. When you are dealing with huge number of items, the update tasks are susceptible to a user or programmatic error, and results in an item that is not found on the store website. Due to which it results in the loss of sales opportunity.

To minimize the item attribute upkeep effort, the catalog service introduces the concept of Item Category. A category considers grouping all related items such as, jeans. In a department store, jeans might be found under the children or boys jeans section of the store. Such set of jeans might belong to a brand called KangarooFit. A catalog manager might model this the same way as item category.

Category adopts a powerful hierarchical architecture that enables a catalog manager to define N level of grouping, where each subgroup inherits from the parent level groups. In particular, the definition of a category consists of:
  • categoryPath - the hierarchy path of the category.
  • status - held or published, which determines whether the category needs to be considered.
  • sequenceNo - allow a race condition conflict when multiple categories are applicable.
  • Item attributes - assign item attributes at the category level.

Suppose, the KangarooFit brand uses a proprietary comfort material call FlexoDenim, the catalog manager can assign the item attribute of material against the /KangarooFit domain. This way, any category under /Department/KangarooFit, say /Department/KangarooFit/boy/jeans and /Kangaroo/girl/jeans inherits the Material=FlexoDenim as the item attribute. Based on this pattern, the catalog manager must set the material item attribute at the category level. All items assigned to the category automatically inherit the item attribute. Then, the number of updates against the application is reduced to one for all sizes of the KangarooFit jeans in the department.

Similar to the concept of attribute and item-assigned attribute before the item attribute can be attached to the category, they must be first created. And, assignedValues must match the list of allowedValues that are defined in the Attribute API.

The creation of item category is a two-step process:
  1. Creating categories.
  2. Assigning items to a category.