Work with price group inheritance

You can create parent-child relationships with price groups, which allow price groups to inherit prices for list, sale and shipping surcharge prices.

This section applies to both OSF and Storefront Classic. This section applies to Open Storefront Framework (OSF) and Storefront Classic.

Price groups specify list prices, sale prices and shipping surcharge prices. Using price group inheritance allows you to define some customer-specific prices for some products and SKUs, while the rest of the prices are inherited from another price group. This feature is applicable for both consumer-based and account-based environments.

Understand price group hierarchy

When you create a new price group, or edit an existing one, you can specify a price group from which to inherit prices. When you save a price group that inherits prices, known as a child price group, any prices that are not explicitly specified in the child will be inherited from the group you identify, known as the parent price group. Whenever you make a change in the parent price group, the changes will be reflected in any inherited prices in the child price group. For example, if you create a sale price in a parent price group, any children that inherit the sale price will reflect the price you created in the parent price group. The currency, the setting for tax calculation and the setting that determines if the SKU prices include tax are also set from the parent price group. Note that these settings cannot be changed once a price group is created. When choosing a new parent for an existing price group, your choices are limited to those price groups whose settings for these properties are the same as the existing price group.

Although child price groups can have only one unique parent price group, parent price groups can have more than one child. While child price groups may also have their own child price groups, the limit for the depth of price groups is three levels. Each price in a child price group is inherited unless the inherited price is overridden by a price that is explicitly added to the child.

Note that it is possible for a product or a SKU in a child price group to have a sale price that is greater than or equal to a list price. This may occur because one or both of the prices is inherited and sale price validation does not occur on child price groups when a change is made to its parent.

You can override the inherited list, sale, or shipping surcharge price for a product or SKU. Note that a SKU can inherit its price from its product or from the parent price group. Should a SKU price be empty in a child price group, the system will search for, and display a price by checking for the product price in the current price group, followed by the SKU price in the parent, and then repeating this sequence for increasingly higher levels of the price group. If no price is found, then the SKU price is marked as "None defined". A product or a SKU in a child price group must either have an inherited price or an explicitly specified override price. If you leave the price empty, it will be inherited. Therefore, there is no way to specify that the product or SKU has no price in the child price group, assuming that it has a price somewhere in the hierarchy above.

Note: If you are using Admin APIs to obtain product prices, for a SKU that does not contain a price in a child price group, the API returns the inherited price, if any; otherwise it returns an empty price.

Create a new price group hierarchy

To create a price group hierarchy, use the Catalog button in the administration interface. For additional information on creating and editing price groups, refer to Create and edit price groups:
  1. Use the drop-down menu to select Price Groups.
  2. Click the Create New Price Group button.
  3. Provide the name, ID as usual.
  4. Select the Inherit prices from check box. Use the drop-down menu to select the parent Price Group.
  5. Select the rest of the options as needed. Note that the Require all products to be in this price group checkbox means that every product must have an explicitly specified list price in the price group. For the purposes of this checkbox, an inherited price would not be sufficient. For this reason, this flag is always set to false in a child price group.
  6. Click the Create button to save the new price group.

You need to activate your price group for prices to be displayed on your store. Child price groups can only be active if the parent is active. Parent price groups cannot be deleted. For information on activating price groups, refer to Activate price groups.