Conflict Resolution for Category Facet Inheritance
Category Facet Inheritance conflicts can occur when multiple categories in the inheritance chain have facet rules on the same attribute. Details about Facet Inheritance conflict resolution are provided below:
- Facet rules are applied as a union.
- If multiple categories in an inheritance chain have facet rules on the same attribute, priority is given to the customisations from the nearest node. Priority is as follows:
- Facet rules set at a node have priority over inherited facet rules.
- Facet rules inherited from parent nodes have priority based on distance to the specified node.
- Nodes do not inherit from a parent with Pass Down = No, but they can inherit from ancestors with Pass Down = Yes.
- Nodes do not inherit anything if a parent node has Pass Down = No and Pass Through = No, even if there are ancestors with Pass Through = Yes.
- Nodes that have Receive From = Yes and a parent node with Receive From = No can still inherit from higher level nodes.
Multiple parents
If a category has multiple parents, then it will attempt to inherit all facet customisations from parents with Pass Down = On. Facet inheritance from multiple parents follows these rules:
-
If possible, merge all rules as a union.
- For example, if parent 1 has a boost rule for Price and parent 2 has a boost rule for Brand, then the child has boost rules for Price and Brand.
- For example, if parent 1 has a boost rule for Price and parent 2 has a boost rule for Brand, then the child has boost rules for Price and Brand.
-
Local customisations take priority over inherited customisations.
- For example, if parent 1 has a boost rule for Price and the child has a bury rule for Price, then the child has a bury rule for Price.
- For example, if parent 1 has a boost rule for Price and the child has a bury rule for Price, then the child has a bury rule for Price.
-
Parents that are closer to the child category have higher priority than other parents.
- For example, suppose parent 1 is one level away from the child and has a boost rule for Price, and parent 2 is two levels away from the child and has a bury rule for Price. The child will have a boost rule for Price since parent 1 is closer to the child.
- For example, suppose parent 1 is one level away from the child and has a boost rule for Price, and parent 2 is two levels away from the child and has a bury rule for Price. The child will have a boost rule for Price since parent 1 is closer to the child.
-
If conflicts cannot be resolved by any of the above rules, then the parent with the most recent updates (that is, the latest saved/edited timestamp) will have priority.
You can also select a single parent to inherit from, which will limit inheritance to that parent’s category path. See Multiple Parents Conflict for details.
Refer to Use Case 5 for an example of inheritance from multiple parents.
Updated about 1 year ago