Rules of Inheritance

Inheritance is a concept where a child entity automatically receives information from its parent entity. This concept applies to catalogs, products and marketing campaigns. Sometimes, the child entity simply receives the information and is unable to modify it in any way. There are circumstances, however, where modifications are possible.

Catalog Inheritance

Depending on what level of an organization an administrator is working from, they have varying levels of control and visibility on the product offerings.

Global scope

The Global scope catalog is the master copy that contains all the products offered at every level of the organization. Most products are visible by every child scope and can be pushed from the Global scope to any Sales scopes. Sales scopes can also add their own products and when they do so, the products are automatically copied into the Global scope catalog under special categories called Scoped items, which are not visible to any other child scope. This allows the Global scope catalog to retain a full record of all products offered without affecting other Sales scopes that are not selling these items.

Sales scope

As a best practice, Sales scopes pull down from the Global scope catalog and can add any required products for their scope. They have full control over the entire content of their catalog and can edit product names, descriptions and prices as required. Any changes made at the Sales scope level breaks the inheritance of a specific attribute meaning no further updates for this product attribute is received automatically from the Global scope. However, this only affects the selected Sales scope and child scopes. Other Sales scopes and their children will not be affected and will still pull updates from the Global Scope catalog.

Dependent scope

Dependent scopes inherit their product catalogs from their parent scope. Products and variants cannot be modified at this level aside from their prices and relationships. However, you can control their activation state at a given time, independently from their parent scope.

Figure 1 - Scope hierarchy

Better Retail has two sales scopes: Better Retail Canada and Better Retail USA. Each of these has several Dependent scopes. In their Global scope catalog, Better Retail has included most of the products its sales scopes will be selling. There are some regional differences such as products that are unique to one scope or another.

Better Retail Canada has created its own subset of products that it is selling in addition to products from the Global scope catalog. The same is true for Better Retail USA.

Better Retail Canada's exclusive products are not visible in the Better Retail USA catalog, but they are visible in the Global scope catalog under Scoped items.

Should a product from a sales scope's Scoped items need to be included in the Global scope catalog to be used by all Sales scopes, it is possible to move it from Scoped items to the main catalog.

Price Inheritance

Global scope to Sales scope

If the Global scope and the sales scope share the same currency, product prices will be sent down from the Global scope to the sales scope. Prices aren't formally inherited, but added for informational purposes/convenience. If the Global scope and sales scope work with different currencies, no pricing information is shared.

Sales scope to Dependent scope

Dependent scopes are automatically bound to the catalogs built by their parent sales scope. Dependent scope contributors can, however, change prices to suit their own guidelines. By changing prices, however, the link with the sales scope is partially broken. This is called breaking inheritance.

When a dependent scope changes the price of a product in the catalog, it is partially breaking the link between this product and the sales scope.

Breaking Product Inheritance

Inheritance is broken when the link between a product and the parent scope it was inherited from is severed following a modification at the child scope level.

You can break inheritance:

of an entire catalog
of a product attribute
of a product/variant activation state in a dependent scope

By default, sales scope catalogs inherit from the Global catalog unless the inheritance is broken by checking the inheritance option.

Products attributes in sales catalogs with broken inheritance are not updated automatically.

Example: if the base attribute "Description" is updated manually in an inheriting sales scope, the attribute description will not get future updates since its inheritance is broken. However, the other product attributes will still get automatic updates for the global scope.

REFERENCES

Product selection methods
Product Publication Workflow
Pushing products to sales scopes