Enterprise Product Catalog(EPC)

Join our Introduction to Salesforce Industries EPC (Enterprise Product Catalog) post. Before we begin into further details about Enterprise Product catalogue we would like to provide context which clouds make use of Enterprise Product Catalog(EPC). Salesforce Industries covers many clouds today and three specific clouds energy and utilities, media and communications clouds that have the EPC module part of it.

What is Product Catalog (EPC)?

First ever Product Catalog published in Venice in the year 1498. 1960s-70s, product catalogs had started being printed in a massive way. Late 1990s-2000s, eCommerce rush began.

Key Benefits of a Product Catalog

  • Central system – central system where you can store your product related data including pricing ie create a single source of truth to reduce data fragmentation
  • Accurate product information and publish product information on a variety of channels
  • Todays products are complex, you may have simple or complex bundle offers therefore requiring sophisticated catalog configuration
  • Rapidly launch and respond to market conditions for price updates, promotions, product line introductions and changes distributed across all sales channels.
  • Effortless Integration with other systems
  • Low cost of change

Salesforce Communications Cloud Key Capabilities & Features

So lets take a look at for example, communications cloud, these are the key capabilities included and EPC module is a key module of communications cloud. So when you buy communications cloud then EPC will already be included

Salesforce Communications Cloud

What is Enterprise Product Catalog?

Salesforce’ s Enterprise Product Catalog (EPC) enables you to introduce and effectively manage a portfolio of products that are relevant to customers. It helps us to manage the end-to-end processes and product data relevant to the product development, product launch, and in-life product management activities of your organization.

Enterprise Product Catalog Capabilities

  • Commercial Catalog
  • Technical Catalog
  • Industry Standards Compliant
  • Pricing Designer
  • Product Designer
  • Design Business Rules
  • Product Versioning

EPC User Interface

Product Designer and Pricing Designer

Product Designer uses Lightning Web Components (LWC). You have access to the product catalog entities from a menu list.

Product Console

Product Console uses Angular, and you have access to the product catalog entities from a dashboard.

Product Creation in Product Designer

Create products and offers to sell to customers

Product Creation in Product Designer

1. What is a Picklist in EPC?

When an attribute has multiple values, a picklist represents all of the defined values for that attribute. Picklists in EPC perform a similar function to Salesforce picklists but they are custom objects called picklists (API name: vlocity_cmt__Picklist__c). Picklists can be created with data types of text, number, Boolean (True/False), date or date time. Picklists are designed to be globally reusable across attributes assigned at the object type level or at the product level.

Eg. Colour

  • A picklist is an ordered list of values 
  • Available values for that attribute
  • Reuse picklists across multiple objects

2. Attribute Category

Use attribute categories to group product attributes. They also appear as headings at runtime in Industries Cart’s Filter and Configuration windows. Attribute categories are required to create product attributes.

  • Use attribute categories to group product attributes
  • Appear as headings at runtime in Vlocity Cart’s Filter and Configuration windows.
  • Attribute categories are required to create product attributes

3. Attribute

Products may or may not have attributes. Example computer power cable requires no attributes, the product information is sufficient to make the purchasing decision. However when you are buying an iphone for example and then you have to select the storage feature you would define this using an attribute.

Product attributes provide a powerful and flexible way to extend product entities. Product attributes are stored in an aggregate JSON blob on the Product2 object and are used extensively throughout Industries CPQ and Order Management.

  • Flexible product-related characteristics
  • Stored in a JSON rather than in individual standard/custom fields
  • Used for order capture (CPQ) and fulfillment (OM)

4. What is a Product Object Type?

A product object type is a reusable entity that describes a common set of fields and attributes as well as the layouts for all  products. You can use object types to group products with similar characteristics, to ensure consistent behavior and application of rules.

So for example if you have various broadband commercial products, eg Fibre 1 offer, fibre 2 offer etc. You can group the broadband characteristics under 1 object type and re-use that object type for all your commercial products.

Supports hierarchy inheritance. Eg Mobile Device as parent and then iPhone Device and Samsung Device

  • Define a template that you create products from
  • Supports hierarchy and inheritance between parent and child Object Types
  • Contains attributes, fields, and layouts

5. What is an Object Type Layout?

Object type layouts are like Salesforce page layouts, and they allow you to control the layout and organization of an object type’s attributes and fields. Using object type layouts, you can customize layouts for each product, so that the attributes and fields displayed at design-time will be different for the various products. An object type layout is made up of sections.

  • An object type’s layout has sections, which contain attributes and fields that you can sequence.
  • For each section, you can define the number of columns and the movement direction when the tab key is used

6. Product Specification

A product specification is an actual product that you plan to sell. Before you can define a product specification, you must have a corresponding object type.

An example of a product specification is a iPhone with attributes such as phone model, color, storage, size etc. A Product specification is a record in the product2 object. You create product specifications from your object types.

Product specifications inherit all fields, attributes, and layouts defined for the associated object type. After you create a product specification, you specify values for the attributes and fields defined for the object type.

  • A product that you plan to sell can be based on a product specification
  • A product specification inherits all the attributes of the object type
  • Specifies the details of a product. An example of a product specification is a iPhone with attributes such as phone model, color, storage, size, and operating system

7. Offers or sellable products

After you define product specifications, you know need to create your commercial products that customers can purchase. You can know ssociate your prices, promotions and business rules with those commercial products.

Products can be single or you can create a bundle from multiple products. You can attach product images

  • Can be flat or a bundle with simple or complex structure, including other products and bundles
  • Must define a Price for use in CPQ
  • Attach product image to show across different channels
  • Associate business rules

Broadband Product Example

Pricing Configuration

Manage prices, promotions and discounts

