Professional Documents
Culture Documents
Shared Catalog Exercise Guide
Shared Catalog Exercise Guide
Shared Catalog Exercise Guide
Exercise Guide
Version 1.0
Enterprise Product Catalog
Exercise Guide
TABLE OF CONTENTS
Preface 5
Overview 5
What You Will Learn 5
Prerequisites 6
Preface
These training exercises are based on the Spring’ 22 release of Salesforce Industries
Communications, Media, and Energy & Utilities Clouds. For additional information about
the topics covered, see the documentation available in Vlocity Success Community at
https://success.vlocity.com.
Overview
This module covers fundamental features and functionality of the Enterprise Product
Catalog, a key product of the Salesforce Industries Communications, Media, and Energy &
Utilities Clouds. This module will introduce shared catalog capabilities including how to use
the Vlocity Product Console to create products and manage the shared catalog.
This is a hands-on course with practical lab exercises. The lab exercises are designed to be
used with the provided training playground.
Prerequisites
The prerequisites for this training include a solid understanding of basic Salesforce concepts
and functionality. You should also have a working knowledge of telecommunications,
media, or energy and utilities industry business objectives.
● Provides one user interface with common tools, enabling your teams to
collaboratively and rapidly create, manage and deliver offerings to market.
● Allows for an evolutionary approach to transform both front office and back office
systems to become catalog-driven over time. This supports the elimination of data
silos and the mastering of both commercial and technical entities in a single model.
EPC is powered by a shared catalog. The shared catalog uses a metadata-driven approach to
accommodate all of the incarnations of a product, as it travels from a twinkle in the
customer’s eyes to the physical implementation in the customer’s hands. EPC is informed by
the TMForum SID model. It supports all levels of product definition, including offers,
product specifications, services and resource specifications.
● The Product Spec is created by Product Management and describes all the product
components.
● Then, using Order Management, the Product Spec is translated into the various
technical and manufacturing specifications tuned for each of the downstream
systems that use them.
The Vlocity Product Console provides a unified user experience to manage EPC elements in
a single, contextual interface. Using this interface, you will perform product management by
defining and maintaining product entities. You will also build foundational constructs like
attributes and picklists, and metadata constructs like product object types. You will see
many elements of Industries CPQ co-located in the Vlocity Product Console, to provide
seamless integration between the shared catalog and the ability to configure, price and
quote the products in the catalog.
Industries CPQ
Industries CPQ has a powerful rules engine which ensures that quotes and orders are valid
before they’re submitted. This minimizes order delays, customer confusion and
dissatisfaction. Industries CPQ picks up where CRM ends, providing real-time product,
pricing and business rules using natural language and declarative administration. Using
Industries CPQ, you can:
● Design basic and advanced availability, eligibility, compatibility and pricing rules.
● Standardize the introduction of new products and services.
● Ensure accurate capture of new, move, add, change and disconnect orders.
Industries CPQ supports both B2B and B2C lead-to-cash processes. The open architecture
allows you to use Industries CPQ components, services and user interfaces selectively as
individual components, and to integrate process flows with external systems, all using a
unified user interface.
Product Model
The product model of the product entities that you will build in this training module is
diagrammed below.
Goal
● Navigate the the Vlocity Product Console
● Create a picklist
● Create picklist items
Tasks
1. Review the Vlocity Product Console
2. Create a picklist
3. Create picklist items
4. Create additional picklists and picklist items
Time: 30 mins
ALERT:
If you’ve just received your training playground, add your email address to the
system administrator profile to ensure you receive all system notifications. In
the upper-right, click on the Avatar and select Settings. Enter your email
address in the Email field on the Personal Information page and click Save.
1. Using the Lightning App Launcher , click Configure Price Quote (CPQ).
3. Review the Dashboard, which provides a unified user experience to manage EPC
and Industries CPQ elements in a single contextual interface.
a. Notice the EPC elements: Product, Attribute, Picklist, Object, Facet, and
Section.
b. Notice the CPQ elements: Promotion, Discount, Offer Migration Plan, Pricing,
String Translations and Rules (Context Rules)
Notice the Switch to Salesforce link in the upper right, which allows you to
exit the Vlocity Product Console.
5. Next to the Search Product… entry dialog, click the search icon. The list of all
products is returned.
6. Click the name of the 4G LTE Data Plan product in the list or click the Edit icon
to open the product for editing.
ALERT:
Do not use your browser’s refresh or back buttons while working in the Vlocity
Product Console. Using these buttons will cause you to exit from the Console,
and any changes that have not been saved will be lost. Instead, use the reload
icon to refresh the page when necessary, and the Console’s tab navigation bar.
ALERT:
The Vlocity Product Console does not use an implicit save model. All changes
must be explicitly saved using the provided buttons in the user interface.
10. Notice the related items (like General Properties) listed on the left; these interface
elements are called facets.
11. In the Console’s tab navigation bar, click the Xs to dismiss the tabs that you opened
and return to the Dashboard.
1. On the Dashboard, under Foundation next to Picklist, click the new icon . This
launches the New Picklist dialog.
NOTE:
Required fields for picklists and other EPC objects are not set within the
Salesforce Setup. Instead, they are set within the Vlocity Product Console
using Object Type Layout Management field requirements. You can configure
EPC object field requirements to your own unique specifications and
processes.
Name Connectivity
NOTE:
The picklist fields above are only visible at design-time. In other words, none
of the information entered above will be visible at run-time to users during
order capture.
4. Click Save. You will see a green “Picklist created!” success message.
5. Once the picklist is saved, you will now see a panel on the left, listing all of the facets
for this object, which for picklists includes the General Properties facet and the
Picklist Items facet.
Now that you have created the picklist, it is time to add items for the end user to select.
2. Under Picklist Items, click New Item. The new picklist item dialog will open in a
pane on the right.
3. In the New Picklist Item dialog under the reload icon, notice the resize and close
buttons on the right.
Code PLI_GPS_CELL
Sequence 20
Active ✓
9. In the Console tab navigation bar, click the X to close the Connectivity tab.
1. Create a picklist and picklist items for Band Type using the steps you’ve just learned.
Field Value
Code PKL_BAND_TYPE
Active ✓
Field Value
Code PKL_BAND_COLOR
Active ✓
In the next exercise, you’ll put these picklists to work by linking them to product attributes.
Goal
● Create attribute categories
● Create product attributes
● Link picklists to product attributes
Tasks
1. Create a Wearable attribute category
2. Create a Band Type product attribute
3. Create a Connectivity product attribute
4. Review the product attributes in the Wearable attribute category
Time: 15 mins
Product attributes provide a powerful and flexible way to extend product entities. Product
attributes are stored in an aggregate JSON blob on the Product object and are used
extensively throughout Industries CPQ and Order Management. In Industries CPQ we can
use product attributes in a number of ways, including:
You’ll begin by creating a Wearables attribute category to group all smartwatch attributes.
NOTE:
Product attributes are to be created and managed through the Vlocity Product
Console not through the Salesforce Product tab.
1. In the Lightning Navigation Bar, click More, and then right-click Vlocity Attribute
Categories to open in a new browser tab.
Applicable Sub Type Product This value is required for product attributes.
Attribute
4. Click Save.
5. Click on the Vlocity Product Console in the Lightning Navigation Bar to return to
the Dashboard.
2. Under Foundation next to Attribute, click the new icon . This will launch the
New Attribute dialog.
Name Band Type This value is required and will be visible at run-time in
the Cart’s configuration window.
Attribute Wearables Using the lookup dialog, select the Wearables attribute
Category category that you just created.
Value Type Picklist Your end user will be selecting from a picklist
Value This field is used to enter a value for other value types
such as Text or Number. You are using a picklist, so no
value is needed because all values will come from the
linked picklist.
Picklist Band Type Using the lookup dialog, select the Band Type picklist
you created in the previous exercise.
4. Click Save.
6. In the Applicable Objects list, verify the box next to Product2 Object is checked.
ALERT:
If the Applicable Object is not set, the attribute will not display when creating
an object type or a product.
7. In the Console’s tab navigation bar, click the X to close the Band Type window.
1. Under Foundation next to Attribute, click the new icon . This will launch the
New Attribute dialog.
Field Value
Name Connectivity
Code ATT_RT_CT
Active ✓
Picklist Connectivity
Display Sequence 20
3. Click Save.
5. In the Applicable Objects list, verify the box next to Product2 Object is checked.
6. In the Console’s tab navigation bar, click the X to close the Connectivity window and
return to the Dashboard.
4. Select the Vlocity Product Console option in the Lightning Navigation Bar to return
to the Dashboard.
In case that wasn’t enough, there’s more to learn about product attributes. They have
additional metadata properties that are set when the attributes are assigned to an object
type or a product, which you will do in the next two exercises.
Goal
● Create product object types
● Understand the inheritance architecture of product object types
● Assign product attributes and attribute metadata to an object type
● Modify object type layouts
Tasks
1. Review the existing product object type hierarchy
2. Review the attribute and field assignments
3. Review an object type layout
4. Create a new product object type
5. Add attributes for the product object type
6. Set attribute metadata for the product object type
7. Modify the product object type’s layout
Time: 30 mins
A product object type is a reusable entity that describes a common set of fields and
attributes as well as the layouts for all linked products. You can use object types to group
products with similar characteristics, to ensure consistent behavior and application of rules.
Object types are designed with an IS-A inheritance type architecture. For those familiar with
object-oriented programming and design, you’ll recognize that object types create
relationships between abstractions where one object type is a subtype of another object
type. The first level of abstraction is called simply an object type, and the subsequent levels
are called subtypes.
Then, when you apply this relationship to a product, the object type allows the product to
inherit all of the characteristics of its object type hierarchy.
It’s recommended to create a base object type for each layer of your SID model (Offer
Specs, Product Specs, Service Specs and Resources Specs) during initial setup. These are
essentially your product catalog’s “primordial objects” from which all other products
descend. You’ll assign all of the fields in the product catalog to the base product object
type, and then you can create object subtypes for all the product classes and products in
your catalog. They will then inherit the base product’s layout, fields, and any attributes. Note
that the base object type layouts must be created manually, which takes a few minutes, but
after that, all the subsequent object subtypes will inherit the layout when they are created.
NOTE:
In your training playground, an initial product object type hierarchy has
already been created for you, including all of the base product object types.
BEST PRACTICE:
Currently, it’s not recommended to move object types within the hierarchy.
Therefore, careful consideration is required when planning your object type
hierarchy and your product catalog design. Salesforce Industries Services can
assist with product catalog design and modeling best practices.
1. You should be in the Dashboard of the Vlocity Product Console. Click X to close any
open tabs if necessary.
NOTE:
There is no new icon next to Object because the Vlocity Product Console
does not allow the creation of custom EPC or Industries CPQ objects. The
objects in the Vlocity Product Console are created during installation and are
part of the managed package.
3. Next to the Search Object… entry dialog, click the search icon . The list of
objects is returned.
6. Review the object type hierarchy that has been prebuilt for you.
a. Notice the BASE objects types for the four SID layers.
b. Notice that the BASE Offer Spec Type has no object subtypes.
BEST PRACTICE:
It’s recommended that object types in each of the SID layers are “tuned” to
the product entity as it is manifested within the current layer only. Product
entities can then be transformed from one layer to the next using Order
Management’s decomposition mappings. In keeping with this best practice,
you will notice that the BASE Offer Spec Type in EPC has no object subtypes
because “an offer is an offer” and should have homogenous characteristics.
However, the other BASE object types are not flat hierarchies because the
product entities they describe are fundamentally distinct from one another.
7. Click the > symbol to the left BASE Product Spec Type to expand the object type
name.
8. Select SmartPhone Product Spec from the list of BASE Product Spec Type child
object types or click the Edit icon next to the name to open the object type for
editing.
9. Notice the SmartPhone Product Spec’s parent object type is the BASE Product Spec
Type, which means that all its fields and its layout have been inherited by the
SmartPhone Product Spec.
BEST PRACTICE:
It’s recommended that any data element that is common across the catalog
be described using a field, and data elements that are unique to a subset of
products in the catalog be described using an attribute. Following this best
practice, all of the BASE object types in your training have no attributes
assigned, only fields.
Within the object type hierarchy, attribute inheritance is a true dynamic inheritance. If you
assign new attributes to an object type, all object subtypes and products linked to the
object type hierarchy will dynamically be assigned those attributes. Importantly, however,
any attributes or fields that are inherited cannot be deleted from the object type, and
instead must be unassigned from the object type or deactivated at the product level.
1. In the SmartPhone Product Spec, click the Attributes and Fields facet in the
sidebar.
2. Notice the six attributes and all the fields that have been assigned to this object type.
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 class of product, so that the attributes and fields displayed at
design-time for a SmartPhone are different to those of a backpack, for example. An object
type layout is made up of facets, sections, and section elements.
As you have seen in the past few exercises, a facet displays on the left navigation menu, and
it contains sections and section elements.
A section is essentially a container for a Visualforce page, and a section can have either a
standard field layout view type or a custom view type. The Communications, Media, and
Energy & Utilities Clouds provide several common custom view types, and customers can
create their own custom view types by creating custom Visualforce pages.
Section elements are fields or attributes, and they are grouped in sections.
How are Object Type Layouts inherited within the Object Type
Hierarchy?
Unlike the attribute and field dynamic inheritance model, object type layouts use a “hybrid”
inheritance model. When a new object subtype is created, the Vlocity Product Console
creates a new layout for the object subtype via a deep copy. What this means is that any
subsequent changes to the object subtype’s layout will not be replicated down the hierarchy
after initial creation. This allows you to change the layout, adding or deleting fields for each
object type, without having to worry about your layouts being altered with the additions of
any fields on the object subtype.
2. Notice the facets, sections, and section elements for the SmartPhone Product
Spec.
NOTE:
We have configured your training playground to include two custom facets
and corresponding sections, and they are Attribute Properties and Debug.
These custom facets can be implemented in your own orgs, if desired.
4. Click on the Design Time Attributes Section. The section details window will display.
5. Notice the View Type is set to Field Layout. This is the standard field layout view
type, like a standard Salesforce page layout, and no View URI is needed.
6. Notice that this facet groups the six assigned attributes into design-time and
run-time attributes, for ease of data entry.
7. Scroll down to the Attributes and Fields Facet and click the Attributes and Fields
Section. The section details window will display.
8. Notice the View Type is set to Custom View, and the View URI specifies the
corresponding custom Visualforce page for this section.
1. In the Console’s tab navigation bar, click the Product2 Object tab.
3. In the New Object Type window on the right, enter the following information.
Field Value
Is Active ✓
4. Click Save. You should now be able to see your new SmartWatch Product Spec
within the Product2 Object Types.
NOTE:
You might be wondering should smartwatches be created as a subtype of
smartphones; in other words, “IS-A” smartwatch a smartphone, following
product modelling best practices? In real life, probably not. But in our
simplified training playground, yes! And you will use it to have some fun with
inheritance.
3. Notice that the fields and attributes have been inherited from the SmartPhone
Product Spec.
5. In the Assign Attributes and Fields window, click the checkboxes next to the Band
Type and Connectivity attributes that we created in the previous exercise.
7. The two new attributes now display in the assigned attributes and fields list.
Attribute metadata can be set during assignment at the object-type level and products
created from the object type will inherit both the attributes and their metadata. Attribute
metadata is overridable or non-overridable depending on which attribute metadata is
selected. Non-overridable metadata includes Run-time Configurable, Is Encrypted, Is Not
Assetizable, and Is Not Translatable. These attribute metadata flags must be set at the
object type level and cannot be changed at the product level. Overridable metadata
includes Has Rule, Hidden, Read Only and Required, and these can be changed at the
product level. Both are demonstrated later in this module.
1. Within the SmartWatch Product Spec, click on Band Type to open the Attribute
Metadata pane.
2. In the Attribute Metadata pane under BEHAVIORS, enter the following metadata
information.
Field Value Notes
4. Next, click on Color to open the Attribute Metadata pane, select the Required
checkbox under the BEHAVIORS section, and click Save.
5. Similarly, click on Connectivity to open the Attribute Metadata pane, and select the
Required checkbox under the BEHAVIORS section, and click Save.
1. Within the SmartWatch Product Spec object, click the Layout Management facet.
4. In the Add Section Element pane on the right, enter the following information.
Field Value
Sequence 30
5. Click Save.
7. In the Add Section Element pane on the right, enter the following information.
Field Value
Field Connectivity
Sequence 40
8. Click Save.
9. In the Console’s tab navigation bar, click X on all the open tabs to close them. This
will bring you back to the Dashboard.
Goal
● Define product selling periods
● Find product references
● Identify product selling period dates in the Cart
Tasks
1. Review product selling periods on a product
2. Use the Find References button
3. Review product selling periods in the Cart
Time: 15 mins
● Future Product – is a product that will be sold in the future. This product can be
configured and ordered but will be fulfilled once its selling period and fulfilment
begins. In order to ensure that future products are not assetized until they are
fulfilled, you must implement Future Date Ordering.
● Past Product – is a product that is no longer for sale but still can be fulfilled for
orders that have already been placed and changed for orders that have already been
assetized.
NOTE:
The product selling period fields have a Data Type of Date/Time and are
intended for commercial products only. Technical products and promotions
do not use these fields and should use the existing effectivity and date fields.
Assets do not use these fields.
You set the product selling period date fields in the Vlocity Product Console in the General
Properties facet of the product.
Here you are looking at the effectivity dates of the Apple iPhone X.
Infiwave started selling the iPhone X on the Selling Start Date: October 1st 2017.
However, these were pre-orders, as the iPhone X wasn’t actually released by Apple until
November 3rd, 2017.
The Fulfilment Start Date is the date you can provide your customers with the iPhones.
You will stop selling the iPhone X to customers on the Selling End Date: December 1st
2024.
This is a year before Apple stops supporting the iPhone X, on December 1st 2025, by which
time you will also no longer be supporting it. This date is known as the End of Life Date.
The Vlocity Product Console validates all dates and times entered using the below rule and
will not allow you to save products until the dates are set correctly:
SellingStartDate<=FulfilmentStartDate<=SellingEndDate<=EndOfLifeDate
ALERT:
Product selling period data is stored in the platform cache. After you make
changes to product selling period fields, you must update the product
hierarchy data in the platform cache by running Product Hierarchy
Maintenance, Clear Managed Platform Cache, and Refresh Platform Cache in
this sequence.
3. In the Search Product… entry dialog, enter Offer and click the search icon . The
list of products is returned.
5. Notice the Selling Start/End Date, Fulfilment Start Date and End of Life Dates are not
populated. This implies that the product will be available forever.
6. Click on the Product Structure facet. This shows all the child products that together
make up the Mobile Data Plan Offer.
7. Click on the 4G Data Plan link and notice the Effectivity dates for the 4G Data Plan
product.
8. Click on the Mobile Data Plan Offer tab to return to the product. Notice the selling
period dates for each product in the bundle.
NOTE:
When a product is used in bundles, it is the responsibility of the product
administrator to ensure the selling periods are consistent.
Product administrators use the Find References button to find references to a given product
in active promotions, product bundles, assets, quote line items, order line items and
opportunity line items. The button helps administrators determine the effect of changing
product selling period and end of life dates.
1. Return to the open 4G Data Plan tab on the Dashboard. If you closed it, click on the
4G Data Plan link from the Mobile Data Plan Offer Product Structure.
2. On the General Properties facet, click the Find References button at the bottom of
the page.
3. The Partial List of Active References dialog box displays. Notice the types of
reference objects.
4. Click the > symbol to expand the Opportunity Item References, Asset Item
References, and Bundled Product References. The 4G Data Plan is an opportunity
item and asset on Carole White’s account. It’s also part of a bundled product for the
Mobile Data Plan Offer.
5. Click Close.
NOTE:
The default number of rows returned for each reference object is 20, but the
limit can be increased by setting the FindReferencesRowCountLimit
custom setting in the CPQ Configuration Setup in the Vlocity CMT
Administration dashboard. The maximum number of rows returned is 1000.
ALERT:
In order to find order, quote and opportunity line item references, each line
item's fulfilment status (vlocity_cmt__FulfilmentStatus__c) must be
set to Draft, In Progress, PONR, or Pending.
In order to find asset references, the asset's provisioning status
(vlocity_cmt__ProvisioningStatus__c) must be set to Active,
Changed or Deleted. These values are normally set by order management
processes. If the statuses have null or other values, the references will not
display.
2. On the Orders page, change the Recently Viewed list view to All Orders.
4. Click on the Power Launcher’s search field (just below the Order header) and select
Configure Order. This invokes the Cart.
5. Click the > symbol to expand the Mobile Data Plan Offer in the Cart.
6. Hover over the green clock icon for the 5G Data Plan product. Notice the selling
period start date.
7. Hover over the yellow clock icon for the 4G Data Plan product. Notice the selling
period end date.
8. Hover over the red clock icon for the 3G Data Plan product. Notice the end of life
date.
9. Notice the 4G LTE Data Plan product does not have a colored clock icon, this is a
current product.
NOTE:
To support MACD and asset-based ordering, the Cart can display current,
future, past and retired products based on the Order (or Quote or
Opportunity) Start Date.
● Current and future products display in the Cart normally, but future
products are indicated with a green clock icon.
● Past products are products that have passed their Selling End Date but
have not passed their End of Life date. They are indicated by a yellow
clock icon. They cannot be added to the Cart or configured for new
orders, but they can be configured or deleted during MACD or
asset-based ordering.
● Retired products are products that have passed their end of life date
and they are indicated by a red clock icon. In a new order, they cannot
be added to the Cart or configured but during MACD or asset-based
ordering they can be deleted.
10. Locate the 5G Data Plan in the Products list to the left of the Cart and hover over
the green clock icon.
Similar to the products added to the Cart, the product list also displays current and
future products based on the Order Start Date.
ALERT:
Product selling period functionality does not override other standard controls
for displaying products in the Products list. In order to display, products must
be marked Orderable, Active and have a price list entry. The price list entry
Effective From date must be current as well.
● Products that have reached the end of their selling period or are at
their end of life date will not display in the product list and can’t be
added to the Cart.
● You can add a future dated product to the Cart and submit the order
normally, however Future Dated Ordering functionality must be
implemented in order to manage the fulfilment of future products.
Goal
● Create product specifications
● Set and override product attribute metadata
● Assign attributes and fields to products
● Add product images
● Add a base price
● Understand product layout management
Tasks
1. Create a product specification for the Apple Watch Series 5
2. Set design-time attribute metadata values for the product
3. Set run-time attribute metadata values for the product
4. Add a product image as an attachment
5. Add a base price to the product
6. Review Layout Management and Debug facets
Time: 30 mins
2. Under Product Management next to Product, click the new icon . This will
launch the New Product dialog.
NOTE:
We have configured your training playground to simplify the New Product
dialog. This configuration can be implemented in your organization’s orgs, if
desired, by modifying the Product2 object layout.
Object Type SmartWatch Recommend (but not require) that all products
Product Spec are created with an object type in order to
benefit from the powerful inheritance
architecture.
5. Now you can complete the rest of the General Properties for the Apple Watch Series
5, using the information shown below.
Sub Type [None] Together with the Type field (above) you
can select a sub-type to help classify your
product. We are not using this so leave the
default value None as is.
Help Text [leave blank] Here you can enter helpful information
related to the product that displays at
runtime when the user hovers over the i
icon.
2. Notice the Band Type and Connectivity attributes that we added to this facet in the
last exercise.
3. Under Design Time Attributes, click the Details link next to Brand to open the
Attribute Metadata window.
NOTE:
Using the Attribute Metadata window, you can set overridable attribute
metadata behaviors that control whether the attribute value is active, editable
or required as well as default values. In addition, you can override the
attribute data type and picklist that has been inherited from the object type.
Notice the non-overridable behaviors inherited from the product object type
that are not editable.
Value Apple This will set Apple as the value for this attribute.
ALERT:
When making changes to attribute metadata, be sure to click Save in the
Attribute Metadata window and not the Attribute Properties facet. Otherwise,
your metadata changes will not save!
7. Under Design Time Attributes, click the Details link next to Size to open the
Attribute Metadata window.
Value 38mm
Read Only ✓
11. Using the steps above, enter the following metadata information for the Capacity
attribute.
Field Value
Value 8 GB
Read Only ✓
12. Enter the following metadata information for the Mobile OS attribute.
Field Value
Value watchOS 4
Read Only ✓
Now you will override an attribute picklist that has been inherited from the object type.
2. In the Attribute Metadata window under DATA INFO, click the delete icon next
to the Colors picklist.
3. Using the Picklist Lookup dialog, select the Band Color picklist you made earlier.
5. Hover over the Color attribute and notice how the cursor turns to a no-go icon. This
indicates that the attribute is not available for editing during design-time because it
is run-time configurable only. It also has a red asterisk next to it indicating that it is
required. These metadata attributes were assigned at the product object type in the
previous exercise.
6. Using the steps you’ve learned, enter the following metadata information for the
Payment Type attribute. Click Save.
Field Value
Read Only ✓
9. Notice the list of attributes (and fields) that can be assigned directly to the product.
ALERT:
When you assign attributes and fields directly to a product, you “break” the
dynamic attribute inheritance from the object type, and all subsequent
attribute assignment changes must continue to be directly managed at the
product level.
10. Click the X to close the Assign Attributes and Fields window on the right without
saving.
Url https://www.salesforce.com
/content/dam/web/en_us/www
/images/resources/training
-images/AppleWatch.png
NOTE:
EPC does not have the capability to upload files, therefore it only supports
product images via an absolute URL.
5. In the attachment list, click the view icon to display the new attachment.
NOTE:
In this task, you will add a simple base price to your new product, so that the
product will display in the Cart.
3. In the PRICE LIST ENTRY General Properties dialog, enter the following information.
Field Value Notes
Price List B2C Price List This indicates the price list which will be used
to provide the pricing for the product.
Display Text $349.99 This is the price displayed to the end user.
Base Price ✓ Selecting this option means the base price will
be displayed along with the product in the
Products list of the Cart.
4. In PRICE LIST ENTRY Pricing Variable section, enter the following information.
Field Value Notes
8. In the PRICE LIST ENTRY Effectivity dialog, enter the following information.
Field Value
Active ✓
9. Click Save.
10. In the left sidebar, click the Context Rules facet. This is where you can create context
rule sets for a product.
NOTE:
For more information on Context Rules, see the Context Rules training
module.
ALERT:
When you click the Create Custom Layout button, the Vlocity Product
Console will perform a “deep copy” of the object type layout and then “break”
the link to the object type’s layout. All subsequent layout changes must be
directly managed at the product level.
4. Notice the JSONAttribute field. This is the field on the product object that stores the
attribute metadata.
5. Click the Reload icon in the upper right corner to refresh the page and
product data.
7. Notice that the JSONAttribute field now displays the attribute metadata that you
created earlier in this exercise.
ALERT:
Do not directly edit the JSONAttribute field, no matter how much you love
writing in JSON notation! This data is intended for debugging purposes only.
Goal
● Create product bundles
● Explain product cardinality
● Override the cardinality of child product bundles
Tasks
1. Create a product bundle
2. Create the structure of the product bundle
3. Override the cardinality of the child product bundle
4. Create a price list entry for the product bundle
Time: 15 mins
A product bundle is a set of products sold together. Products are bundled using a “Has-A”
Containment relationship as either a child or a realization. A product can have one or more
product child items (or PCIs), and you can define cardinalities for each. PCIs can be a single
product or a product bundle, which allows you to create product bundles within product
bundles.
Product cardinality defines the default, minimum and maximum quantities of the product
that are allowed in the product bundle. You can also override the cardinalities of product
bundles when they are included within another product bundle.
2. Under Product Management next to Product, click the new icon . This will
launch the New Product dialog.
3. In the New Product dialog, enter the following information. We will create this
product bundle as an offer.
Field Value
5. Now you can complete the rest of the General Properties using the information
shown below and click Save.
Field Value
Status Active
Orderable ✓
Active ✓
2. Click the Add icon to add a product child item (PCI) to the product bundle.
3. In the product child item window on the right, enter the following GENERAL
PROPERTIES information.
Child Product Apple iPhone X Use the lookup dialog to select the
child product.
4. In the product child item window on the right, enter the following CARDINALITY
information.
NOTE:
The Virtual Item flag, when checked, makes the product item not assetizable.
This is customarily used as a grouping mechanism, and to set cardinality for
the parent product nodes.
The Collapse Hierarchy flag, when checked, enables a Search Item dialog in
the Cart’s line items pane, allowing users to search items within the bundle
and then add additional products to the bundle. This is intended for use with
very large product bundles.
5. Click Save.
NOTE:
Product Child Items can be added to any product in the bundle, not just the
current parent product.
6. Click the Add icon next to the Get Smart iPhone + Watch Bundle Offer.
7. Using the steps learned above, add the following child products to the bundle with
the cardinalities defined below.
Relationship Collapse
Product Type Sequence Min Default Max Hierarchy
NumberSync Child 30 0 0 1
1. In the Product Structure window, expand the Individual Simple Choice Plan
product bundle by clicking the toggle arrow > to its left. Click in the white space of
the line for the 4G LTE Data Plan. Do NOT click the product name link because that
will navigate you to the product record.
2. The product child item window will display on the right. Notice the existing
CARDINALITY settings that were set when the 4G LTE Data Plan product was added
to the Individual Simple Choice Plan product bundle.
NOTE:
Cardinality overrides must be equal or greater than the minimum limit set by
the original cardinality. For example, if the minimum original quantity is 2, you
cannot create a minimum override quantity of 1; the override must be greater
than or equal to 2.
This override will change the minimum quantity to 1 and the maximum quantity to 2 only
when it is bundled in the Get Smart iPhone + Watch Bundle Offer.
6. Click Save.
7. Now you want to exclude Netflix from the bundle altogether. Click in the white
space of the line for Netflix to view the association details. Do NOT click the product
name link because that will navigate you to the product record.
10. Set the minimum, maximum and default cardinalities for the Netflix product within
the Get Smart iPhone + Watch Bundle offer to 0.
Product Min Max Default
Netflix 0 0 0
This override will exclude the Netflix product from the Individual Simple Choice Plan
bundle only when it is bundled in the Get Smart iPhone + Watch Bundle Offer.
NOTE:
You may have noticed the Exclude Item button when you switched into
override mode. Unfortunately, although this works beautifully when excluding
items from bundles for new orders, you may run into difficulties when it
comes to updating existing orders. Instead, we suggest you play it safe by
adding an override to set the minimum, maximum and default cardinality to 0
when you want to exclude an item, as you have done in the example above.
14. In the product structure window, expand the Individual Simple Choice Plan
product bundle.
NOTE:
As discussed earlier, a bundle must have a price list entry for it to be available
to customers. However, in your exercise, the bundle price is the sum of all the
product child items’ prices. Therefore, you need to add a price list entry for $0
to your new product bundle, so that it will roll up prices for the product child
items when it’s displayed in the Cart.
2. Click New.
3. In the PRICE LIST ENTRY General Properties dialog, enter the following information.
Field Value
Base Price ✓
4. In the PRICE LIST ENTRY Pricing Variable dialog, enter the following information.
Field Value
Sub-Type Standard
8. In the PRICE LIST ENTRY Effectivity dialog, enter the following information.
Field Value
Active ✓
9. Click Save.
Goal
● Specify what the Salesforce Industries batch jobs do, when to run them and why
● Describe how the platform cache is used and when you need to refresh it
● Explain why and when you need to calibrate product attributes
Tasks
1. Refresh the product hierarchy cache
2. Confirm that batch jobs completed successfully
Time: 20 mins
Salesforce Industries have created several administrative jobs to help you complete these
tasks. The jobs primarily do three things:
Cache catalog data into memory rather than having to request data from
the database.
When changes are made to the shared catalog, you need to determine when to run each
job. Some jobs can be run without affecting live production environments, but others, such
as the Clear Managed Platform Cache and Refresh Managed Platform Cache must be run
during downtimes or low usage. If you run the Product Hierarchy Maintenance or Refresh
Platform Cache jobs while people are using CPQ, the maintenance jobs can disturb the CPQ
APIs. This means that CPQ may produce incorrect data whilst the maintenance jobs are in
progress. From the Fall ‘20 release onwards, there is a Delete Old Data checkbox beneath
the Product Hierarchy Maintenance option, which allows you to clear old data, or keep it. If
you choose to keep it, the APIs will run off the old data until the new data is in place, so
there is no downtime whilst the batch jobs are running. These jobs do not impact Industries
Order Management order decomposition or order orchestration, and will not affect
decomposition or orchestration that is happening as the jobs are run. In this lesson, you will
learn about the most common administrative jobs used in managing the shared catalog
and when you should use them.
Caching of data is primarily a performance optimization technique for situations where the
same data will be required across multiple transactions. Rather than recalculating or
re-retrieving the information, data can be stored in an easy-to-access place and reused in
later transactions.
Industries CPQ primarily caches data in a Salesforce platform cache called the
“CPQPartition.” The CPQPartition is created when your Salesforce Industries Cloud is
installed, but you will need to enable it and ensure that it has enough space allocated. You
can allocate a minimum of 10 MB for the platform cache or a maximum of whatever is your
Salesforce platform cache limit.
RESOURCE:
For more information on Salesforce platform caches, please see the following
Salesforce Trailhead:
https://trailhead.salesforce.com/modules/platform_cache/units/platform_ca
che_get_started
The CPQPartition, just like all platform caches, is made up of a session cache and an org
cache.
The session cache, as the name implies, is cache space for an individual user session. The
session cache is currently not used.
Besides caching within each user session, you also need to cache items for use by any user
across the application. In the CPQPartition, the org cache performs this function by storing
product hierarchy properties (JSON key-value pairs), rules, and line item properties for your
entire organization. For example, when a user creates a product bundle containing child
products, the org caches the product hierarchy. So, when any user adds the product bundle
to the Cart, the Cart actually retrieves the product hierarchy data from the cache.
In addition to the CPQPartition platform cache, there are other caches used in the
Communications, Media, and Energy & Utilities Clouds, such as the Digital Commerce API
Caching. To learn more about the Digital Commerce solution, please refer to your
documentation or the Digital Commerce training course.
The graphic provides a visual of Industries CPQ operations and when those transactions are
reflected in the org cache.
To access these jobs, go to the Vlocity CMT Administration tab then, under Admin Console,
select Maintenance Jobs.
The Product Hierarchy Maintenance, Clear Managed Platform Cache and Refresh Platform
Cache jobs are the bottom three jobs on the Maintenance Jobs list.
The Product Hierarchy Maintenance job builds a streamlined version of the product
hierarchies in the data store sObject. Separately but related, Refresh Platform Cache invokes
an Apex job that uses the product hierarchy data from the data store to build a cached
version of the product hierarchy using key-value pairs.
Check the Delete Old Data option in the Product Hierarchy Maintenance job if you want to
delete the older, inactive dataset. This saves storage space as only the new, rebuilt dataset is
available. However, this option should be used with caution. If you run the Product
Hierarchy Maintenance or Refresh Platform Cache jobs while people are using CPQ, the
maintenance jobs can disturb the CPQ APIs. This means that CPQ may produce incorrect
data whilst the maintenance jobs are in progress. If you choose to keep the old data, by
leaving the Delete Old Data checkbox unchecked, the APIs will run off the old data until the
new data is in place, so there is no downtime whilst the batch jobs are running.
Ok, so what does all that mean? Let’s take a look at when you would run these jobs.
Any time you make changes to product bundles (such as product cardinality), you must
rebuild the product hierarchy data store and cache, which means you must run the Product
Hierarchy Maintenance job, followed by the Clear Managed Platform Cache job and the
Refresh Platform Cache job. Otherwise, you will not see your cardinality changes applied at
run-time in the Cart.
You probably noticed the Clear Managed Platform Cache job that sits between the Product
Hierarchy Maintenance and Refresh Platform Cache. The Clear Managed Platform Cache
job deletes all data in the org cache in the platform cache. This creates a “fresh slate” for the
Refresh Platform Cache job to deliver its revised product hierarchy data to the org cache.
Pricing plan steps and their parameters, in addition to context and advanced rules data, will
be repopulated when pricing and rules are invoked at run-time.
When making changes to a rule or pricing plan step, it’s not necessary to run the Product
Hierarchy Maintenance job. Why? Simple, you don’t need to rebuild the product hierarchy
data store.
NOTE:
When you run the Clear Managed Platform Cache job, all product hierarchy,
pricing plan steps and rules data will be deleted from the org cache, which
may affect run-time performance, so it’s recommended that these jobs be run
during times of low usage or system downtime.
Your training playground is a copy of our master TSO (Trial Source Org), and it contains
products and product attributes that have been seeded in support of the lab exercises. Each
product’s attributes are stored in JSON format in a field called JSONAttribute. The
JSONAttribute field contains attribute record ids, which allow faster direct access for system
processes.
However, when we create new orgs from our master TSO, the Salesforce copy process is
unable to detect those record ids embedded in the JSONAttribute field, and so they remain
coded as the original attribute record ids from the TSO. Left as it is, this will create errors in
other attribute processes.
You can see a sample JSONAttribute field in the screenshot with the record ids highlighted
in yellow.
Salesforce Industries Communications, Media, and Energy & Utilities Clouds developed an
Apex batch job called EPCProductAttribJSONBatchJob to reprocess these product attributes
and save the JSONAttribute field with your new org’s attribute record ids.
NOTE:
For convenience, from the Attributes tab within the CME Admin app we built a
Process Attributes button in your training playground to invoke the batch job,
otherwise, you would run this job from the Developer Console.
ALERT:
Never edit your product attributes through this interface. You manage them
through the Vlocity Product Console, as you saw earlier in this module.
NOTE:
If your org contains migrated product attribute overrides from promotions,
you must also run EPCFixCompiledAttributeOverrideBatchJob to correct the
attribute record ids. This training playground does not contain attribute
overrides, so you do not need to run it.
Let’s take this concept outside of a controlled training scenario and put this concept to work
in the real world. Any time you spin an org or import data that contains product attributes,
such as creating a sandbox environment, you must correct the product attribute record ids.
Do all these words have your head spinning and seem like mumbo jumbo? The graphic
below provides a visual representation of when to run this Apex job and the update that
occurs in the JSONAttribute field.
NOTE:
This job also can be helpful when troubleshooting product attribute issues. For
example, an updated attribute or value that is not displaying at run-time. Run
this job to reprocess the product attributes saved to the JSONAttribute field.
Once the job completes, the updated attribute or value will display in the
JSONAttribute field and at run-time.
In the previous exercise Devi created a product bundle and made a change to the cardinality
of that bundle. So, the product hierarchy data in the platform cache must be updated, or the
new product bundle will not display properly in the Cart.
1. Build the product hierarchy data store by running the Product Hierarchy
Maintenance job.
a. In the Lightning Navigation Bar, click More, and then select Vlocity CMT
Administration.
b. Under Admin Console, click Maintenance Jobs.
NOTE:
A successful job completion report will also be emailed to the email address
registered for your training playground.
a. On the Maintenance Jobs page, find the REFRESH PLATFORM CACHE job,
and click Start.
b. Click OK to accept the notification that the job may affect your org settings
and items.
c. You will see messages indicating that the job completed successfully.
1. Click on the Salesforce Setup icon in the top right of your screen to open
Salesforce Setup.
4. In the list of Apex jobs, notice the listings for the following batch jobs. You can see
the most recent listings by looking at the Submitted Date, which shows you the jobs
that were run. Ensure that the job status shows no errors. The rest of the listings were
copied from the master training org.
NOTE:
By default, the batch job runs for all product attributes, but can be amended
to run for a specific subset of data. Refer to your documentation for details.
ALERT:
If the ProductAttributesBatchProcessor displays an
INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY error, the
EPCProductAttribJSONBatchJob did not run successfully. Rerun this job by
navigating to Lightning App Launcher--> Vlocity Attributes-->List View
All-->Process Attributes --> Start Processing.
7. Click Recalculate.
ALERT:
The Clear Cache button shown in this screen will delete the contents of the
CPQPartition cache. There is also a CLEAR MANAGED PLATFORM CACHE
button accessible from the Vlocity CMT Administration Maintenance Jobs
screen that performs the same function. However, neither of these buttons
rebuilds the cache. The cache should never be cleared while orders are being
created.
Goal
● Understand how product bundles display in the Cart
● Understand how product cardinalities are used in the Cart
Tasks
1. Review the new product and product bundle in the Cart’s product list
2. Add the product bundle to the Cart and test the cardinalities
Time: 15 mins
Task 1: Review the new product and product bundle in the Cart’s
product list
2. Click New.
4. Click Save.
5. From the Power Launcher, click Configure Order. This invokes the Cart.
7. In the product list pane, find the Apple Watch Series 5 product, and click More to
invoke the Product Details modal window.
9. Click Close.
Task 2: Add the product bundle to the Cart and test the cardinalities
2. In the product list pane, find the Get Smart iPhone + Watch Bundle Offer product,
and click Add to Cart.
4. Click any of the Take Me There “eye” icons on the right side of Messages.
5. In the Line Item Details modal window, click the Color attribute for the Apple
iPhone X.
6. Notice the two iPhone X colors from the standard color picklist. Select one.
7. In the Line Item Details modal window, click the Color attribute for the Apple
Watch Series 5.
8. Notice the standard color picklist has been overridden by the Band Color picklist.
Select one.
9. Scroll down and set the Wearables Band Type and Connectivity to any values from
their picklists.
10. Scroll down and set the Mobile Plans – Data Plans attribute to Unlimited.
11. Notice the design-time attributes such as the Mobile OS and Capacity of the watch
that are read-only.
13. Back in the Cart, notice the Recurring Total and One Time Total prices for the Get
Smart iPhone + Watch Bundle Offer. Pricing from the product child items has been
rolled up into these totals, while the Recurring Charge and One Time Charge prices
for the parent product remain $0.
14. In the Apple iPhone X line item, click into the Total Quantity field and type 0.
Notice the error message resulting from the minimum quantity set in the product
cardinality.
15. Set the quantity for the Apple iPhone X to 5. Notice the error message resulting
from the maximum quantity set in the product cardinality.
17. Notice the Add to Cart button for the NumberSync line item. This is because the
default quantity set for this product child item was 0.
18. Under the Individual Simple Choice Plan product bundle, notice the Search Item
dialog. This dialog was included because the Collapse Hierarchy flag was checked.
Notice also that the Netflix product is excluded from the bundle.
19. Click in the Search Item dialog, and type data. Notice that you can search for
products within the product bundle, which is helpful for very large and complex
product bundles.
Goal
● Challenge exercises solidify what you learned in the exercises, build your skills, and
allow you to make mistakes -- which is how you will master this application
Tasks
1. Review product requirements
2. Build products in EPC
3. Test new products in the Cart
Time: 45 mins
64GB
256GB
Product Capacities
512GB
1TB
Silver
Product Colors
Space Gray
Wifi
Product Connectivity
Wifi + Cellular
Color
Configurable in the cart and
Capacity
required
Connectivity
NOTE:
For this challenge, assume pricing is the same for all capacities, connectivity
and price lists. Want to challenge your pricing skills further? Consider using
Attribute-Based Pricing.
Product Description Work smarter with the Apple iPad Pro bundle.
Apple Pencil 1 1 2
TIPS:
● Is the product active?
● Did you create and assign correct attributes to the product?
● Assign appropriate attribute metadata?
● Was the correct object type selected?
● Is the cardinality correct?