1. Pricing Components

A product price is a set of pricing components assigned to a product. The Salesforce Industries pricing approach:

You will need to create various components to create the price. This allows pricing to be separate  from the product. You will need to think about whether the price is a charge or an adjustment, whether it’s one-time or recurring and at what frequency, whether payment is currency or loyalty points, and whether it’s a standard charge or a penalty fee.

You can create an adjustment with an absolute amount or a percentage

2. Price List

To select products in the Industries CPQ Cart, each product must be assigned to a price list. Each price list must be associated with a price book. You can assign more than one base price to a product by creating price list entries stored in different price lists.

Price lists have the following settings:

The price list entries assigned to products

The pricing element charges and adjustments available for creating price list entries

Any context rules that apply to the price list

Using multiple price lists, you can assign more than one base price to a product by creating price list entries stored in different price lists.

For example, you may want to separate customer pricing from wholesale and employee pricing by creating price lists for each of these categories. You can apply context rules to determine which price list applies.

You can use one price list that contains more than one base price list entry for a single product.

Salesforce requires a price book. Every price list must be associated with a price book. Typically, only one price book is required. You can associate multiple price lists to one price book.

You can build pricing changes using multiple price list entries that are assigned to a single product with different effectivity dates.

Support of Price Changes

4. Cost and Margin

Agents may require to view profit and loss margins quickly, to ensure calculated price is correct. When you create a cost for a product, you can classify it as a one-time cost or a recurring cost.

Margins are calculated automatically based on the cost and prices that you have defined for each line item and the product bundle. Costs and margins will be displayed in the cart.

5. Promotion

Promotions are designed to provide incentives to customers and create further awareness of the products

  • Increase awareness of your products.
  • Create promotions for individual products or product bundles based on time and customer groups
  • Allows multiple promotions to be added to the cart

6. Discount

Discount is used to reduce the usual price for something: Discounts can be applied to a single product or a group of products

There are 2 types of discounts

  • Contextual
  • transactional

Contextual discounts are contractual in nature, meaning they typically are associated with an account or contract, and these discounts persist during the term of the contract

Transactional discounts are ad hoc and are applied to a specific order. No concept of penalty fees for discounts, they do not apply.

7. Attribute-based Pricing (aka Matrix pricing)

Attribute-Based Pricing or matrix based pricing

Customer is charged different prices based on certain parameters

If you had an iphone product with an attribute called storage then you don’t need to create separate offers for each combination

You can create a matrix and for each storage value you would create its own price

There are 3 types of matrix based pricing

  • Standard – prices a product using attributes.
  • Source/Target – prices a product based on the attributes of another product.
  • Range – prices a product when the value falls within the defined range for each attribute and field in the matrix.

8. Pricing Plan

Salesforce provides a default pricing plan with predefined steps. You can rearrange the steps or disable them. Add new custom steps to provide additional logic to your pricing plan.


The aim is to create perfect quote and orders

1. Cardinality Rules

  • Product cardinality defines the default, minimum and maximum quantities of the product that are allowed in the product bundle
  • You can define two types of cardinality:
  • Child cardinality – quantities of the product allowed in the product bundle
  • Group cardinality – minimum and maximum allowable quantities across an item’s immediate children

2. Qualification Rules – Eligibility, Availability

  • Determine which products and promotions get qualified or disqualified
  • Digital TV is available if you have purchased Fibre broadband
  • $10/mon Unlimited Internet for new Customers
  • A certain promotion is only available for new customers
  • You might want to offer certain products to customers purchasing through one channel and a different set of products to customers purchasing through another channel.

3. Penalty Rules

  • Penalty rules determine whether a penalty applies and what the penalty will be when a customer cancels a promotion or deletes or disconnects an asset linked to a contract during its commitment period.
  • Penalty rules apply only to MACD or asset-based orders.
  • Iphone 12 Intro Promotion – 20% off on Iphone 12 , $20 data plan for 6 months with 2 year subscription.  Validity  – 29th May 2021 – 28th May 2023.
  • Penalty If subscription is terminated before 28th May 2023, initial 20% off on Iphone 12 will be recovered as penalty.

4. Configuration / Validation Rules

  • Compatibility rules determine if a product combination is valid.
  • Ability to add/remove/recommend products based on the other products in cart.
  • Office Hub Modem is required when the Office Internet Solution is ordered.
  • Control and display visibility of attributes based on rules
  • If the Color attribute is Red, then the Memory Size attribute must exclude 16GB. If the Color attribute is Blue, then the Memory Size attribute must include 16GB.

5. Pricing Rules

  • A pricing rule is used to perform pricing adjustments to an order that will be applicable only if certain conditions are satisfied.
  • Fixed Pricing
  • Conditional Pricing
  • Bundled Pricing
  • Promotional Pricing
  • Custom Pricing

6. Rules Framework

  • Context Rules: Determine which products, promos, pricing appear on your cart.
  • Use for Pricing, Availability, Eligibility and Penalty
  • Advanced Rules: Configuration / Validation Rules, Pricing
  • How to choose? Default to Context Rules, but both can be used together

7. Decomposition Rules

  • Used in Industries Order Management
  • Used when order is submitted and allows mapping of Commercial to Technical products
  • Decomposition enables dynamic generation of an order fulfillment flow based on fulfillment flows

Enterprise Product Catalog (EPC)

YouTube video

Amit Chaudhary
Amit Chaudhary

Amit Chaudhary is Salesforce Application & System Architect and working on Salesforce Platform since 2010. He is Salesforce MVP since 2017 and have 17 Salesforce Certificates.

He is a active blogger and founder of Apex Hours.

Articles: 461

Leave a Reply

Your email address will not be published. Required fields are marked *