100% found this document useful (1 vote)
886 views140 pages

CPQ 7.0 Admin Guide

Uploaded by

nidnikh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
886 views140 pages

CPQ 7.0 Admin Guide

Uploaded by

nidnikh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 140

Configuration & Pricing (CPQ)

Admin Guide

Version: 7.0 | 7.760.5


Document Version: November 21, 2014
TOC

Contents
Revision History............................................................................................................................. 6

Installing Apttus CPQ................................................................................................7


Pre-Installation Settings............................................................................................................................................. 8
To enable Salesforce CRM Content.................................................................................................................8
Installing the Apttus CPQ Packages............................................................................................................................ 9
To install the CPQ module packages...............................................................................................................9
Post Installation Settings.......................................................................................................................................... 11
Customizing the CPQ Application.................................................................................................................11
Customizing the Catalog Page...................................................................................................................... 11
Customizing the Options Page......................................................................................................................11
Customizing the Installed Products Page......................................................................................................12
Customizing the Quote/Proposal Application.............................................................................................. 12
Customizing the Comply Application............................................................................................................13

Getting Started.......................................................................................................14
CPQ Overview.......................................................................................................................................................... 15
About this Admin Guide............................................................................................................................... 15
System Requirements...................................................................................................................................15
Apttus CPQ Model........................................................................................................................................ 15
Logging in to CPQ..................................................................................................................................................... 16
To log in to CPQ............................................................................................................................................ 16
Creating an Opportunity.......................................................................................................................................... 17
To create an opportunity..............................................................................................................................17

Product Management.............................................................................................18
Managing Products.................................................................................................................................................. 19
Creating Products......................................................................................................................................... 19
Associating Options to Option Groups......................................................................................................... 20
Associating Option Groups to a Bundle........................................................................................................21
Associating a Product to a Category.............................................................................................................22
Configuring Multi-level Bundles................................................................................................................... 22
Running a Bundle Maintenance Batch......................................................................................................... 23
Using a Product Family................................................................................................................................. 24
Configuring a Product Group........................................................................................................................25
Cloning a Bundle within the same Quote.....................................................................................................26
Managing Categories................................................................................................................................................28
Creating and Editing Categories................................................................................................................... 28
Working with Hierarchy Manager................................................................................................................ 29
Running a Category Maintenance Job..........................................................................................................33
Creating and Managing Attributes........................................................................................................................... 35
Creating a Product Attribute field................................................................................................................ 35
Creating a Product Attribute Group............................................................................................................. 35
Associating an Attribute Group to a Product................................................................................................36
Configuring Product Comparison on the Catalog Page............................................................................................ 38
Setting Up Feature Sets................................................................................................................................ 38
Associating a Feature Set to a Product.........................................................................................................39
Define Feature Values for a Product.............................................................................................................39

2
TOC

Hiding Compare Products Button on the Catalog Page................................................................................ 40


Configuring Product Footnotes................................................................................................................................ 41
To create product footnotes.........................................................................................................................41
To create a proposal type template..............................................................................................................41
To create an agreement type template........................................................................................................ 42
Refining your Search.................................................................................................................................................44
To configure the custom fields..................................................................................................................... 45
To configure search filter fields.................................................................................................................... 46
To configure refine search options............................................................................................................... 47
To select a search field value for a product.................................................................................................. 48
Refine Your Search With Dynamic Filter Values........................................................................................... 48
Product Visibility...................................................................................................................................................... 49
To configure Search Filters (CPQ)................................................................................................................. 49
To create a Search Filter (CPQ)..................................................................................................................... 50

Price Management................................................................................................. 52
Managing Price Lists and Price List Items.................................................................................................................53
Creating a Price List...................................................................................................................................... 53
Associate Price List with Categories............................................................................................................. 53
Creating Price List Items............................................................................................................................... 54
Managing Price Rules............................................................................................................................................... 59
Creating Price Ruleset.................................................................................................................................. 59
Creating Price Rule....................................................................................................................................... 60
Defining or Creating Price Matrices......................................................................................................................... 62
Creating Price Dimensions............................................................................................................................62
Creating Price Matrices................................................................................................................................ 63
Running a Criteria Maintenance Job........................................................................................................................ 65
To run a criteria maintenance job................................................................................................................ 65
Enabling Price Ramps............................................................................................................................................... 66
To enable price ramps.................................................................................................................................. 66
Enabling Tiered Pricing.............................................................................................................................................67
To enable tiered pricing................................................................................................................................67
Contract Pricing........................................................................................................................................................ 68
Associating a Contract Price to a Price List...................................................................................................68
Defining a contract to be Used in a Quote................................................................................................... 68

Rule Management..................................................................................................70
Configuring Constraint Rules....................................................................................................................................71
To create constraint rules............................................................................................................................. 71
Creating Constraint Rule Conditions............................................................................................................ 71
Creating Constraint Rule Actions..................................................................................................................73
Constraint Rule Maintenance.......................................................................................................................76
Setting up an Inclusion Rule......................................................................................................................... 77
Setting up an Exclusion Rule.........................................................................................................................77
Setting up a Validation Rule......................................................................................................................... 78
Creating Product Default Rules................................................................................................................................ 79
To enable product default rules................................................................................................................... 79
To create product default rules.................................................................................................................... 79
To create a product default value.................................................................................................................80

Managing Assets.................................................................................................... 81
Configuring Asset Based Ordering............................................................................................................................82
Adding Create Asset Trigger......................................................................................................................... 82

3
TOC

Adding a Section to Display Asset Line Items............................................................................................... 83


Controlling Asset Actions In The Shopping Cart....................................................................................................... 84
To set display action settings for assets........................................................................................................84
To set assets as read only in the installed products cart page......................................................................85
To set direct configure asset actions............................................................................................................ 85
Displaying Asset For Related Location......................................................................................................................87
To create a related location within an account location...............................................................................87
Filtering Assets In Installed Products........................................................................................................................88
To filter assets in the installed products page.............................................................................................. 88
Amending Bundled Product Options........................................................................................................................89
To amend bundle product options............................................................................................................... 89
Selecting All Assets For An Action............................................................................................................................ 90
To select all assets for an action................................................................................................................... 90
Upgrading Assets......................................................................................................................................................91
To upgrade assets......................................................................................................................................... 91
Navigating To The Installed Products Page Directly..................................................................................................92
To configure direct navigation to the Installed Products page..................................................................... 92
Asset Enhancements - Auto-inclusion Constraint Rules...........................................................................................93
Configuration for Auto Inclusion Constraint Rule.........................................................................................93
Custom Settings for Call Back Classes...................................................................................................................... 94
To add call back classes in Custom Settings..................................................................................................96

Guided Selling Setup.............................................................................................. 97


Setting Up Guided Selling.........................................................................................................................................98
Creating Custom Fields in Search Attribute Value Object.............................................................................98
Creating a Sample Flow Using Flow Designer...............................................................................................98
Creating a Guided Selling Visualforce page................................................................................................ 101
Defining the Guided Selling Rule................................................................................................................ 102

Managing Quote/Proposal Configuration............................................................. 104


Enabling PDF Security on Generated Quote/Proposal Document......................................................................... 105
To enable pdf security on the generated Quote/Proposal document........................................................105
Setting Up Quick Quote Mode............................................................................................................................... 106
To create quick quote custom button.........................................................................................................106
To add the quick quote button................................................................................................................... 106
Customizing The Visualforce Pages........................................................................................................................ 107
Customizing Display Columns.....................................................................................................................107
Customizing Display Actions.......................................................................................................................108
Auto-synch Cart Lines.................................................................................................................................110
Creating Promotional Banners............................................................................................................................... 112
To create banner settings........................................................................................................................... 112

Appendices.......................................................................................................... 113
Appendix A - Apttus Contact Support.................................................................................................................... 114
To determine the salesforce.com organization ID...................................................................................... 114
To determine version numbers.................................................................................................................. 114
To grant login access...................................................................................................................................114
To find the merge server end point............................................................................................................ 115
Appendix B - Custom Settings................................................................................................................................ 116
System Properties.......................................................................................................................................116
Config System Properties........................................................................................................................... 120
Catalog Page Settings................................................................................................................................. 123
Bundle Page Settings.................................................................................................................................. 126

4
TOC

Installed Products Settings......................................................................................................................... 126


Proposal System Properties........................................................................................................................127
Comply System Properties......................................................................................................................... 128
Appendix C - Create Asset Trigger Sample Code.................................................................................................... 130
Apttus Configuration & Pricing Package Objects....................................................................................................137
Profile Settings and Security...................................................................................................................................140

5
Revision History

Changes to this document are listed with the newest at the top.

Date Changes to Description


November 21, 2014 Multiple sections Multiple updates to accomodate features and
enhancements introduced in 7.0 version.
August 26, 2014 Multiple sections Updates including SP6 Hotfix release.
May 20, 2014 Multiple sections Multiple updates based on recent releases and review
feedback.
March 15, 2014 Multiple sections based on Added new features and enhancements for Summer13
SP4 updates. SP4.
Installing Apttus CPQ
Installing Apttus CPQ

Pre-Installation Settings
Before you can install Apttus CPQ module packages, you must ensure that Salesforce CRM Content is enabled in your
org.

To enable Salesforce CRM Content

Prerequisites
You must be logged into Salesforce.com.

Steps
1. Go to Setup > Customize > Salesforce CRM Content > Settings and click Edit.
2. Select Enable Salesforce CRM Content.
3. Click Save.

Results
Salesforce CRM Content is enabled.

What's Next
You can start installing Apttus CPQ module packages.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 8


Installing Apttus CPQ

Installing the Apttus CPQ Packages


Multiple packages need to be installed to implement the complete CPQ solution. Packages for CPQ need to be installed
in the order indicated below. It starts with the Apttus base packages and then install the integration packages that
enable the various products to function together.
You may not need to install all of the packages. For instance, if your implementation does not use Apttus Advanced
Approvals you do not need to install Apttus Approvals Management or Apttus Quote/Proposal Approvals Management
Apttus and Apttus Support recommend downloading and upgrading Apttus packages into a sandbox, before
installing them into a production environment. If you need assistance, please contact Apttus Support before
installing.
Install packages in the following order:
• Apttus Contract Management
• Apttus Proposal Management
• Apttus Approvals Management
• Apttus Configuration & Pricing
• Apttus Quote/Proposal-Configuration Integration
• Apttus Quote/Proposal-Asset Integration
• Apttus CPQ API
• Apttus Quote/Proposal Approvals Management
• Apttus Contract-Configuration Integration
• Apttus Quote/Proposal-Contract Integration
After installing the above, these packages are only required if you are using the new Deal Manager and/or CPQ Header
Level Approvals
• Apttus Deal Manager
• Apttus Deal Maximizer
• Apttus Deal Approvals Management
• Apttus CPQ Approvals Management
• Apttus CPQ Maximizer

To install the CPQ module packages

Prerequisites
You must have Apttus provided login credentials to the Customer Success Portal.

Steps
1. Go to the Install Center tab in the Customer Portal.
2. Navigate to the product tabs and click Get It Now.
3. Click the environment where you want to install the package and follow instructions on the page.
4. Verify the Package Installation Details and click Continue.
5. Review the package API access and click Next.
6. Select the security level. If you know the required settings, select the third option, otherwise it is recommended you
select the second option and refine the security settings as required later:
• Grant access to admins only
• Grant access to all users
• Select security settings

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 9


Installing Apttus CPQ

Click Next and click Install.

Results
A message is displayed indicating the installation is underway.

What's Next
Once installed, repeat this procedure for each of the modules.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 10


Installing Apttus CPQ

Post Installation Settings


Post installation settings are part of your specific business requirement which means your CPQ implementation will work
with out-of-the-box installation, but you can customize the application as per your specific implementation using custom
settings.
• To customize CPQ, use the System Properties
• To customize the product selection page, use the Catalog Page Settings
• To customize the option selection pages, use the Bundle Page Settings
• To customize the Installed Products page, use the Installed Products Settings
• To customize Apttus Quote/Proposal, use the Proposal System Properties
• To customize Comply, use the Comply System Properties

Customizing the CPQ Application


You can customize the Apttus CPQ application as per your business requirement using the System Properties config
settings.

To customize the CPQ application

Steps
1. Click and click Config Settings.
2. Click System Properties.
3. Enter values as required in one or more of the fields and click Save.

Customizing the Catalog Page


You can customize the Catalog page for product selection as per your business requirement using the Catalog Page
Settings.

To customize the catalog page

Steps
1. Click and click Config Settings.
2. Click Catalog Page Settings.
3. Enter values as required in one or more of the fields and click Save.

Results
The new settings are applied and the catalog page is displayed.

Customizing the Options Page


You can customize the options page as per your business requirement using the Bundle Page Settings.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 11


Installing Apttus CPQ

To customize the options page

Steps
1. Click and click Config Settings.
2. Click Bundle Page Settings.
3. Enter values as required in one or more of the fields and click Save.

Results
The new settings are applied and the select bundle options page is displayed.

Customizing the Installed Products Page


You can customize the Installed Products page as per your business requirement using the Installed Products Settings.

To customize the installed products page

Steps
1. Click and click Config Settings.
2. Click Installed Products Settings.
3. Enter values as required in one or more of the fields and click Save.

Customizing the Quote/Proposal Application


You can customize the Apttus Quote/Proposal application as per your business requirement using the Proposal System
Properties custom setting.

To customize the quote/proposal application

Prerequisites
Navigate to Setup > App Setup > Develop > Custom Settings.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 12


Installing Apttus CPQ

Steps
1. Click Manage for Proposal System Properties and click New.
2. In Name, type System Properties as the data set name.
3. Enter details in one or more of the required fields and click Save.

Results
You have customized the proposal system properties settings.

Customizing the Comply Application


You can customize the Apttus Comply (Contract Management) application as per your business requirement using the
Comply System Properties custom setting.

To customize the comply application

Prerequisites
Go to Setup > App Setup > Develop > Custom Settings.

Steps
1. Click Manage for Comply System Properties and click New.
2. In Name, type System Properties as the data set name.
3. Enter details in one or more of the required fields and click Save.

Results
You have customized the comply system properties settings.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 13


Getting Started
Getting Started

CPQ Overview
Apttus Configuration & Pricing (CPQ) gives you complete visibility and control of the quote to order phase of your sales
process. Beginning in an opportunity, you can select products or services, configure and price them for simple or highly
complex scenarios, and produce high quality customer facing quotes and proposals.

About this Admin Guide


Apttus Configuration and Pricing (CPQ) Admin Guide is designed to provide administrators, involved with the CPQ
process in your organization, with information on configuring Apttus CPQ. This guide is designed to cover the most
common use cases for the Apttus CPQ Administration and assumes a level of familiarity with basic Salesforce. See
Saleforce User Guide for details on standard Salesforce functionality.

System Requirements
Apttus CPQ is a web-based, on-demand application that is accessed via a standard web browser through the Internet.
Before you install and start using CPQ, you must ensure the minimum system requirements.

System Requirements
Item Requirement
Operating System Standard Salesforce.com requirements. See Salesforce PDF.
Browser Standard Salesforce.com requirements. See Salesforce PDF.
Microsoft Office • Microsoft Word 2003 with Service Pack 3
• Microsoft Word 2007 with Service Pack 2 plus hotfix package 976477 (Word
2007 version number has to be greater than 12.0.6520.4999)
• Microsoft Word 2010 (32 bit & 64 bit)

Apttus CPQ Model


It is important to understand Apttus product and pricing objects and their relationships to each other in the overall
application. Apttus CPQ is divided into two major areas - Product Setup and Pricing Setup. Products and Pricing are
defined and customized based on how your organization wants to set up their configuration.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 15


Getting Started

Logging in to CPQ

To log in to CPQ

Prerequisites
You must install all the CPQ module packages.
You must have administrative privileges.

Steps
1. Go to http://www.salesforce.com.
If your organization is using a sandbox or test environment to access Apttus CPQ, for example as part of your User
Acceptance Testing (UAT) process, go to http://test.salesforce.com.
2. Click Login.
3. Enter your User Name and Password, and click Login.

Results
You have successfully logged into CPQ.

What's Next
Navigate to the Force.com App Menu, select either Apttus Product Setup or Apttus Pricing Setup to access the Product
or Pricing setup tabs respectively.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 16


Getting Started

Creating an Opportunity
Opportunities are the sales and pending deals that you want to track. By adding opportunities, you are also building
your pipeline, which will contribute to your forecast. The Opportunities tab displays a home page that lets you quickly
create and locate opportunities.
Apttus CPQ process starts when there is an opportunity. Create a new opportunity, if not created already. An
opportunity is a Salesforce.com object and is not an Apttus custom object. For more information on opportunities, see
Salesforce documentation.

To create an opportunity

Prerequisites
You must be logged in to Salesforce.com.

Steps
1. Navigate to the Opportunities tab, and click New.
2. Type a mandatory Opportunity Name, and enter a mandatory Account Name.
3. Enter a mandatory Close Date, and select a mandatory Stage.
You can enter additional information as per your requirement.
4. Click Save.

Results
An opportunity is created and saved.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 17


Product Management
Product Management

Managing Products
Products are standard products or services you sell to the end customer and are defined in the standard Salesforce
products table. A product is classified as: Standalone, Bundle, or Options. This section will help you understand how to
create products and group them in order to be displayed to the end customer.

A standalone product can be sold on its own under the offering category; whereas options can be grouped together as
an option group and then associated with a bundle product to be categorized as an offering. You can also associate a
bundle with another bundle.

Creating Products
A Product in Apttus terminology is a product or service that can be set up to be sold on its own as a standalone product
or options of other products. Products or services are set up as standalone, bundle, or options of other products.
• Standalone - This is an individual product that can be sold on its own.
• Bundle - Any product that has other products (options or bundles) associated with it.
• Options - This is a product that can be sold with a bundle product only via an option group.

To create a product

Prerequisites
Navigate to the CPQ Console tab.

Steps
1. From the Product Management section, click Add Products.
2. Type a mandatory Product Name and type a Product Code.
The Product Code can be an internal code or a product number to identify the product within your organization.
3. Type a Product Description and select a Product Family.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 19


Product Management

If the required Product Family is not displayed in the list, you must add a picklist value in the Product Family
field on the Product object.
4. To activate the product, select Active.
5. Enter the following product information, as required:

Must Configure Selecting this indicates that the end user has to configure a product to add options or
attributes or both. The Configure button is the only option available on the Catalog
page. When you select Must Configure, you must also select either Has Options,
Has Attributes, or both. Clearing the check box allows an end user both the options;
either add the product to cart directly or configure the product with attributes or
options, or both.
Has Attributes Selecting this indicates that the product has attributes associated to it. During the
quote creation process, the end user can enter values for those attributes. Using
the product attributes administration tool, you can associate product attributes to
products.
Has Options Selecting this indicates a product as a bundle that has options (bundles/options).
Using bundle manager tool, option products can be associated with a bundle product.
Has Defaults Selecting this indicates that when a product is added to the shopping cart, there are
some other products that may get automatically added to the cart.
Configuration Type Select one of the following type of the product:
• Standalone
• Bundle
• Option
This field is mandatory.
Uom Select a unit of measurement.
Has Search Attributes Selecting this indicates that the product has search attributes and is useful for
searching related products based on product attribute values.
6. Click Save.

Results
A product is created and saved.

What's Next
You can associate a product to a category or a price list. If you created an option product, you must first associate it to an
option group.

Associating Options to Option Groups


An Option is associated with a bundle product via an Option Group only, to give the end user an additional choice for a
product.
To create an Option product, create a new product and from configuration type select Option.

To associate Options to Option Groups

Prerequisites
You must have an existing Option product and an Option Group category.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 20


Product Management

Steps
1. Navigate to the CPQ Console tab and from the Product Management section, click Manage Categories.
2. Select an Option Group and click Hierarchy Manager.
For more information on how to build a hierarchy, see Working with Hierarchy Manager.
3. Select the lowest level node and select an option product from the available products list or search for an option
product to associate with the option group.
4. Click Associate.
You can associate multiple products to a category.
5. After you have selected the products to be associated, click Save.
The selected products are listed in the Remove tab of the product classification section.

Results
Option products are associated to an option group.

What's Next
You must associate option group to a bundle product.

Associating Option Groups to a Bundle


You must associate an Option Group that contains Options to a Bundle. After associating Options to an Option Group,
you must associate the option group to a Bundle.

To associate Option Groups to a Bundle

Prerequisites
Options must be associated to an option group.

Steps
1. Navigate to the CPQ Console tab and click Manage Products.
2. Select the bundle product to which you want to associate option groups and click Product Console.
3. From the Catalog section, click Manage Bundles/Options.
4. Click Add/Remove Option Groups.
5. From the available option groups list, select or search an option group to associate to the product and click
Associate.
6. To update the associated option group list in the left pane, click Update View.

7. Click Back to return back to the Product Console.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 21


Product Management

Results
Options are now associated to the bundled product via an option group.

What's Next
You can now associate the bundle product to a category or a price list.

Associating a Product to a Category


A product (standalone or bundle) must be associated to a category to be displayed on the catalog page.
This can be achieved from the product console. The product console allows you to associate a product to a category
through a user-friendly interface. The product console helps administration of product properties and association of
product with other CPQ artifacts. You can also associate a product to a category from the Hierarchy Manager.

To associate a product to a category

Prerequisites
You must have an existing product.

Steps
1. Select an existing product and click Product Console.
2. From the catalog section, click Associate to Product Category.
All the available categories are displayed along with their hierarchy.
3. Select the category to associate your product with and click Associate.
The selected category is displayed in the Associated section.
4. Click Done.

Results
Your desired product is associated with a category.

Configuring Multi-level Bundles


Your business may require you to configure a bundle in a bundle. This offers increased control over product selection,
as well as making it easier to select products as selecting one bundle full of products can replace having to select those
products separately.
Depending on the varied nature of your business needs, you can configure products that may contain multi-level
bundles. In addition to the ability to handle many levels of Sub-bundles also known as Inner bundles, some of the
bundles and/or options may be ramps or tiered offerings. This feature takes into account multi-level bundles with the
ability to also show Ramps or Tiers contained within the sub-bundles. You can also apply constraint rules to multi-level
bundles.
This feature enables you to configure a bundle and also view what products are being added along with its hierarchy to
your cart on the configuration page. The selected products appear in the My Options section on the left hand side of the
configuration page. You can also view and understand what bundle and option group you are currently in and navigate
to the parent or child/lower level bundle during the configuration. The catalog/product hierarchy navigation is similar to
the catalog and the configuration page. The product hierarchy is displayed in tree view and list view on the configuration
page. You can minimize/hide the tree view.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 22


Product Management

To configure sub-bundles on the configuration page, you must set up the Select Bundle Options visualforce page. It is
recommended that after making changes to any bundle product association, you must run a bundle maintenance job
that synchronizes all the bundles and options.
Changes done in option properties like MinQuantity, IsDefault do not require you to run bundle maintenance.

To set up select bundle options page

Prerequisites
Go to Setup > App Setup > Develop > Custom Settings.

Steps
1. Click Manage for Config System Properties.
2. Click Edit for System Properties.
3. In Option Page Default, type one of the following based on your requirement.

Table 1:

Apttus_Config2__SelectConfigOptionsDetailView Use this, when there are usage tiers, ramps and
attributes for options products. This page does not
support larger number of options on a bundle.
Apttus_Config2__ConfigureBundle Use this, when there are no usage tiers, ramps, and
attributes for option products. This page supports more
than 300 options on a bundle.
4. Click Save.

Results
The bundle options page is set up to display sub-bundles allowing you to configure a bundle in a bundle.

What's Next
You must run a bundle maintenance job.

Running a Bundle Maintenance Batch


After making changes to any bundle product association, you must run a bundle maintenance batch that synchronizes all
the bundles and options.
You can also use the Update View button from the Bundle and Option Manager page to run a maintenance of view
record for individual bundles. It is necessary to run a maintenance when a new bundle or bundle options are added
or removed. To make sure that all bundles have view records, use the Bundle Maintenance tab to run a bundle
maintenance batch to update view records for all bundles. The bundle maintenance tab uses the Update Bundle
Components page to run the batch.
Changes done in option properties like MinQuanity, IsDefault do not require you to run bundle maintenance.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 23


Product Management

To run a bundle maintenance batch

Steps
1. Click and click Bundle Maintenance.
2. From Product Name, select the name of the parent bundle, whose sub-bundles have been changed.

3. Do one or more of the following:


• To update the selected bundle, click Update In Batch Mode.
• To update all the bundles in the list, click Update All.
• To update basic bundles with a limited number of options, click Update in Fast Mode button.
A confirmation message is displayed indicating the process completed successfully.

Results
The asynchronous task that maintains the product bundle structure is executed.

To run a maintenance of view record for individual bundles

Prerequisites
You must have an existing bundle.

Steps
1. Navigate to the CPQ Console tab and click Manage Products.
2. Select an existing bundle to which you want to add or remove a bundle or an option.
3. Click Product Console.
4. From the Catalog section, click Manage Bundles/Options.
5. After making changes to the product association, click Update View.

Results
The view record of the selected bundle is updated.

Using a Product Family


Product Family is a standard salesforce.com feature. You can use Product family picklist to categorize your products.
For example, if your company sells both hardware and software, you can create two product families: Hardware and
Software.
To begin using product families:
• Customize a Product Family picklist
• Edit a product and select an appropriate Product Family value

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 24


Product Management

Customizing the product family picklist


You can customize the Product Family picklist to include the different categories of products you sell.

To customize the product family picklist

Steps
1. Go to Setup > App Setup > Customize > Products > Fields.
2. From Product Standard Fields, click Product Family.
3. From Product Family Picklist Values, click New. Add one or more picklist values with each value on its own line.
4. Click Save.

Results
The product family picklist displays the values you entered.

What's Next
For each product in your price list, edit the product and select the appropriate Product Family value.

Editing a Product to include Product Family


For each product in your price list, you need to edit the product and select the appropriate Product Family value.

To edit a product to include product family

Prerequisites
You must have an existing product.

Steps
1. Navigate to the Products tab and select a product to edit.
2. In Product Detail, from Product Family, select an appropriate value.
3. Click Save.

Results
Based on your selection, your product becomes part of a product family.

Configuring a Product Group


Product Group as opposed to Product Family can consist of products of different product family.
In order to configure a product group, you must create a product group and add products as members of the group. To
do so:
• Create a product group
• Add products to a product group

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 25


Product Management

Creating a Product Group

To create a product group

Steps
1. Navigate to the Product Groups tab and click New.
2. In Group Name, enter a mandatory group name.
3. In Description, enter a brief description to describe the purpose of the group.
4. Click Save.

Results
A product group is created and saved.

What's Next
After you have created a product group, you can add products as members of the group.

Adding a Product Group Member


You can add products as members of a group. You can also add products of different product family as a member of a
product group.

To add a product group member

Prerequisites
You must have an existing product group.

Steps
1. Navigate to an existing product group and scroll down to the Products related list.
2. Click New Product Group Member.
3. In Sequence, enter a mandatory sequence number.
4. In Product, enter a product or click to search and select a product.
5. In Product Group, the product group is displayed. You can click to search and select another product group.
6. Click Save.

Results
All the products added to the product group is displayed in the Products related list.

Cloning a Bundle within the same Quote


You can clone a bundle within the same quote, make modifications, and use it as another bundle.
This feature enables you to clone a bundle with attributes, options, and pricing, make desired changes and save it as
another bundle.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 26


Product Management

To clone a bundle within the same quote

Prerequisites
You must have an existing bundle.

Steps
1. Select a bundle and click Validate.
You can only clone a bundle.
2. Click (Copy icon).
3. You can configure the bundle or make the desired changes and click Validate.

Results
You have created another bundle from an existing bundle.

What's Next
You can proceed to pricing.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 27


Product Management

Managing Categories
Categories are high-level logical groupings of products together, affecting the way the end user sees them for selection
on the product catalog.
A category can be created for browsing products in the catalog page or they can be created for creating options groups
for a bundle product. Products are associated to a category through a category hierarchy. Category hierarchies are
maintained using the Hierarchy Manager. They are also used to total the product prices into logical groupings.
You can edit existing categories based on your specific business requirement.
Making changes to existing categories or category hierarchies requires you to run the Category Maintenance
batch job to maintain the hierarchy and associations.

Creating and Editing Categories


Categories are created to group products for the end user for product selection. Categories are also used to group
options within bundles.
There are two types of category:
• Offering: An Offering is what an organization makes available to a customer. Products can be made available under
an offering. A Bundle or a Standalone product can be associated with an Offering category. If you are creating a
category hierarchy for the first time, you need to create a new category via this method only. Most implementations
will have an existing hierarchy.
• Option Group: Option Groups categorize multiple option products. Option products are associated to option groups,
and option groups are further associated to bundle products, thus associating option to a bundle product.
• Both: This category type groups products that are of type Standalone and Option. For example: A keyboard can be
sold as a standalone product and also as an option along with a bundle.

To create a category

Prerequisites
From the Salesforce.com application menu, select Apttus Product Setup.

Steps
1. Go to the CPQ Console tab, and from the Product Management section, click Add Categories.
2. Type a mandatory Category Name, and a mandatory Category Label.
3. To make the category active, select Active.
By default, the Active check box is already selected.
4. From the Type picklist, select one of the following:
• Offering - Select this to categorize Standalone and Bundle products. This is the top level category.
• Option Group - Select this to group Option products.
• Both - Select this to group products that are Standalone and Option products.
5. Click Save.

Results
Based on your category type selection; an Offering, an Option Group or Both type category is created and added.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 28


Product Management

What's Next
Create categories based on your business requirement and start building a hierarchy using the hierarchy manager.

To edit an existing category

Prerequisites
You must have existing categories.

Steps
1. From the Salesforce.com application menu, select Apttus Product Setup.
2. Go to the CPQ Console tab, and from the Product Management section, click Manage Categories.
3. Select an existing category to change and click Edit.
4. In Category Name and Category Label, you can change the existing category name and category label.
5. To make the category active, select the Active check box.
6. From the Type list, select a category type.
7. Click Save.

Results
The category is modified and saved.

What's Next
After modifying the existing categories, you must run the Category Maintenance batch job.

Working with Hierarchy Manager


Categories are created, when a hierarchy needs to be created for the first time. Hierarchy defines the structure of the
product catalog.
Hierarchy Manager enables you to build and maintain a category hierarchy. You can add sub-categories also known
as nodes to a category, add an image, reorder categories, and associate products, thus building a hierarchy. Most
implementations will have an existing hierarchy.
You can create multi-level categories. For example: Home > Laptops > Model.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 29


Product Management

To build a hierarchy

Prerequisites
You must have an existing Offering category.

Steps
1. Go to the CPQ Console tab, and from the Product Management section, click Manage Categories.
2. Select an existing category and click Hierarchy Manager.
The Category Manager page is displayed which allows you to perform the following actions for the selected category.
• Add or edit a sub-category
• Remove a category
• Add an image
• Associate Products
• Reorder Categories
3. Click Save.

Results
A category hierarchy is built. The hierarchy is visible on the left hand side of the category manager page.

What's Next
After building the hierarchy, you must run the Category Maintenance batch job.

Adding a Sub-category
Sub categories also known as Nodes, categorize option products within an option group. You can add multiple sub-
categories/nodes to categorize option products within an option group.

To add a sub-category

Prerequisites
You must have an existing top level category.
You must be on the category manager page.

Steps
1. Select an existing category or sub-category from the hierarchy, and click Add Sub Category.
You cannot add a sub-category to a category that has products associated to it.

2. Type a Label and a Name for the sub-category.


3. In Guide Page, type the guided selling visualforce page name.
4. To display products in a category on the catalog page, select Default Search Category.
Default Search Category when checked displays the product by default under the category/sub-category in the
catalog page. If unchecked, the user has to first select the category from the carousal or the Browse section to see
the product.
5. To keep the hierarchy expanded at all times in the catalog page, select Expanded By Default.
6. Type a Long Description, and to display the node in the totals view on the shopping cart, select Include In Totals
View.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 30


Product Management

The Long Description is displayed for categories that have bundle products on the Options page.
7. To hide all the search filters on the catalog page in Narrow Your Search and Refine Your Search sections, select Hide
All Search Filters.
8. In the Search Filter Fields, from the Available list, select a field and click the Add button to move it to the Chosen list
to display the filter fields in the Refine Your Search section.
9. To add a small image like a symbol or icon for the sub-category, click Image.
10. To add a larger image for the sub-category, click Large Image.
11. Click Save.

Results
The sub-category is added as a node to the hierarchy.

Associating a Product to a Category from the Hierarchy Manager


You can associate a product to a category or sub category from the Hierarchy Manager. The Hierarchy Manager helps
associating a product and its properties to a category or sub category and also build a hierarchy. You can also associate a
product to a category from the Product Console.

To associate a product to a sub-category

Prerequisites
Navigate to the category that you want a product to be associated.

Steps
1. From the Product detail page, click Hierarchy Manager.
2. From the hierarchy, select the lowest level node.
3. From the Product Classifications section, from the list of available products,select a product that you want to
associate and click Associate.
You may also search for a product using the search filter criteria. All the associated products are displayed in the
Remove tab of the Product Classifications section.
4. Click Save.

Results
Your desired product is associated with a category.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 31


Product Management

Associating an image
An image can be associated to a category, sub-category or a product for visual clarity. You can add images of three sizes
depending on its placement.
The image sizes are small, medium and large. For associating a small image, you can use a 16X16 pixel size image, for a
medium image 50X50 pixel, and for a large image, the size is 100X100 pixels.

To associate an image

Prerequisites
You must have images of the following recommended sizes:
• 16X16 - Small Image
• 50X50 - Medium Image
• 100X100 - Large Image
You must be in an existing category to which you want to associate an image.

Steps
1. Click the Image or Large Image link.
2. In 1. Enter the path of the File, click Browse.
Browse to the image file, select it and click Open.
3. In 2. Click on the "Attach Icon" button, click Attach Icon.
After the file is completely uploaded, the image appears in the preview pane.
4. In 3. Click the "Done" button to return to the previous page, click Done.
If you click Done during an in-progress upload, the upload is cancelled.

Results
An image is associated with a category.

Removing a Sub-category
You can remove a sub category and its nested categories from a hierarchy at the same time. The Remove Category
button is available only for a lower level node.

To remove a sub-category

Prerequisites
You must have an existing sub category.

Steps
1. Select the sub category/node from the hierarchy that you want to delete and click Remove Category.
2. Click OK to remove the category and any of its nested categories.

Results
Sub category and all its nested categories are removed from the hierarchy.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 32


Product Management

Reordering categories
You can rearrange the order of your categories or sub-categories within a hierarchy. Reordering of categories can be
done from the leaf nodes. Leaf nodes are the level of categories between the top level category and the lowest node.

To reorder a category

Steps
1. Select a leaf node/category from the hierarchy and click Reorder.
2. Click or next to the category to move the category up or down.
3.
After you have finalized the order, click .

Results
The system updates the order and displays the hierarchy.

Using Search To Find Products


Apttus CPQ has a built-in comprehensive search feature. Use keyword search for a product or use the Advanced Options
search feature to search for a product using filter criteria.
Standard Search

Advanced Options

Running a Category Maintenance Job


After making any change to category definition or category product association, removal or hierarchy change, you
must run a Category Maintenance job. This de-normalizes the hierarchy into a custom object for reporting and totaling
purposes. If category maintenance is not run, the end user may see incorrect hierarchy or totals on the cart page.
Important You must run the Category Maintenance batch job after every CPQ version upgrade.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 33


Product Management

To run a category maintenance job

Prerequisites
Go to Setup > Administration Setup > Email Administration > Deliverability. In the Access to Send Email section, ensure
that the Access Level is set to All Email.

Steps
1. Navigate to the Category Maintenance tab.
2. From the Hierarchy picklist, select the top level category for your organization.
Typically this will be the name of your organization.
3. Click Update View.

Results
This executes an asynchronous batch job that maintains the hierarchy. After you click Update View, the administration
task is complete and an updated history for all the batch jobs is displayed.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 34


Product Management

Creating and Managing Attributes


Attributes are used to associate certain features to a product. Examples of common attributes are color, size, weight,
and more. Attributes are associated to a product either to drive pricing or simply stored for informational purposes
against the line item for other purposes. Attributes are associated to products through Attribute Groups.
The Attributes administration page allows you to create and delete attribute groups that can be associated or
dissassociated with products. You can manage attribute groups and attributes associated to a product. You can also
manage the sequence for associated attribute groups.
• Creating a product attribute field
• Creating a product attribute group
• Associating an attribute group to a product

Creating a Product Attribute field


Product Attributes are used to associate certain features to a product. You must create product attribute fields in the
Product Attribute Value object to represent an attribute. These attribute fields are then associated to a product via
attribute groups.

To create a product attribute field

Prerequisites
Go to Setup > App Setup > Create > Objects.

Steps
1. On the Custom Objects page, scroll down and select the Product Attribute Value object.
2. Scroll down to the Custom Fields & Relationships related list, and click New.
You will be directed to the standard Salesforce field creation wizard. With the help of the wizard, you can create a
product attribute field, set up field dependencies, define workflow rules, line item validation rules, defaults, and
more.

Results
The Product Attribute field is created.

What's Next
Create an Attribute Group and associate the product attribute field you created to the attribute group.

Creating a Product Attribute Group


Attribute groups are groupings of Product Attributes. You must create a product attribute group and associate product
attribute field to it. Multiple product attributes can be grouped together.

To create a product attribute group

Prerequisites
You must have an existing product attribute field.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 35


Product Management

Steps
1. Navigate to the Products tab and select a bundle product.
2. Click Product Console and from the Additional Data section, click Attributes.
3. Click Manage Association and click New.

4. Type a mandatory Group Name, and type a Description.


5. To display the attributes in two columns, select Two Column Attribute Display.
6. In the Product Attribute Edit section, to make an attribute field read-only, select Is Read Only.
7. From Field, select an existing attribute field to be associated to the attribute group.
More than one attribute can be associated to a group and thus shared across groups. You can do one or more of the
following:
• To add a new row, click Add.
• To delete a row, click Del.
• To reorder an entry, click or next to it.
• To create and add a new attribute field, click Create Field.
8. Click Save.

Results
An attribute group is created with attribute fields associated to it.

What's Next
You must associate the product attribute group to a product.

Associating an Attribute Group to a Product


You must associate an attribute group to a product for displaying the attributes (features) on the attributes page.

To associate a product attribute group to a product

Prerequisites
You must have an existing product attribute group with product attribute field associated to it.

Steps
1. Navigate to the Products tab and select a bundle product.
2. Under Product Details, select the Has Attributes checkbox.
Clearing the Has Attributes checkbox disables the attributes page.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 36


Product Management

3. Click Product Console and from the Additional Data section, click Attributes.
4. Click Manage Association.
5. From the Available Groups list, select one or more attribute group and click Add.

Results
An attribute group is associated to a product.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 37


Product Management

Configuring Product Comparison on the Catalog Page


You can enable an end user to compare features of multiple products on the catalog page.
In order to configure product comparison on the catalog page, you must set up feature sets with one or more features.
You must associate these feature sets to one or more products and then define feature values for each product. The
configuration allows you to enable or disable a product feature to be displayed during product comparison.

Setting Up Feature Sets


Feature sets are a collection of features that can be associated to a product.
You must first define a feature set and then define features for each set.

To create feature sets

Steps
1. Click and click CPQ Console.
2. From the Product Management section, click Add Feature Set.
3. Type a mandatory Feature Set Name, and type a Description.
4. In the Feature Information section, type a Feature Name and a Description.
5. To add more than one feature, click New. A new row is added.
The sequence number is auto-populated. You can rearrange the sequence by clicking and dragging the row.
6. Click Save.

Results
A feature set is set up with features.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 38


Product Management

What's Next
You must associate a feature set to a product for product comparison on the catalog page.

Associating a Feature Set to a Product


Using Product Console, you must associate a feature set to a standalone and a bundle product.

To associate a feature set to a product

Prerequisites
You must have an existing product.

Steps
1. From the CPQ Console, click Manage Products and select an existing product to associate a feature set.
2. Click the Product Console button and scroll down to the Additional Data section, and click Features.
3. Click Manage Associations and from the Available Groups list, select a feature set for association and click Add.

Results
The feature set is associated to a product.

What's Next
Define values for the features you just created.

Define Feature Values for a Product


You must define the feature values for a given product.

To define feature values for a product

Prerequisites
You must have an existing feature set and must be associated to a product.

Steps
1. On the Product Feature Values page, select the feature set listed in the left pane and type values next to the each
feature.

2. To display the feature on the product comparison page, select Is Included and click Save.

Results
Features Values that you just defined are saved.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 39


Product Management

Hiding Compare Products Button on the Catalog Page


There is a new custom setting that enables you to show or hide the Compare Products button and the product compare
check box in the Catalog page.
After applying the new setting, you will no longer see the Compare Products button and the item level product compare
check boxes.

To hide the compare products button on the catalog page

Steps
1. Click and click Config Settings.
2. Click Catalog Page Settings and from the Product List Settings section, select Hide Compare Products to hide the
compare products feature on the catalog page.
3. Click Save.

Results
The compare products feature is not displayed on the catalog page.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 40


Product Management

Configuring Product Footnotes


Product Footnote object and two other objects: Proposal Footnote and Agreement Footnote enable you to dynamically
include static footnote content in your quote/proposal documents, based on the products that are included in the quote
as Proposal Line Items.
When a quote is finalized, the system creates corresponding Proposal Footnotes records. Merge Fields for this related
object must be used in the proposal type templates. Similarly, for the agreement documents and agreement type
templates merge fields from the Agreement Footnotes object must be used for the system to bring footnotes for the
included Agreement Line Items.
Currently, the system supports multiple Footnotes for the same product; each being a text for up to 4000 characters
on separate lines. Only unique footnote records are brought by the system to the context object level on finalization.
Footnotes for the line items of the type: Product/Service, i.e., standalone products or bundles, are supported.

To create product footnotes

Steps
1. Select a product and from the Product Detail section, click Product Console.
2. Scroll to Additional Data and click Terms to display the New Footnote page.
3. Type a Footnote Name and type the desired text of the footnote in Body.
4. Type a mandatory Sequence and click Save New Footnote.

Results
The footnote record is saved and associated to with the product and automatically added to the Footnotes related list.

What's Next
You can go to the New tab and add another footnote.
You can go the Associate tab and search for an existing footnote to add to this product's Footnotes related list. You can
associate only one footnote per product, but a footnote can be associated to more than one product.
From the Edit tab you can make changes to the footnote or click Remove and choose to remove it from this product or
any other products it has been associated with.
The newly created footnote can also be associated with other products.

To create a proposal type template

Prerequisites
You must have existing product footnotes.

Steps
1. Login to X-Author Contracts, select the X-Author Templates tab and check out an existing proposal template (or
create a new proposal type template).
2. Place the cursor in the template where you want the footnotes and click Insert Merge Fields.
3. From the 1. Select object to insert pane, locate and select Proposal Footnote Fields.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 41


Product Management

4. From the 2. Select merge fields to insert pane, select the desired fields to insert.
5. From the Options section, select In Table and click Insert Field.

Results
The merge fields are entered into the document template.

To create an agreement type template

Prerequisites
You must have existing product footnotes.

Steps
1. Login to X-Author Contracts, select the X-Author Templates tab and check out an existing proposal template (or
create a new proposal type template).
2. Place the cursor in the template where you want the footnotes and click Insert Merge Fields.
3. From the 1. Select object to insert pane, locate and select Agreement Footnote Fields.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 42


Product Management

4. From the 2. Select merge fields to insert pane, select the desired fields to insert.
5. From the Options section, select In Section and click Insert Field.

Results
The merge fields are entered into the agreement template.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 43


Product Management

Refining your Search


When you are selecting items from the Product Catalog, Refine Your Search enables you to narrow the list of products to
those that match your search filter questions.
Search filters are associated with categories, so that the Refine Your Search questions may change when you select
different product categories. The questions are also found on the product record, which is how the Product list gets
refined. When you select an answer to a question and that answer matches the answer on the product record, that
product is included in the filtered Product list.

For a product to be displayed it must match all of the selected Refine Your Search criteria.

To configure your system to use Refine Your Search you must complete the following:

Configure the custom fields Two custom fields need to be created. The field for Search Attribute Values
is used to provide the search question and answers, which will be associated
with a category. The field for Products is used to have the same search
question and answer values available on the product record.
Configure search filter fields This makes the custom field available from the Search Filter Fields list in the
Hierarchy Manager . This must be completed so that the custom field can be
associated with a specific category.
Configure refine search options This task associates the custom field with a specific category and adds it to the
Refine Your Search window in the Product Selection page.
Select a search field value for a So that using Refine Your Search provides useful and relevant filtering, you
product should select a value for each search field on a product record.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 44


Product Management

The following configuration tasks, will use a refine search question example in the screenshots (How many seats will you
need?) to help show how the feature is built.

To configure the custom fields

Steps
1. Go to App Setup > Create > Objects and select Search Attribute Value.
2. Go to Custom Fields & Relationships and click New.
3. Select Picklist data type and click Next.
4. Enter the details:

Field Label This is the question. This is the text that will be displayed in the Refine Your
Search box when you are selecting your products. It is also displayed in the
product's Product Elements section.
List of values These are the answers. From the Product Catalog these are the options
you can choose from to refine your search on the Products page. From the
product record you can select one of these values for the product.
Field Name This is the basis for the Salesforce API name, which is referenced in Search
Filter Fields. The API name takes the field name and appends __c to it.
Description & Help Text Standard Salesforce description and help text fields.

Click Next.
5. Select which profiles will have access to the field and click Next.
6. Ensure the field is added to available layout and click Save.

Results
The new custom field is created and can now be associated with the Category Hierarchy search fields.

What's Next
You must now complete the same task again, creating the same field label, values, and field name, but for Products. Go
to App Setup > Customize > Products > Fields and then begin from Step 2.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 45


Product Management

If you want to change the default placement of the fields, you can reorganize them, by editing the page layout. To help
group them together, typically the products custom field would be placed in a Product Elements section for the Products
page layout.

To configure search filter fields

Prerequisites
The custom field must have already been created.

Steps
1. Go to App Setup > Create > Objects and select Category Hierarchy.
2. Scroll to Custom Fields & Relationships and select Search Filter Fields.
3. Scroll to Picklist Values and click New.
4. Enter the API Name for the custom field created in the Search Attribute Value custom object and click Save.

Results
That field is added to the list and is now available in the Hierarchy Manager.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 46


Product Management

What's Next
You can go to the Hierarchy Manager and add that field as a Refine Your Search question for specific categories.

To configure refine search options

Prerequisites
You must have configured Search Attribute Value custom fields and Search Filter fields.

Steps
1. Go to CPQ Console > Manage Categories and select the category you want to have Refine Your Search questions for.
2. In the Category Detail section, click Hierarchy Manager.
3. From the Search Filter Fields list, select the refine search filters you want to use and click .

4. Click Save.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 47


Product Management

Results
The next time someone goes to select products for that category, the selected search filter fields will be displayed.

What's Next
When desired, you can return to the Hierarchy Manager to remove or add additional search filters.

To select a search field value for a product

Prerequisites
The custom search field must be available on the page layout used to display the products.

Steps
1. Select a product.
2. Click on the search field question and select the appropriate value for the product.
3. Click Save.

Results
The value is displayed in the product record.

What's Next
When that value is selected as a Refine Your Search answer the product will be displayed in the updated Product list.

Refine Your Search With Dynamic Filter Values

To run the Product Filter Maintenance task

Prerequisites
You must have CPQ Summer13 SP5.5 installed.

Steps
1. Click and click Product Filter Maintenance.
2. Click Update Product Filters.

Results
The batch job is completed collecting all the product field values related to a category.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 48


Product Management

Product Visibility
When you go to configure products for a quote/proposal, you can control which products from the price list are visible
based on search filters, where you set up the criteria of your choosing.
Within a search filter, you can select the header level fields of object records as entry criteria for deciding whether a
price list's products will be filtered to a certain subset of the full list. What this subset will be, also uses the header level
fields of object records to determine which products are displayed.
The system checks whether a search filter is applicable to the price list you are using whenever you go to the product
selection page, so when you click Configure Products from a Quote/Proposal or when you click Add Products from the
Shopping Cart.
If you do not want entry criteria to be determined by quote/proposal header level fields, you can have it be determined
by using the user record.

To configure Search Filters (CPQ)

Steps
1. Go to Setup > App Setup > Create > Objects and select Search Filter (CPQ).
2. From the Custom Fields & Relationships section, select Business Object.
3. From Picklist Values, click Del to remove SearchAttributeValue__c.
This value must be deleted, if it has not already. Do not delete Apttus_Config2__SearchAttributeValue__c, as it is the
correct search value to use.
4. From Picklist Values, click New and enter the API names for the objects you want to be able to filter on.
This could include:
• Asset
• Apttus_Config2__AssetLineItem__c
• Product2
5. Go to Setup > App Setup > Create > Objects and select Search Filter (CPQ).
6. From the Custom Fields & Relationships section, select Filter Type.
7. From Picklist Values, click New and enter the names you want to use to group the Business Object picklist values.
If you wanted to have names to match the values entered in step 4, you could include:
• Asset
• Product
8. From Field Dependencies, click New.
9. For Controlling Field select Filter Type and for Dependent Field select Business Object and click Continue.
10. Select which business object fields should be associated with which filter and click Save.

Results
The settings have now been configured so that you can create Search Filters (CPQ).

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 49


Product Management

What's Next
Click and select Search Filters (CPQ) to create the filters required to limit product visibility.

To create a Search Filter (CPQ)

Steps
1. Click and select Search Filters (CPQ).
2. Click New to display the New Search Filter page.
3. Select a Filter Type to limit which objects will be available in the Business Object list.
4. From Business Object, select which object you want to use to control the fields available for Filter Criteria.
5. From Value Object, select which object you want to use to control the fields available for Inclusion Criteria and click
Next.
6. Enter a Filter Name, Sequence (which is used to determine the order in which the search filters are evaluated), and
Description.
7. In the Inclusion Criteria section, select the fields and expressions you want to use as entry criteria for the filter. You
can use a maximum of three fields.
If you use multiple fields, the relationship between them is an AND relationship, meaning each expression must
evaluate as true. The available fields are based on the Value Object.
8. In the Filter Criteria section, select the fields and expressions you want to use to control which products will be
visible when the inclusion criteria is met.
You can have a standard AND relationship between the expressions or use Advanced Options to the fields together
in a more complex formula. The available fields are based on the Business Object.

In the above screen shot the Inclusion Criteria requires the Account be Venture Industries for the Quote/Proposal
that the product pricelist is associated with. When this is true, this search filter will be used to control which
products are displayed. The products that will be displayed will only be those that have a Configuration Type of
Standalone.
9. Click Active and click Save.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 50


Product Management

Results
When someone goes to configure products, the products that are visible to them will be limited to those defined by the
Filter Criteria when the Inclusion Criteria is met.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 51


Price Management
Price Management

Managing Price Lists and Price List Items


Pricing enables you to rapidly set up pricing structures. Pricing comprises of price lists and price list items. A price list
controls which products are visible to the end user. A price list contains several price list items; each linked to a product.
You can simply select options and have them priced completely accurately reflecting the latest price lists and discounting
rules. You can price any products or bundles based on features or options selected. You can set up pricing rules,
constraints, dependencies and extraneous variables.

Creating a Price List


Price lists are containers of price list items. Price lists can also have a currency set, if your environment is multi-currency
enabled.
Price lists are associated with categories so that an end user can view and select products from the shopping cart. For
example, Price list A is associated with Category B, when you select price list A on the Quote/Proposal Edit page, only
category B and associated products are displayed on the shopping cart.
You can create a price list at any time; however, it is most efficient to create a price list before creating products to easily
associate the products to the price list.

To create a price list

Steps
1. Navigate to the CPQ Console tab and from the Price Management section, click Add Price Lists.
2. Type a mandatory Price List Name and type a Description.
3. To make the price list active, select Active.
4. Click Save.

Results
A price list is created and saved.

What's Next
You can associate all related pricing, products, and options with them.

Associate Price List with Categories


Price list must be associated to an Offering category for the products to be displayed on the catalog.
The related list against the price list displays the category associated to it and this category is displayed to the end user
in the shopping cart. In this way, you can restrict the display of products by category.

To associate price list to a category

Prerequisites
You must have an existing offering category and a price list.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 53


Price Management

Steps
1. Navigate to the CPQ Console tab and from the Product Management section, click Manage Categories.
2. Select a category to associate with a price list, scroll down to the Price Lists related list, and click New Price List
Category to find and associate the appropriate price list.
3. Enter a mandatory Price List, and enter a Hierarchy.
4. Click Save.

Results
The price list is associated with a category.

Creating Price List Items


Price List Items contain detailed pricing information about a product.
A product can be set up with one or more price list items. Each price list item includes the list price for the product
including details of charges such as per unit, flat price, one time, recurring, and more. All the fields on a price list
item are price related and impact the final price on the shopping cart. Each price list item represents different ways,
a customer is charged for a product. For example: License fee, Implementation fee, and more. Price list items are
categorized into price lists.
After your price list item is saved. You can do one or more of the following:
• Apply price matrices from the Matrices tab
• Apply default pricing in the price list item
• Apply miscellaneous pricing in the price list item

To create a price list item

Prerequisites
Navigate to the CPQ Console tab.

Steps
1. Click Manage Price Lists and select an existing price list.
2. Scroll down to the Items related list, and click New Item.
3. Enter details in one or more of the following fields:

Product Enter a product.


Charge Type Select a charge type. These are a separate, identifiable element of charges that can be
used for pricing. For example: Standard Price, Maintenance Fee, Installation Fee, and
more.
This is a way to capture multiple types of fees for a product or line item. For instance, a
product has a product fee but can also have a separate fee for installation. In such a case,
you will create two price list item entries for the same product and specify the charge
type for each one of the two entries. The charge type will be automatically added to
the cart when you add the product so that all charges associated with the product are
included in the pricing.

Charge Type Criteria This is used for conditional charge types that are included only if a certain criteria is met
and as part of adding the main product to the cart. Setting this criteria either by Line Item
or Attribute field will only apply this price list item under those conditions. For example,

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 54


Price Management

this may be a charge type based on workstations; whereas the product may have a charge
type based on users.
Price Type Select One Time, Recurring, or Usage. Selecting Recurring or Usage enables the
Frequency field. For instance, if you add a subscription product, you will choose type as
recurring and then specify the frequency as monthly, yearly, and so on.
Example: You charge 1$ per month for a term of 1year, the price is calculated accordingly.

Frequency This is based on your selection from the Price Type field. Select an option to indicate how
often the product will be charged.
Price Method Select one of the following:
• Per Unit: Multiplies the price with the quantity.
• Flat Price: Applies a flat price.
• Percentage: Enables the Percent, Percent Applies To, Related Price List Item fields.

Percent, Percent These allow you to set price dependencies such that one price is a percentage of the unit
Applies To, Related or extended price of another product.
Price List Item
Description Type a brief description to specify the purpose of the price list item.
Active To make the price list item active, select this check box.
Price List Displays the price list. Moving the cursor on the link enables you to view or edit the price
list.

List Price Type a list price for a product in the price list item. If the price list item has matrices or
may be overridden, enter 0 as the list price.
Cost Type a cost of a product.
Price Uom (Unit of Select an option to specify the unit price you are charging is for an hour, day, year, and so
measure) on. This helps the end user while pricing products in the cart. You can modify this in the
price list item object.
Min Price Enter the minimum price.
Max Price Enter the maximum price.
Min/Max Price Applies Select one of the following:
To
• Base Price - This is the derived price for a product when you add it to the cart. This
can be same as the list price or different from the list price, if you have defined a price
matrix or a price rule that dynamically arrives at the price of the product based on
other factors.
• Base Extended Price - This is derived by Base Price * Quantity * Term.

Effective Date Enter an effective date for the price list item.
Expiration Date Enter an expiry date for the price list item.
4. Click Save.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 55


Price Management

Results
A price list item is created for a product or option. The price list items created displays the products and options to the
end user in the pricing cart page.

Manually Adjusting Options Pricing for a Bundle


The Options tab display the option product and associated price for a bundle. You can control how the options price
rollup to the bundle price. You can also control the display of options adjustments on the pricing cart page.

To manually adjust options pricing for a bundle

Prerequisites
You must have an existing price list item.

Steps
1. Select an existing price list item and click Edit and click the Options tab.

2. Enter information in one or more of the following editable columns:

Column Description
Adjustment Amount Enter an amount to adjust the options price.
Adjustment Type Select an adjustment type.
Price Included In Bundle Select to include the price with the bundle product. Selecting
Price Included in Bundle sets the Adjustment Amount to zero and
Adjustment Type to Price Override. This means the option price is
included in the bundle price and therefore is free.
Allow Manual Adjustment Select this to enable the end user to make manual adjustments.
Manual adjustments are done through the adjustment type and
amount fields on the pricing cart page.
Allocate Group Adjustment Select this to include the product in a manual group discount, if
applied, on the pricing cart page.
3. Click Save.

Results
The option price for a bundle is adjusted and saved.

Applying Price Matrices from the Matrices Tab


If the product has a matrix based price, click the Matrices tab.
A price list item can have more than one matrix evaluated in a sequence. For more information, see Defining or Creating
Price Matrices.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 56


Price Management

In order to work with matrix based pricing, you must create price dimensions for a product. You can create up to
six dimensions, bringing in attributes from the line item or header objects of any data type within Salesforce. The
dimension value type has three values: Discrete, Range, and Cumulative Range.

Applying Default Pricing to a product


You can apply default pricing to a product from the Defaults tab.
This tab enables you to apply default quantity and pricing to a product.

To apply default pricing to a product

Prerequisites
You must have an existing price list item.

Steps
1. Select an existing price list item and click Edit and click the Defaults tab.
2. Enter details in one or more of the following:

Default Quantity Enter the default quantity.


Default Quantity From Select an option from where default quantity is to be
considered.
Default Quantity Field This field is dependent on the Default Quantity From
field. Select a field from where default quantity can be
considered.
Auto Update Quantity Select to automatically update the quantity.
Auto Cascade Quantity Select to automatically cascade quantity.
Is Quantity Read Only Select this to make the Quantity field non-editable on
the cart.
Default Price From Select an option from where default price can be
considered.
Default Price Field This field is dependent on the Default Price From field.
After selecting an option from the Default Price From
field, select a specific field from where default price can
be considered.
Default Selling Term Enter the default selling term.
Auto Cascade Selling Term Select to automatically cascade selling term.
Is Selling Term Read Only Select this to make the Selling Term field non-editable on
the cart.
3. Click Save.

Results
Default pricing is applied and saved.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 57


Price Management

Applying Miscellaneous Pricing to a Product


You can apply miscellaneous pricing to a product from the Miscellaneous tab.
This tab enables you to do the following:
• You can include an option price in a bundle.
• You can enable price ramps if a product is rampable, and enable commitments.
• You can control if a usage tier can be modified or not.
• You can manually adjust options pricing for a bundle. You can also control how the options price rollup to the bundle
price and display of options adjustments on the pricing cart page.

To apply miscellaneous pricing to a product

Prerequisites
You must have an existing price list item.

Steps
1. Select an existing price list item and click Edit and click the Miscellaneous tab.
2. Select the check boxes as needed:

Price Included In Bundle Select to include the price with the bundle product.
Selecting Price Included in Bundle sets the Adjustment
Amount to zero and Adjustment Type to Price Override.
This means the option price is included in the bundle
price and therefore is free.
Enable Price Ramp Select this check box to make a product price rampable.
Enable Commitment Select this to enable commitment.
Is Usage Tier Modifiable Select this check box to enable an end user to modify
the usage tier.
Allow Manual Adjustment Select this to enable the end user to make manual
adjustments. Manual adjustments are done through the
adjustment type and amount fields on the pricing cart
page.
Allocate Group Adjustment Select this to include the product in a manual group
discount, if applied, on the pricing cart page.
Allow Proration Select to allow proration.
3. Click Save.

Results
Miscellaneous pricing items applied to a product and saved.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 58


Price Management

Managing Price Rules


In addition to managing prices for products using price lists and price list items, you can manage prices using pricing
rules. Pricing rules manage special offers, discounts, and charges at either the line item level or the summary line item
level. Many pricing rules can be associated to a Ruleset and through to products.
Price Rulesets are a mechanism to allow particular families, categories or groupings of products to have either line item
pricing adjustments applied or summary pricing adjustments applied. Typical examples of these are volume discounting
rules or promotional pricing rules.

Creating Price Ruleset


Price Rulesets allow for pricing adjustments across a range of products via price rules. Both line item pricing adjustments
and summary pricing adjustments can be applied. For example: Discounting rules, promotional pricing, adjustments in
aggregate based on a product family, and more.

To create a price ruleset

Prerequisites
You must have an existing price list.

Steps
1. Navigate to the CPQ Console tab and click Add Price Rules.
2. Enter a mandatory Ruleset Name and a mandatory Sequence in which the system will evaluate multiple rulesets.
Typically, you will perform line item adjustments first and then any summary adjustments.
3. Enter details in one or more of the following fields, as required:

Category Select All, Agreement, or Proposal. This indicates if the


ruleset is relevant to Agreements, Proposals, or both.
Application Level Select a level to which this ruleset will be applied. The
adjustment is displayed in the Totals tab for the end user
in the shopping cart, or it will be a line item adjustment
within the line item net price in the shopping cart.
Selecting Aggregate, enables the Application Method
field.
Application Method This field is dependent on the Application Level field.
This indicates that you want the adjustment to select
products in aggregate but apply an adjustment as a
summary line in the Totals tab or spread the adjustment
over numerous products. For example: Buy 2 get 1 free.
Ruleset Criteria Allows you to set criteria for a line item rule such that
the ruleset only applies when it satisfies a line level field
value or a product attribute value.
Stop Processing more Rules Selecting this indicates that if the ruleset is satisfied, the
system will not process any more rulesets.
Active Select this to set the ruleset as active.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 59


Price Management

Price List Select a price list. The ruleset will only source product
prices with the selected price list and then apply
adjustment criteria.
Product Family Select the product family. This is the product family field
on the products object. The ruleset will only source
product prices with the selected product family.
Product Category Select a category. The ruleset will only source product
prices within the selected category.
Product Group Click to search and select a custom product group
to the ruleset will apply the pricing adjustments. These
custom product groups have no relation to a category, a
product family, or any other product designation.
Charge Type Select a charge type to which the ruleset will apply
adjustments.
Effective Date Not required as long as the price ruleset is Active, but
can be used for promotional rules, and more.
Expiration Date Select an expiration date.
Description Enter a description for the ruleset.
4. Click Save.

Results
By filling out this criteria, the source products and prices are then designated and the ruleset can apply adjustments via
price rules.

Creating Price Rule


You can associate multiple rules to a ruleset or through to a product. Price matrices can be defined in price rules as
well as conditional price rules (rules that use boolean logic such as AND/OR). Price rules can be dimensional, which use
similar concept as Price Matrices or Conditional, that relate to fields for pricing adjustments.
One ruleset can have multiple rules and are evaluated in order of the rule sequence. A rule can be dimensional or
conditional. A price rule determines the actual price adjustment made.

To create a price rule

Prerequisites
You must have an existing Price Ruleset.

Steps
1. Navigate to the CPQ Console tab and click Manage Price Rules.
2. Select an existing price ruleset, scroll down to the Rules related list, and click New Rule.
3. In Rule Name, enter a mandatory rule name.
4. In Sequence, enter a mandatory sequence.
5. From Rule Type, select Dimension or Condition.
In setting a dimensional price rule the process is exactly the same as creating a price matrix for a product.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 60


Price Management

6. From Adjustment Applies To, select an option to which the adjustment is applied. This is for line item adjustments
only.
7. From Adjustment Charge Type, select an option to set summary level adjustments as a charge type. You can change
this in the Price Rule object.
8. Selecting Stop Processing More Rules indicates that if the ruleset is satisfied, the system will not process any more
rulesets.
9. From Allowable Action, select an appropriate action for adjustments.
10. To allow complete removal of a price adjustment, select Allow Removal of Adjustment.
11. In Description, enter a description for the rule.
12. To make the rule active, select Active.
13. Do one of the following:
• To save the rule, click Save.
• To save and create a new rule, click Save & New.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 61


Price Management

Defining or Creating Price Matrices


Price Matrices are an advanced pricing concept used to define tiered pricing paradigms, or complex pricing structures
with multiple criteria. Common examples are pricing tiers for a product based on user count or particular customer or
transactional dimensions.

Creating Price Dimensions


Price Dimensions are an important concept in order to link any field within Salesforce into the pricing tables. Any field
that will determine a pricing adjustment such as Quantity, Term, and more, needs a dimension created for it.

To create price dimensions

Steps
1. Navigate to the Price Dimensions tab and click New.
2. In Dimension Name, enter a mandatory name for the dimension.
3. From Context Type, select one of the following:

Line Item Allows you to choose any field on the line item shopping cart. For example: Quantity, Term,
and more.
Product Attribute Allows you to choose any product attribute that has been associated to a product via an
attribute group. From Attribute, click to select an attribute group.
Formula Field Allows you to create a formula field containing the syntax as per the custom syntax below. You
can define a syntax once and can reuse it across multiple price dimensions.
There may be scenarios where pricing varies based on Customer Priority status. For
example, a customer can have three statuses Gold, Silver, and Platinum. You can define
a pricing dimension based on the status of the customer. The Customer Priority field
is a custom field you define in the opportunity. You can create a formula field on the
Apttus_Config2__LineItem__c object referencing the Customer Priority field. You can later
define a pricing dimension for the same formula field and use it within the rulesets to define
different pricing tiers for each customer priority.
Even though the same Customer Priority field is available in the Line Item context type as well,
in scenarios where you have a large number of line items defined with different data types,
searching and setting specific values for the context type can be cumbersome. Searching and
setting a formula field context type within Apttus_Config2__LineItem__c filters only the fields
having formula as a datatype.

Custom Allows you to define a custom syntax for the system to retrieve a fields value. It is most
commonly used to retrieve Quote or Agreement Header fields.
This is always from the context of the Line Item, so the format for the fields must be:
For Quote Header fields:
Apttus_Config2__ConfigurationId__r.Apttus_QPConfig__Proposald__r.INSERTYO
URFIELDAPINAMEHERE
-or-
For Agreement Header field:

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 62


Price Management

Apttus_Config2__ConfigurationId
r.Apttus_CMConfig__AgreementId__r.INSERTYOURFIELDAPINAMEHERE
The field must be the fields API name and not the field label or name.

4. In Description, enter a decription to specify the purpose.


5. Do one of the following:
• To save the price dimension, click Save.
• To save and create a new price dimension. Click Save & New.

Creating Price Matrices


These are an advanced pricing concept used to define tiered pricing paradigms, or complex pricing structures with
multiple criteria. Common examples are pricing tiers for a product based on user count or particular customer or
transactional dimensions. A price list can have more than one price matrix.

To create price matrices

Prerequisites
You must have existing price dimensions.

Steps
1. Navigate to the Matrix Pricing related list from within an individual price list item.
-or-
Navigate to the Matrices tab under the fields for the new price list item details.
2. In Sequence, enter the sequence number.
3. From Matrix Type, select Dimension.
4. From Dimension, select a price dimension.
You can enter up to six dimensions, which bring in attributes from the line items or headers of any data type within
Salesforce.
5. From Dimension Value Type, select one of the following:

Discrete The system only considers the specific matrix values.


Range The system considers the matrix values as inclusive of the numbers in the range.
Cumulative Range The values will be evaluated cumulatively. For example: If quantity = 15 and price is $1 for
a range of is 0-10, and price is $2 for a range of 11-15, then 10x$1+5x$2 = $20 will be the
price of the product.
6. To stop the system from evaluating further matrices if a match is found within this matrix, select the Stop Processing
More Matrices check box.
7. In Description, enter a description.
8. Click the Details tab, to enter the details for the price matrix.
9. In the Quantity column, enter a value. The values are inclusive. For example, the first line here indicates a range of
0-10. The second line indicates a range of 11-20, etc.
All adjustments are adjusting the price list item-list price. To account for an infinite number of values, set the
quantity to 999999, which will pull a range of “infinity.” In this example, setting 999999 indicates the range
41-999999.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 63


Price Management

10. In the Adjustment Amount column, enter a percentage or a number.


11. From Adjustment Type, select the kinds of adjustment required, if the criteria is met. An example is an override to a
list price, markup, or discount.
You can add more than one matrix rows by clicking and delete rows by clicking . You can also move a row up or
down by clicking or .
12. Do one of the following:
• To save a price matrix, click Save.
• To save and create a new price matrix, click Save & New.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 64


Price Management

Running a Criteria Maintenance Job


Criteria maintenance is a batch job that must be run whenever changes are made to pricing criteria fields or constraint
criteria fields.
This includes:
• Adding or removing criteria in pricing fields.
• Any modification to price list, price list item, price matrix, price rule, default rule, or price dimension.
• Adding or removing a constraint rule.
• Adding or removing criteria in constraint rules.
• Any change to the constraint criteria fields.

To run a criteria maintenance job

Steps
1. Navigate to the Criteria Maintenance tab.
2. To update all pricing criteria fields, click Update Pricing Fields.
- OR -
To update all constraint criteria fields, click Update Constraint Fields.

Results
This executes an asynchronous batch job that maintains the criteria changes. The administration task is complete and
an updated history for all the batch jobs is displayed. The key item to observe is Status. When Completed is displayed it
means the job has run successfully, even if the percentage indicator remains at 0%.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 65


Price Management

Enabling Price Ramps


Price Ramps are enhanced pricing methods for service/subscription based industry.
As an administrator, you must enable price ramps from the price list item details page. Once you enable price ramps,
an end user can create a price ramp for a product to spread pricing across time periods. The user can also create user
quantity ramps to define different pricing across different quantities.
You cannot make a price list item rampable and tierable at the same time.

To enable price ramps

Prerequisites
You must have an existing price list item.

Steps
On the Price List Item page, select Enable Price Ramp check box.

Results
The price becomes rampable for a product.

What's Next
After the price is rampable, you can create and save price ramps from the configuration page and the pricing cart page.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 66


Price Management

Enabling Tiered Pricing


Price Tiers enable an end user to view or set up tiers on the configuration page and the pricing cart page. This
ensures there are pricing settings (product line item) that determine if tiers can be modifiable or just viewable on the
configuration page and the pricing cart page.
You can view existing pricing tiers and adjust pricing on the tier lines (if allowed). This also provides the capability to do
tiers per units or usage and also capture additional usage charges for tiers.
If you have defined price matrices, the tiered pricing for a product is inherited from there. If you make any adjustments
on the line item that has a tiered rate defined, the adjustments apply to tiered rate and also affect the price matrices.
Important You cannot make a price list item rampable and tierable at the same time.

To enable tiered pricing

Prerequisites
You must have an existing price list item.

Steps
1. On the Price List Item page, from Price Type, select Usage.
2. From Price Method, select Tiered Rate.
If Tiered Rate is not available as a choice, you can add it to the custom field object.
3. To enable a user to modify a usage tier, select Is Usage Tier Modifiable.
4. Click Save.

Results
Tiered pricing is enabled. If the price list item has tiers defined on the price list already, predefined tiers are displayed on
the options/configuration or the pricing cart page.

What's Next
You can create or modify tiers for pricing on the options/configuration and the pricing cart page.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 67


Price Management

Contract Pricing
Contract Pricing in CPQ enables you to store contracted prices in the system. When a quote is created in CPQ, the quote
price is determined by looking up the price defined in the Contract.
Contract price list is a subset of the standard price list. This implies that when the same product is defined in multiple
contract price lists, the former contract takes precedence.
Contract Pricing is supported for standalone and bundles. Contract Pricing for Options is supported provided options
are defined in the same contract price list as the bundle. Options cannot be in a different price list. Options inherit the
contract price list from the bundle.

Associating a Contract Price to a Price List


To enable contract pricing in Apttus CPQ, you need to create a price list to store the contract prices and associate the
price list a Contract number.

To associate a contract price to a price list

Prerequisites
You must have an existing price list.
You must have an existing contract number or agreement number.

Steps
1. Navigate to the Price List tab and select a price list.
2. Click Edit.
3. In Contract Number, enter a contract number or an agreement number.

4. Click Save.

Results
A Contract Number is associated with a price list.

Defining a contract to be Used in a Quote


In the quoting module, you need to define (explicitly) which contracts to use for a certain quote or quote line item.
You can define the contracts to be used in a quote at:

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 68


Price Management

• Quote Level: Use a specific contract or a set of contracts to explicitly pass the contract number(s) in the Configure
Products action.
• Quote Line Item Level: Use a specific contract (or a set of contracts) to store the contract numbers (as a comma
separated list) in a field on the quote line.
When the quote is priced, for each line item, first the price list associated with the first contract on the list is evaluated.
If the part is not found on the price list, then the next contract number is evaluated, and so on. If part is not found in any
of the price lists associated with the contracts on the list, then the standard price list is used.

To define a contract to be used in quote

Prerequisites
You must be in the Quote/Proposal object.

Steps
1. Go to Setup > App Setup > Create > Objects.
2. Scroll down the list and click Quote/Proposal.
3. From Custom Fields & Relationships, click New.
4. From Data Type, select Formula and click Next.
5. Enter a mandatory Field Label and press Tab on your keyboard, the Field Name is auto-populated.
For example: In Field Label, enter Configure Products (Contract Pricing), the Field Name is auto-populated with
Configure_Products_Contract_Pricing.
6. From Formula Return Type, select Text and click Next.
The Step 3. Enter formula page is displayed.
7. Type the code in the area displayed and click Next. See example code.

8. On the Step 4. Establish field-level security page, make the necessary changes and click Next.
9. On the Step 5. Add to page layouts page, select the page layout that should include this field and click Save.

Results
The Configure Products (Contract Pricing) action button is displayed on the Quote/Proposal page.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 69


Rule Management
Rule Management

Configuring Constraint Rules


A constraint rule is considered to trigger or become effective, when the rule conditions are met. The rule action is
performed, when the rule has trigerred. The rule action becomes effective, when the product scope of the rule action is
violated in the shopping cart.
To configure constraint rules for your products you must complete the following:

Create a constraint rule header To configure a constraint rule you must first create a
constraint rule header
Create a constraint rule condition This creates a condition that must be satisfied before an
action becomes effective.
Create a constraint rule action This creates an action that must be performed when the
condition is triggered.

After creating constraint rule action, on the constraint rule detail page, click the Update View button. This runs the
constraint rule maintenance for the context rule. You may have to drag and drop the Update View button using the Edit
Layout feature.

To create constraint rules

Steps
1. Click and click CPQ Console, and from the Rule Management section, click All Constraint Rules.
2. Click New Constraint Rule and type a mandatory Constraint Rule Name.
3. Type a Description and Sequence, and to make the constraint rule active, select Active.
4. Enter an Effective Date and Expiration Date.
5. Click Save.

Results
The constraint rule header is created.

What's Next
You can now create a constraint rule condition.

Creating Constraint Rule Conditions


Constraint rule conditions should be met in order to trigger a rule. There may be more than one condition for a rule.
Different conditions are associated with an expression. When the condition association expression is not specified, all
the conditions should be met in order to trigger the rule.
After you create a constraint rule condition, you can define a condition criteria. Condition Criteria filter conditions are
applied to the line item created from the selected products that are within the product scope definition. When criteria
is defined using the Edit Criteria button, the condition will be met when the product scope specification and criteria are
both met. Condition Criteria filter conditions are applied to the line item created from the selected products that are
within the product scope definition.
When using a constraint rule with a condition criteria for a product with multiple line items, the system only validates
the primary line item to evaluate the constraint rule.
You must run a criteria maintenance job whenever you add, remove or make any changes to a criteria. Even if you
remove a constraint rule that has a criteria defined, you must run a criteria maintenance.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 71


Rule Management

To create constraint rule conditions

Prerequisites
You must have an existing constraint rule header.

Steps
1. Select an existing constraint rule header and scroll down to the Constraint Rule Conditions related list, and click New
Constraint Rule Condition.
2. Type a mandatory Constraint Rule Condition Name, verify the Constraint Rule and type a Sequence.
3. In the Criteria section, from Product Scope, select one of the following:

Product After selecting, enter a product in the Product field. This implies that the product should
be present in the shopping cart in order to meet the condition.
Product Family After selecting, enter a product family in the Product Family field. When specified, one or
more products from the specified product family should be present in the shopping cart in
order to meet the condition. The number of products that should be present depends on
the Match Rule.
Product Group After selecting, enter a product group in the Product Group field. This implies that one or
more products from the specified product group should be present in the shopping cart.
The number of products that should be present depends on the Match Rule.
Product Field Set After selecting Product Field Set as the product scope, select at least one Product Field and
set the corresponding Product Field Value. Each of the Product Field has one pick list value
from the product object.
The Product Field should be set up to have only one choice. If the choices
are changed at a later time, the constraint rule conditions with Product Field
specification should also be updated to have the correct values.
Match Rule is not applied to Product Field Set based specification. It assumes the match
rule as match any from the result.
4. In Match Conditions section, do one or more of the following:

Match In Options Selecting this means the condition is met only when the condition products are in the
option line items of the shopping cart.
Match In Primary Lines Selecting this means the condition is met only when the condition products are
among the primary lines (bundle or standalone) of the shopping cart.
Match in Cart Options Selecting this means the condition is met only when the condition products are
among the cart line items of the shopping cart.
Match in Location Selecting this means that when the condition is met, all of the rule actions should be
applied within a location.
Match Rule Select one of the following choices. The value is None by default. Match count is done
before applying the criteria.
• None means that the rule condition is met, if any one of the products in the
product scope is selected. It is treated as Min/Max with Match Min Products as 1.
• Match Any In Group means that the rule condition is met, if any one or more of
the products from the group is selected. Match Any In Group is same as Include
Min/Max with Match Min Products as 1. It is also applicable to product family and
product field set.
• Match All In Group means that all of the products from the group must be present
in the shopping cart to meet the condition. This is applicable only to the product
group and product family.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 72


Rule Management

• Min/Max also requires you to specify a value in the Match Min Products field.

Match Min Products This field is applicable only when you select Min/Max from the Match Rule picklist.
The condition is met, when the minimum number of products specified is selected
from the Product Group, Product Family, or as specified by the Product Field set
specification.

Match Rule is applicable to product scope of type Product Group, Product Family, and Product Field Set only.
5. Click Save.
6. To define a condition criteria, scroll down to the Constraint Rule Conditions related list, and click Edit Criteria.
7. Select a Field, an Operator, and type a Value.
You can enter more than one criteria.
8. Click OK.

Results
The constraint rule condition is saved and added.

What's Next
You can now define a constraint rule action.

Creating Constraint Rule Actions


Constraint rule actions are performed, when certain constraint rule conditions are met. A rule action can be of inclusion,
exclusion, validation, recommendation, or replacement type. An inclusion rule action enforces selection of certain
products as specified by the product scope specification or criteria specification in the inclusion rule. Similarly an
exclusion rule action enforces exclusion of certain products from the shopping cart. The validation rule displays an error
message, when the criteria conditions are met. The recommendation rule displays products based on the condition
while the replacement rule displays message with products that can be replaced. The recommendation rules support
product, product family and product group.
While creating a constraint rule action, when you select product scope as product, you must enter details only in the
Product field. Similarly, when you select product scope as product family, or product group, you must enter details
in their corresponding fields only. When you select Action Criteria as the product scope, you must first create the
constraint rule action and then edit the same constraint rule action to define an action criteria.
You should be careful not to put too many actions into a single constraint rule. Typically a ratio of no more than
5 actions per 1 constraint rule can help ensure the rules do not impact the performance of your system. You
should test the constraint rules thoroughly before pushing them to a live environment.
Action criteria can be set up only when the product scope is Action Criteria. The criteria is defined using the Edit Criteria
button. It is used to search for products, when it is defined for inclusion type rule actions. For exclusion type rule
actions, the criteria is used to match products in the shopping cart. The criteria can have only the product fields in case
of inclusion and exclusion type rule actions.
In case of validation type rule actions the criteria entries are based on the line item fields. Related fields of the line
item object, such as the attribute value field can also be used. For validation type rule actions, when the criteria
conditions are met, the rule action message is displayed. If the rule action is error type, the end user cannot finalize the
configuration until the criteria condition values have changed to make the validation ineffective.
When using a constraint rule with an action criteria for a product with multiple line items, the system only validates the
primary line item to evaluate the constraint rule.
You must run a criteria maintenance job whenever you add, remove or make any changes to a criteria. Even if you
remove a constraint rule that has a criteria defined, you must run a criteria maintenance.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 73


Rule Management

To create constraint rule actions

Prerequisites
You must have an existing constraint rule header with an existing rule condition. Select the constraint rule header. The
Constraint Rule detail page appears.

Steps
1. From the Constraint Rule Actions related list, click New Constraint Rule Action.
2. In Constraint Rule Action Name, enter a mandatory name for the action.
3. In Constraint Rule, the constraint rule header is displayed for which you are creating an action. You can also click
to search for a constraint rule header.
4. In Message, enter text to be displayed when the rule action is effective.
For inclusion and exclusion type rule actions product name substitution parameter {0}, {1} can be used. For example:
{0} requires {1}. For validation type rule actions only {0} will be substituted by triggering products.
5. In Sequence, enter a number to indicate the order in which constraint rule action messages should be displayed.
6. From Action Type, select one of the following:

Inclusion Enforces selection of certain products as specified by the


product scope specification or criteria specification in
the inclusion rule.
Exclusion Enforces exclusion of certain products from the shopping
cart.
Validation Displays the error message, when the criteria conditions
are met.
Recommentation Product recommendations are displayed, when the
condition is met.
Replacement Product replacements are suggested, when the
condition is met.

Action Type selection impacts the options available for Action Intent.
7. From Action Intent, select one of the following:

Auto Include Adds selected products automatically. When the number of products selected by the
rule action is more than the number mentioned in the Match Rule condition, auto
inclusion of products is not triggered. A message is displayed from the rule action
instead.
Auto Include will not apply, when the match rule value is Include All.

Prompt Displays a message with choices of products that you can select or remove.
Show Message Displays a message.
Check on Finalization Applies rule action on finalization of the shopping cart.
Disable Selection Disables selection of excluded products.
8. From Action Disposition, select Error or Warning.
The configuration cannot be completed; unless the end user meets all the rule action requirements.
9. In the Criteria section, from Product Scope, select one of the following:

Product In the Product field, click to select a product to be included or excluded.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 74


Rule Management

Product Family In the Product Family field, enter a product family. One or more of the products from the
product family will be included or excluded based on rule type and match rule specifications.
Product Group In the Product Group field, enter a product group. One or more of the products from the
product group will be included or excluded based on rule type and match rule specifications.
Action Criteria The action criteria is defined using the Edit Criteria button, after you save the constraint rule
action.

10. In Match Conditions section, do one or more of the following:

Match In Options Selecting this, the system will prompt you to include or exclude the product as an
option based on your Action Type selection.
Match In Primary Lines Selecting this, the system will prompt you to include or exclude the product as a
primary line (offering) based on your Action Type selection.
Match in Asset Selecting this, the system will prompt you to include or exclude the product as an
asset line item based on your Action Type selection.
Match in Cart Options Selecting this, the system will prompt you to include or exclude the product as a
cart line item based on your Action Type selection.
Ignore Cart Selecting this, the system will prompt you to exclude the product as a cart line item
based on your Action Type selection.
Ignore Cart is applicable only for Exclusion Rule.

Min/Max Match Rule Applies to inclusion type rule action only, and that has product scope as Product
Family, Product Group, or Action Criteria. Select any one of the following to
complete the rule action:
• None: No product selection is allowed.
• Include Any: Allows selection of upto one product. An error or warning
message is displayed upon selection of another product.
• Include All Allows selection of all products within the product group or product
family.
Only this match rule works with Action Intent Auto Include.

• Include Min/Max: Requires minimum number of products specified in the Min


Products field.
• Exclude Any: All the products are excluded.
• Exclude After One: Allows selection of only one product. Any other selection
will trigger the rule action.
• Exclude After Max: Allows selection of maximum number of products specified
in the Max Products field. Any other selection over and above the specified
number will trigger the rule action.

Max Products Dependent on Exclude After Max field. Specify the maximum number of products
to be selected.
11. Click Save.
12. To define an action criteria, scroll down to the Constraint Rule Actions related list, and click Edit Criteria.
13. Select a Field, an Operator, and type a Value.
You can enter more than one criteria.
14. Click OK.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 75


Rule Management

Results
Constraint rule actions are created which will trigger when a constraint rule condition is met.

Constraint Rule Maintenance


Constraint Rule maintenance is a batch job that must be run whenever changes are made to rule conditions and when
you upgrade to a new version of CPQ.
This includes:
• Adding or removing a constraint rule.
• Adding or removing a constraint rule condition.
• Modifying anything in a constraint rule condition.

Configuration
• Users who are going to run Constraint Rule Maintenance must have read/write access to ProductConstraintView__c
object . All CPQ users must have at least read access.
• These users should also have ProductConstraintView Visualforce page access and Apex class access enabled.
If the Constraint Rule Maintenance tab is not already available you can add it as follows:
1. Go to App Setup > Create > Apps and click Edit beside Apps Apttus Batch Updates.
2. Add Constraint Rule Maintenance and click Save. The tab should now be available.
If the tab is still not available, as a workaround you can manually append apex/
Apttus_Config2__ProductConstraintView to your URL in the address bar.

To run a constraint rule maintenance job

Steps
1. Go to the Constraint Rule Maintenance tab.
2. Click Update All.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 76


Rule Management

Results
The batch job is executed. The administration task is complete and an updated history for all the batch jobs is displayed.
The key item to observe is Status. When Completed is displayed it means the job has run successfully, even if the
percentage indicator remains at 0%.

Setting up an Inclusion Rule


Inclusion rule use case: You have a product A and product B. You want to set up an inclusion rule such that when a user
selects Product A, a warning message is displayed to include Product B.

To set up an inclusion rule

Steps
1. On the Constraint Rule Condition Detail page, in the Criteria section, from Product Scope, select Product.
2. In Product, enter Product A as the product and in the Match Conditions section, select Match in Primary Lines and
click Save.
3. On the Constraint Rule Action Detail page, in Message, type {0} requires {1}.
{0} denotes the condition product and {1} denotes the action product.
4. From Action Type, select Inclusion and from Action Intent, select Show Message.
5. From Action Disposition, select Warning.
6. From Product Scope, select Product and in Product, enter Product B as the product.
7. In the Match Conditions section, select Match in Primary Lines and click Save.

Results
The inclusion type rule is saved and added. On the catalog page, when a user selects Product A, the system shows a
warning message.

Setting up an Exclusion Rule


Exclusion rule use case: You have a product A and product B. You want to set up an exclusion rule such that when a user
selects Product A, a error message is displayed to exclude Product B.

To set up an exclusion rule

Steps
1. On the Constraint Rule Condition Detail page, in the Criteria section, from Product Scope, select Product.
2. In Product, enter Product A as the product and in the Match Conditions section, select Match in Primary Lines and
click Save.
3. On the Constraint Rule Action Detail page, in Message, type {1} is excluded on the addition of {0}.
{0} denotes the condition product and {1} denotes the action product.
4. From Action Type, select Exclusion and from Action Intent, select Prompt.
5. From Action Disposition, select Error.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 77


Rule Management

6. From Product Scope, select Product and in Product, enter Product B as the product.
7. In the Match Conditions section, select Match in Primary Lines and click Save.

Results
The exclusion type rule is saved and added. On the catalog page, when a user selects Product A, and then selects B. The
system shows an error message that Product B is excluded in the addition of Product A.

Setting up a Validation Rule


Validation rule use case: You have a product A and you want to set up a validation rule such that when a user selects
Product A and should not be able to enter more than 5 quantity.

To set up a validation rule

Steps
1. On the Constraint Rule Condition Detail page, in the Criteria section, from Product Scope, select Product.
2. In Product, enter Product A as the product and in the Match Conditions section, select Match in Primary Lines and
click Save.
3. On the Constraint Rule Action Detail page, in Message, type {0} cannot exceed 5 quantity.
{0} denotes the condition product.
4. From Action Type, select Validation and from Action Intent, select Show Message.
5. From Action Disposition, select Warning.
6. From Product Scope, select Action Criteria
7. In the Match Conditions section, select Match in Primary Lines and click Save.
8. On the Constraint Rule Detail page, scroll down to the Constraint Rule Actions related list and click Edit Criteria.
9. From Field, select Line Item : Quantity, from Operator, select greater than, and in Value, type 5. Click OK.

Results
The validation type rule is saved and added. On the catalog page, when a user selects Product A, and enters quantity as
6. The system shows an error message that Product A cannot exceed 5 quantity.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 78


Rule Management

Creating Product Default Rules


Product Default Rules enable you to default the product quantity and term when generating a quote/proposal.
You must do the following:
• Enable Product Default Rules
• Create Product Default Rule
• Create a custom field for the product default value
• Create Product Default Value

To enable product default rules

Steps
1. Go to Setup > App Setup > Develop > Custom Settings.
2. Click Config System Properties and click Manage.
3. Click Edit for System Properties.
4. To enable product default rules, select Enable Defaulting For Products.
5. Click Save.

Results
Product Default Rules is enabled.

What's Next
You can create product default rules.

To create product default rules

Prerequisites
Product Defaults Rules must be enabled.

Steps
1. Navigate to the Product Default Rules tab and click New.
2. Enter a mandatory Rule Name and a Sequence in which you want the rule to be activated.
3. Select a mandatory Application Level.
Depending on the selection you made, the Business Object is populated.
4. Select a Business Object.
5. Enter a Product and a Description.
6. To stop processing more rules, select Stop Processing More Rules.
7. To activate the rule, select Active.
8. Enter an Effective Date and an Expiration Date.
9. Click Save.

Results
Product Default Rule is created and saved.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 79


Rule Management

What's Next
Create a product default value.

To create a product default value

Prerequisites
You must have an existing product default rule.
You must have created a custom field in the product default value object.

Steps
1. Navigate to the Product Default Rule tab and select an existing rule.
2. Scroll down to the Default Values related list and click New Product Default Value.
3. Type a mandatory Sequence order.
4. From Value Type, select Default.
5. In IncludeProduct, enter a product and in Include Product Group, enter a product group.
6. Type a Quantity and type a Selling Term.
7. In the Custom Field, type Value1.
For example: You created a custom field in the product default value object named PDVField.
8. Click Save.

Results
A product default value is created and saved.

What's Next
Activate the product default rule, if not already activated.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 80


Managing Assets
Managing Assets

Configuring Asset Based Ordering


Asset records are created from customers order history. Asset Line Item has consolidated record of the customers order
history. This feature enables the selling organization to renew or resell products and services based on their customers
purchase history or subscription information. Customer asset records can be created and updated manually or gathered
from outside sources by data import or other integration mechanisms.
Asset line item records are also referred as Installed Products. The Installed Products button is available on the Catalog
page, Configuration page, and the Cart page. Asset based ordering is independent of Salesforce Asset object. Asset
based ordering consists of the following objects and interfaces:

Asset line item object The asset line item object stores a customer's asset information. This object displays records
that are copied from the cart line item. These records are created by the Create Asset Trigger
and are displayed using the Installed Products and Select Installed Products visualforce
pages.
Asset attribute value The asset attribute value object stores information from the product attribute value object.
object Creating an asset line item object record that has attribute values, creates an asset attribute
value object record. You must create custom fields in the Asset Attribute Value object for
each custom field in the product attribute value object.
The API name for the custom fields should be identical.

Create Asset Trigger Create Asset Trigger is an unmanaged sample program to copy and consolidate asset line
item from the cart line items.
This is a sample program and you can modify it as per your business requirement
to synch and merge asset records.

Installed Products page This visualforce component can be added to the Accounts details page. This component
component for Account displays the asset records on the Accounts detail page.
details page
Select Installed Products The select installed products page displays the asset line item records and allows the end
page user to add or modify an asset product in the cart. When Apttus Quote/Proposal-Asset
Integration package is installed, the end user will see the Installed Products button on the
Catalog page, Configuration page, and the Cart page.
Constraint Rule with Selecting Match in Asset from the Constraint Rule Action detail page enables you to include
Match in Asset property or exclude the product as an asset line item.

To enable asset based ordering, you must install the Apttus Quote/Proposal-Asset Integration package. After installing
the package, you must:
• Add the Create Asset Trigger.
• Add a new section to display the asset line items on the Accounts detail page.

Adding Create Asset Trigger


Create Asset Trigger is an unmanaged sample program to copy and consolidate asset line item from the cart line items.
The program copies the line item into asset line item object, when the quote status is changed to Accepted.
The trigger is activated, when a Proposal object record is updated. This sample trigger has the following logic to copy
line items into asset:
• Finds a cart id for a proposal, where status has changed to Accepted in current update.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 82


Managing Assets

• Finds the account id from the first line of the cart id. If no account id information is found, the system exits from the
trigger, otherwise proceeds to the following step.
• Creates a list of asset line item records previously created for the same cart. This list is empty, when the cart has
moved to the Accepted stage for the first time.
• Loops over the new line items for the cart and checks if the line item already has corresponding asset record.
• Creates a new asset record, in case there are no existing asset records.
• Copies all the line item information that matches the field names into the asset record. The asset line item fields like
start date, end date, and quantity is updated based on asset consolidation policy of the customer.
• Associates option asset line item with bundle asset line item. The bundle asset line item id is used to create the
lookup link.
• Creates asset attribute value record or finds an existing record. Updates the asset attribute value record from the
product attribute value record.

To add a create asset trigger

Prerequisites
You must have Apttus Quote/Proposal-Asset Integration package installed.

Steps
1. Go to Setup > App Setup > Create > Objects and select Quote/Proposal.
2. Scroll down to the Triggers related list and click New.
3. Enter the create asset trigger (see sample code) and click Save.

Results
Create Asset Trigger is added and the asset line item object is created.

Adding a Section to Display Asset Line Items


You must add a section to the Account detail page to display the asset line items.
You can use the Edit Layout feature to add a section and the Installed Products visualforce page. This section displays the
asset line items on the Account detail page. You can also view the asset line item as a related list on the Account detail
page.

To display the asset line items

Steps
1. Navigate to the Accounts tab and select an existing account.
2. Click Edit Layout.
3. From Fields, drag and drop Section to add a new section on the account detail page.
4. From Visualforce Pages, drag and drop InstalledProducts to the section you just added.
5. Click Save.

Results
An Assets section appears. This section displays the asset line items.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 83


Managing Assets

Controlling Asset Actions In The Shopping Cart


Greater flexibility has been added for controlling the actions that are available when configuring Installed Products.
You can control three different aspects of Asset Actions:
• Which of Increment, Amend, Renew, and Terminate, actions are displayed.

• Which assets have a checkbox, allowing them to be selected.

• Which of the actions you want to override their default behavior and have them go directly to the Shopping Cart
pricing page when they are clicked, instead of a Details page first.
The default behavior when you click one of the actions is to go to a Details page. For instance, if you clicked Amend
for a Bundled Asset you would typically go to the Amend Details page; however, if your products were such that you
did not need to complete any actions on the details page it would be preferable to go directly to the pricing page.
By configuring a single custom setting you can indicate which of the four actions you want to have go directing to
pricing.

To set display action settings for assets

Steps
1. Click and click Config Settings.
2. Click Display Column Settings and from the Display Type list select Installed Product.
3. Select/Clear the Is Enabled field for Increment, Amend, Renew, and Terminate, as necessary.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 84


Managing Assets

4. Click Save.

Results
The next time you go to configure assets, the buttons that are enabled are displayed.

To set assets as read only in the installed products cart page

Prerequisites
You must add the Is Read Only (IsReadOnly__c) field to the Asset Line Item page layout, if it is not already there.

Steps
1. From the Account page, go to the Asset Line Item related list and click Edit beside the Asset Line Item you want to
make unselectable from the Installed Products page in the Shopping Cart.
2. Select Is Read Only.
3. Click Save.

Results
The next time you select a proposal for the account, choose to configure products, and then select Installed Products,
that asset - while displayed - cannot be selected.

What's Next
Repeat the procedure for each asset you do not want to be selectable from the Installed Products page in the Shopping
Cart.

To set direct configure asset actions

Steps
1. Go to Setup > App Setup > Develop > Custom Settings and click Manage for Config System Properties.
2. Click Edit for System Properties.
3. Scroll down to Direct Configure Asset Actions and enter the actions you want to have bypass their default page
progression.
The values must be delimited by a comma. You can choose from Amend, Increment, Renew, and Terminate.
4. Click Save.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 85


Managing Assets

Results
For the included actions, when you click them while on the Installed Products page you will go directly to Pricing.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 86


Managing Assets

Displaying Asset For Related Location


At present the system displays all assets directly linked to an account. You can now display assets that are related to all
locations linked to an account.

To create a related location within an account location

Prerequisites
You must have an existing account location.

Steps
1. Go to the Accounts tab and select an existing account.
2. Scroll down to the Account Locations related list and select an existing location.
3. Scroll down to the Related Accounts Location (To) related list and click New Related Account Location.
4. In Location, ensure the selected location is displayed and in Related Location, enter the related location.
5. Click Save.

Results
A related location is saved and added to the account location.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 87


Managing Assets

Filtering Assets In Installed Products


You can use filters to narrow which assets are displayed from the Installed Products page.
Filtering assets is automatically available; however, the filters that are displayed are partially dependent on other
options you have enabled for Assets. For instance, you will always be able to filter by End Date but whether or not you
can filter by Location or Accounts is dependent on other settings.
There is a system property that can be used with this feature. If you are upgrading CPQ, you may need to create the
setting values.

To filter assets in the installed products page

Prerequisites
You must have existing assets.

Steps
1. Go to Setup > Develop > Custom Settings, and click Installed Products Settings.
2. Click Manage and click Edit for Primary Settings.
3. To display an additional filter and select one or more specific accounts to help you filter the assets, select the Show
Accounts Filter check box.
By default this is not enabled.

4. In the Filter Fields field, type the API name of the Asset Line fields to be displayed on the Installed Products page. For
instance, you can enter Apttus_Config2__PriceMethod__c if you want to filter Assets by their Price Method on the
Installed Products page.
This works with text fields, picklists, and Date fields. Multiple values must be separated by commas.

5. Click Save.

Results
You can filter assets on the Installed Products page.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 88


Managing Assets

Amending Bundled Product Options


Previously when you amended a bundled product, by changing the values for a bundle's option line item, it would
update the parent bundle but no indication was made that the option line item had been amended. Now changes to an
option line item can change its status.

To amend bundle product options

Prerequisites
You must have an existing asset with options.

Steps
1. Go to Setup > Develop > Custom Settings, and click Installed Products Settings.
2. Click Manage and click Edit for Primary Settings.
3. In the Amend Change Fields field, type the Line Item object fields that will trigger a change in the status of the
option line item when it is amended. Multiple values must be separated by commas.
For instance, you can enter Apttus_Config2__Quantity__c and when someone changes the quantity of an
option on the Installed Products page, the status of the option changes from Existing to Amended.
4. Click Save.

Results
On the cart page, Status is displayed as Amended against the option line item.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 89


Managing Assets

Selecting All Assets For An Action


This feature enables multiple asset line items to be selected at once, allowing you to then complete mass Increment,
Amend, Renew, or Terminate actions.
Regardless of the number of assets included in the Installed Products list, you can select them all with a single check box
and then complete an asset action for them. The number of assets that is selected is indicated by the number at the top
of the list. In the example below, 44 assets will be chosen when you select all.

It does not matter on which page you select all, as all of the asset line items in the Installed Products list will be
included.

To select all assets for an action

Steps
1. Go to Setup > Develop > Custom Settings, and click Installed Products Settings.
2. Click Manage and click Edit for Primary Settings.
3. In the Max Renews Per Trip field, type a number that indicates how many asset line items will be processed at the
same time. The smaller the number the less impact there is on the CPU processing the action and the less likely
there will be a timeout. The default value is 40.
For example, if you have 75 asset line items that you choose to renew at the same time and you have the default
value 40, the system will process the first 40 asset line items. Once that is complete, the remaining 35 asset line
items will be automatically be processed. Even though the process is being segmented, this is only to optimize
performance. You still only initiate the asset action once, by clicking Increment, Amend, Renew, or Terminate. While
the process is running, a message is displayed.
4. Click Save.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 90


Managing Assets

Upgrading Assets
You can upgrade assets that are determined as End-of-Sale products or cancelled.
While creating a quote for an existing customer, you can now upgrade an End-Of-Sale asset (product) to a newer
product. The Quote/Proposal correctly reflects the cancelled and upgraded line items.

To upgrade assets

Prerequisites
You must have an existing asset line item.

Steps
1. Navigate to the Accounts tab, and scroll down to the Asset Line Items related list.
2. Click Edit next to the Asset Line Item record that you want to upgrade.
3. Select the Must Upgrade check box and click Save.

Results
The Upgrade Asset feature is enabled and an Upgrade button is displayed next to the asset line item on the Installed
Products page.

What's Next
You must also create a Replacement type constraint rule.
Go to the Installed Products page and you will be able to upgrade an existing asset to a newer product.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 91


Managing Assets

Navigating To The Installed Products Page Directly


You can navigate to the Installed Products page directly from the Quote/Proposal detail page.
Earlier, you were required to click the Configure button from the Quote/Proposal detail page and from the Product
configuration page, click Installed Products to navigate to the the Installed Products page. You can now directly access
the Installed Products page from the Quote/Proposal detail page.

To configure direct navigation to the Installed Products page

Prerequisites
Go to Setup > App Setup > Create > Objects.

Steps
1. Scroll down to select the Quote/Proposal object and from the Custom Fields & Relationships related list, select
Configure Products (Asset).
2. Click Edit and replace the query string with the following parameters.
IF ( LEN( Apttus_QPConfig__PriceListId__c ) > 0 , HYPERLINK("/apex/
Apttus_QPAsset__ProposalConfiguration?id="&Id&"&mode=addOn", IMAGE("/resource/
Apttus_QPConfig__Button_Configure", "Configure Products"),"_self"), NULL)
3. Click Save.

Results
On the Quote/Proposal page when you click the Configure button, the Installed Products page appears instead of the
Catalog.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 92


Managing Assets

Asset Enhancements - Auto-inclusion Constraint Rules


With this enhancement, you can apply additional filters to Asset Auto-inclusion Constraint Rules in addition to the
Match in Asset condition.
Previously, when you created an auto-inclusion rule with Match in Asset selected, the system auto-included the action
product based on its availability in Assets. With this release, in addition to the Match in Asset condition, the system also
checks for the Asset Line Item status, Asset Status and the End Date of an Asset Line Item.
Example: You have a rule to auto-include Product B when you select Product A and you have Match in Asset set to True.
The system checks the following:
• Whether Product B is already available as an Asset Line Item but is Inactive
• Whether Product B is already available as an Asset Line Item with status as Cancelled
• Whether Product B's End Date is greater than equal to LAST_N_DAYS
When all the above conditions are satisfied, Product B is auto-included.

Configuration for Auto Inclusion Constraint Rule


To configure this, you must create and use the CustomAssetLineItemCallback class, where, in the getFilterExpr
method, you must define your business logic for the (params.ActionName == 'SearchForRule') condition.

To enable Auto Inclusion Constraint Rule

Steps
1. Go to Setup > Develop > Custom Settings.
2. Click on Manage next to Config Custom Classes.
3. Use the CustomAssetLineItemCallback class for the Asset Line Item Callback Class field.
4. Click Save.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 93


Managing Assets

Custom Settings for Call Back Classes


The callback classes are code hooks which contain the logic for the execution of steps that allow you to trigger logic
before or after an alteration of the object state.
Callback classes can call and run certain piece of code, calculate an intermediate value and pass the control back to the
main class. The code for the Callback classes varies as per the usecase or business scenarios of the organization.
Important If you have added any custom field to your callback class, such as Line.Assetlineitem__r.status__c,
AttributeId__r.UOM__c), ensure you set that field to Config system properties or Cart fields attribute, or the
system throws an error.

The Asset Line Item Call Back Class sample code below can be used to restrict users from changing
the quantity of an asset when a user clicks Amend or Renew. This enables visibility into account and
related child accounts, ensures standard filters work when the asset line item callback is used, and
ensures that validation works with Assets in the case of Match-in-Assets.
/*******************************************************************
* Test Class to Validate the APTPS_Constraint_Rules controller where
all the Constraint Rules related to the Quote
* are validated
* @ModifiedDate 02/19/2014
* @ModifiedDate 04/15/2014
* @ModifiedDate 05/23/2014
********************************************************************/
global with sharing class APTS_DDC_ValidationCallBack implements
Apttus_Config2.CustomClass.IValidationCallback2 {

private static final String CALLER_PAGE_CARTDETAILVIEW =


'CartDetailView';
private static final String BILL_TO_ACCOUNT_TYPE_BILL_TO_ACCOUNT
= 'Bill To Account';
private static final String BILL_TO_ACCOUNT_TYPE_OTHER = 'Other';
private static final String AMEND_ACTION = 'Amend';
private static final String CANCEL_ACTION = 'Cancel';

/**
* Callback to validate the line items in the cart
* @param cart the cart object to validate
* @return the validation result
*/
global Apttus_Config2.CustomClass.ValidationResult
validateCart(Apttus_Config2.ProductConfiguration cart) {
system.debug('*** validateCart ***');
system.debug('*** caller page
***'+ApexPages.currentPage().getParameters().get('callerPage'));

Apttus_Config2.CustomClass.ValidationResult result = new


Apttus_Config2.CustomClass.ValidationResult(true);

system.debug('*** result ***'+result.isSuccess);


return result;
}

/**
* Callback to validate the given list ramp line items

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 94


Managing Assets

* @param cart the cart object associated with the ramp line
items
* @param rampLineItems the list of ramp line items
* @return the validation result
*/
global Apttus_Config2.CustomClass.ValidationResult
validateRampLineItems(Apttus_Config2.ProductConfiguration cart,
List<Apttus_Config2.LineItem> rampLineItems) {
Apttus_Config2.CustomClass.ValidationResult result = new
Apttus_Config2.CustomClass.ValidationResult(true);
return result;
}

/**
* Callback to validate the given list of asset items
* @param cart the cart object associated with the asset items
* @param assetItems the list of asset items
* @return the validation result
*/
global Apttus_Config2.CustomClass.ValidationResult
validateAssetItems(Apttus_Config2.ProductConfiguration cart,
List<Apttus_Config2__TempRenew__c> assetItems) {
system.debug('*** start validateAssetItems ***');

Apttus_Config2.CustomClass.ValidationResult result = new


Apttus_Config2.CustomClass.ValidationResult(true);

/* make 'Quantity' read only while 'Amend' Operation */


/* make 'End Date' read only while 'Cancel' Operation */

for(Apttus_Config2__TempRenew__c assetItem : assetItems) {


if(assetItem.Apttus_Config2__ActionName__c ==
AMEND_ACTION && assetItem.Apttus_Config2__Quantity__c != 1) {
result.Messages.add(new
ApexPages.Message(ApexPages.Severity.ERROR, 'You can not change
Quantity.'));
result.isSuccess = false;
}

if(assetItem.Apttus_Config2__ActionName__c ==
CANCEL_ACTION) {
//Handle the case when Asset Start Date is Greater than
Today's Date
if(assetItem.Apttus_Config2__StartDate__c >
date.today()) {
//End Date must ne Start Date + 1 Day
if(assetItem.Apttus_Config2__EndDate__c !=
assetItem.Apttus_Config2__StartDate__c.addDays(1)) {
result.Messages.add(new
ApexPages.Message(ApexPages.Severity.ERROR, 'Invalid End Date.
Please enter valida End Date.'));
result.isSuccess = false;
}
} else { //Do not allow to change End Date
if(assetItem.Apttus_Config2__EndDate__c !=
date.today()) {
result.Messages.add(new
ApexPages.Message(ApexPages.Severity.ERROR, 'You can not change End
Date.'));
result.isSuccess = false;
}
}

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 95


Managing Assets

if(assetItem.Apttus_Config2__ActionName__c ==
CANCEL_ACTION &&
assetItem.Apttus_Config2__AssetLineItemId__r.Apttus_Config2__Quantity__c !
= assetItem.Apttus_Config2__Quantity__c) {
result.Messages.add(new
ApexPages.Message(ApexPages.Severity.ERROR, 'You can not change
Quantity.'));
result.isSuccess = false;
}
}

return result;
}
}

To add call back classes in Custom Settings

Steps
1. Go to Custom Settings and click on Manage next to Config Custom Classes.
2. Click on New.
3. Fill in the information next to the call back class fields.

Results
The corresponding call back classes are called when the appropriate buttons are clicked on an asset.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 96


Guided Selling Setup
Guided Selling Setup

Setting Up Guided Selling


Guided Selling is a process that helps a sales representative to choose the product best fulfilling a customer's needs. The
goal of guided selling is to provide an inexperienced sales representative the way to figure out which product to sell to a
customer.
During the quoting process, the representative answers a set of questions around the customer’s needs and based on
their answers, the system recommends products. This way a sales representative can quickly select the right product to
meet a customer’s needs.
To configure and set up Guided Selling, you must do the following:
• Prepare a list of questions and answers to be displayed on the guided selling page. You should decide which
questions to ask the customer and based on which product characteristics you want to filter the products.
• In Search Attribute Value object, create a custom field for each question.
• In Product object, create custom fields that you created in the Search Attribute Value object.
API Name must be the same as Search Attribute Value object.

• Create a flow using Salesforce Flow Designer.


• Create a guided selling visualforce page.
• Define Guided Selling Rules.

Creating Custom Fields in Search Attribute Value Object


You must create custom fields in the search attribute value object to correspond to questions.
Search Attribute Value is the object that stores the answers to the questions that an end user gives everytime they go
through guided selling. You need to create a custom field in Search Attribute Value object for each question. The value
stored in the question field is the actual answer given to the question by the representative.
Example: You have a question Does customer need 24X7 toll-free support?. In Search Attribute Value object, create a
field Does customer need 24X7 support.
Name does not have to match the question.

The answer the sales representative gives to the question is stored in the custom field.

Creating a Sample Flow Using Flow Designer


Salesforce Flow Designer helps you create a flow by defining questions and answers that you may want to allow the end
user for filtering products.
Below is an example on how to setup a simple flow using Salesforce Flow Designer. For detailed information on various
ways to create a flow, see Creating a Flow.
Say you want the end user to answer a question and based on the selection, you want the system to recommend
products. Here is an example:
• Add a variable
• Add a Screen Element
• Add a Record Update Element
• Set a Start Element

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 98


Guided Selling Setup

To create a flow

Prerequisites
Navigate to Setup > Create > Workflow & Approvals > Flows.

Steps
1. Click New Flow.
2. From the Palette in the left pane, click and drag a Screen element onto the canvas to configure it.
3. From the Palette in the left pane, click and drag a Record Update element onto the canvas to configure it.
4. Click Save.
5. In Flow Properties, enter a mandatory Name and press TAB. The Unique Name is auto-populated.
6. Enter a Description and click OK.

Results
A flow is created and saved.

What's Next
After the flow is created, to make the flow active, click Activate.

To add a variable

Prerequisites
Navigate to Setup > Create > Workflow & Approvals > Flows.

Steps
1. Go to the Resources tab and from CREATE NEW, double-click Variable.
2. In Unique Name, type InterviewId.
3. Enter a Description.
4. From Input/Output Type, select Input and Output.
5. Click OK.

Results
InterviewId is added as a variable.

To add a screen element

Steps
1. Enter a mandatory Name and press TAB. The Unique Name field is auto-populated.
2. Click the Add a Field tab and double-click Dropdown List.
A Dropdown List field appears in the preview pane.
3. Double-click the Dropdown List field in the preview pane to configure it.
4. On the Field Settings tab, enter a mandatory Label and press TAB. The Unique Name field is auto-populated.
For example: Label is Do you want to upgrade to Sandbox?, the Unique Name will be
Do_you_want_to_upgrage_to_Sandbox.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 99


Guided Selling Setup

5.
In the Choice Settings section, next to Select Resource click .
6. Expand the CREATE NEW section, and select Choice.
7. Enter a mandatory Label and press TAB. The Unique Name is auto-populated.
8. In Stored Value, type Yes as the answer choice and click OK.
To enter more than one choices, repeat steps 7 through 10. For Example: Enter No and Don't know as
another answer choices.
9. Verify that your Screen overlay looks like this, and click OK.

Results
The screen element is added.

What's Next
Add a Record Update element.

To add a record update element

Prerequisites
You must have created a screen element.

Steps
1. From the Palette in the left pane, click and drag a Record Update element onto the canvas.
2. Enter a mandatory Name and press TAB. The Unique Name field is auto-populated.
3. From Update > Custom, select Apttus_Config2__SearchAttributeValue__c.
4. From Field > Standard, select Id.
5. From Operator, select equals.
6. From Value > Variables, select InterviewId.
7. Under Update record fields with variable, constant, input, or other values, from Field > Custom, select the Custom
field you created.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 100


Guided Selling Setup

8. From Value > Screen Choice Fields, select the screen choice you created.
9. Click OK.

Results
A record update is added.

What's Next
You must connect the elements and set a start element.

To connect elements and set a start element

Prerequisites
You must haved added the element to the flow.

Steps
1. Click and drag an arrow connector from the Screen element to the Record Update element.

2. To set the screen element as the start element, click .

Results
The elements are connected and a flow chart is ready with a start element.

What's Next
Create a guided selling visualforce page to display the flow.

Creating a Guided Selling Visualforce page


A visualforce page needs to be created to display the flow you just created using Flow Designer.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 101


Guided Selling Setup

To create a guided selling visualforce page

Prerequisites
Go to Setup > App Setup > Develop > Pages.

Steps
1. Click New.
2. Enter a mandatory Label and a mandatory Name.
There should be no spaces in Name. Example: NameWithNoSpace.
3. In your code for the visualforce page, enter the Interview Name.
The interview name is the Flow Name.
<flow:interview name="Guided_Selling_Flow_Test" buttonLocation="bottom"
finishLocation="{!$CurrentPage.URL}&interviewId={!InterviewId}&step=Option"
reRender="dummy" rendered="{!IsBundleStep}" > <apex:param name="InterviewId"
value="{!InterviewId}" /> </flow:interview>
4. Click Save.

Results
Your guided selling visualforce page is created and saved.

What's Next
You can now define guided selling rule.

Defining the Guided Selling Rule


Guided Selling Rules map the search attributes in Apttus to product attributes for filtering.
To define the guided selling rule, you must create a guided search rule with a guided search rule entry and a guided
search rule filter. The system filters the products based on the answers to the questions.
For example: In the Search Attribute Value object, you have a created a custom field Number of users for the server.
You want the system to filter the products on their Number of users field.

To define a guided selling rule

Prerequisites
You must have already created custom fields in the Search Attribute Value object.
Navigate to the CPQ Console tab.

Steps
1. From the Rule Management section, click Add Guided Selling Rule.
2. In the New Guided Selling Rule section, type a mandatory Rule Name.
3. Type a Description and enter a mandatory Category.
4. In Guide Page, enter the guided selling visualforce page name.
5. To make the guided selling rule active, select Active.
6. In Effective Date, enter a date from when the rule is effective.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 102


Guided Selling Setup

7. In Expiration Date, enter an expiry date for the rule.


8. Click Save.

Results
A guided selling rule is created and saved.

What's Next
You can now add guided search rule entries.

To add a guided search rule entry

Prerequisites
You must have already defined a guided selling rule.

Steps
1. In the Guided Search Rule Entry section, select a Question.
2. Select an Operator and type a Value.
3. To add more than one entry, click Add Entry.
4. Click Save.

Results
Guided search rule entry is added.

What's Next
You may want to add guided search rule filters.

To add a guided search rule filter

Prerequisites
You must have a guided selling rule defined along with a guided search rule entry.

Steps
1. In the Guided Search Rule Filters section, select a Field and select an Operator.
2. From Map To, select Question or Value.
3. If you select Question in Step 2, you can see the list of fields in the Search Attribute Value object and select one of
these fields.
-OR-
If you select Value in Step 2, you can enter a value in the Question / Value column.
4. To add more than one filters, click Add Filter.
5. Click Save.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 103


Managing Quote/Proposal Configuration
Managing Quote/Proposal Configuration

Enabling PDF Security on Generated Quote/Proposal


Document
When you generate a quote in a pdf format, you can Enable PDF Security for the generated proposal document by
following the configuration steps below:

To enable pdf security on the generated Quote/Proposal document

Prerequisites
• You must set up Proposal System Properties for this feature. Go to Setup > Develop > Custom Settings. Click Manage
next to Proposal System Properties list, then click Edit next to System Properties and do the following:
1. Select the Enable PDF security check box.
2. Enter a desired value in the PDF Owner Password.
Refer Appendix B - Custom Settings > Proposal System Properties for detailed information.

Steps
1. Click and click Admin.
2. Do any one of the following:
• Click New to create a new Admin entry.
• Click Edit for an existing admin property APTS_ProposalConfig.
3. In the Name field, type APTS_ProposalConfig and in the Value field, type XML.
4. In the Code field, type the following code:

<ProposalConfig>
<ProposalSpec>
<CloneSpec>
<Excludes>
<ChildObject><Name>Apttus_Proposal__Proposal_Line_Item__c</Name>
</ChildObject>
</Excludes>
</CloneSpec>
</ProposalSpec>
<PDFSecurityDefault>
<CanPrint>true</CanPrint>
<CanCopy>true</CanCopy>
<CanChange>false</CanChange>
<CanAddNotes>true</CanAddNotes>
<CanFillFields>true</CanFillFields>
<CanAssemble>false</CanAssemble>
</PDFSecurityDefault>
</ProposalConfig>

All the tags defined over here are available in the ProposalConfigSchema static resouce. To view this static
resource, you may navigate to Setup > Develop > Installed Packages > Apttus Proposal Management (Managed) >
ProposalConfigSchema > View file.
5. Click Save.

Results
The proposal document generated in PDF format will now be secured with the system password.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 105


Managing Quote/Proposal Configuration

Setting Up Quick Quote Mode


You can use Quick Quote mode to quickly select numerous products from the product selection page directly from an
opportunity with just one click.
Quick Quote has enhanced search capabilities that include targeting standard and custom fields, advanced search,
automatic pre-filters, saved list views, and can be sorted. When you have a long list of individual products, you can use
the Select All function to select all individual products together.
Only auto-inclusion constraint rules can be used with Quick Quote. Other constraint rules will be ignored.

To create quick quote custom button

Steps
1. Go to Setup > App Setup > Customize > Opportunities > Buttons, Links, and Actions and click New Button or Link.
2. Type a mandatory Label and a mandatory Name for the button.
For example: Label = Create Quick Quote and Name = CreateQuickQuote.
3. Type a Description and from Display Type, select Detail Page Button.
4. Select a mandatory Behavior and a mandatory Content Source.
5. In the Code Snippet, type the following:

/apex/Apttus_QPConfig__OpptyQuoteCreate?id={!
Opportunity.Id}&recordTypeName=Proposal&priceListId={!
Opportunity.PriceListIdId__c}&method=quickAdd&useAdvancedApproval=true&defaultQuantity=1

6. Click Save.

Results
The Quick Quote custom button is created.

What's Next
Add the Quick Quote custom button to the layout.

To add the quick quote button

Prerequisites
You must have already created a Quick Quote custom button.

Steps
1. Click Page Layouts and click Edit for the page layout to which you want to add the Create Quick Quote button.
2. From Buttons in the Layout configuration window, select Create Quick Quote and drag and drop it onto the page
layout.
3. Click Save in the Layout configuration window.

Results
Create Quick Quote button is added and saved onto the page layout.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 106


Managing Quote/Proposal Configuration

Customizing The Visualforce Pages


You can configure which standard columns and actions are available in the catalog, attribute, bundle, and shopping cart
pages, the style they use, and the order in which they are displayed. Additionally, you can create your own custom fields
and actions and display them in these visualforce pages.
The visualforce pages are used for product selection, select attributes, options, and in the cart page change quantities,
apply discounts, and more for your quote/proposal. If there are default fields and actions that are not required, or new
fields you want to add, you can make those changes via the CPQ Config Settings tab.

Customizing Display Columns


The Display Column Settings enable you to display only those key fields needed to quickly and easily configure your
quote/proposal.
The Display Column Settings page provides a simple interface for selecting fields, making fields editable, applying styles,
and reordering them.
To display different number type values as expected, you can add one of the following styles to cart line item fields:

aptCurrency This will prepend the appropriate currency symbol for the org's locale and retain two
digits after the decimal place for the field value. You can change the number of digits
using the Currency Field Precision in Config System Properties.
aptPercentage This will retain two digits after the decimal place (if present) and append the percentage
symbol to the field value. You can change the number of digits using the Percentage
Field Precision in Config System Properties.
aptQuantity This will retain two digits after the decimal place (if present). You can change the number
of digits using the Quantity Field Precision in Config System Properties.

The following style classes have to be applied in pair to the dynamically selected adjustment column and its value
column. i.e., Adjustment Type and Adjustment Amount columns.
• aptAdjustmentType
• aptAdjustment
The formatting for the Adjustment Amount field will change dynamically based on the Adjustment Type. This is achieved
by applying available style classes to the adjustment based on the value in the pick list of the adjustment type.
For changes to the shopping cart beyond those described here you would need to create custom pages of the
Shopping Cart (CartView and CartFinalize Visualforce pages) and write your own Apex code to further control
what fields are displayed and how the page is organized.

To customize a display column

Steps
1. Click (All tabs) and click Config Settings.
2. Click Display Column Settings.
3. To create or modify columns on one or more of the following, select the view from the Display Type picklist.
• Cart Line Item
• Cart Total Item
• Installed Product

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 107


Managing Quote/Proposal Configuration

• Agreement Price Rule


• Agreement Price Tier
4. The Sequence column is system-generated and based on your Display Type selection in Step 3, the Display Type
column displays the line item name.
5. In the Field Name column, select a field you want to display as a column.
You should not add Option as a column as Product and Option columns are identical in the CartDetailView
page.
6. To make the field name column editable, select Is Editable. Clearing the Is Editable check box, makes the field read-
only.
If you select Display Type as Installed Product, the Is Sortable check box is displayed. To make the field name
column sortable, select the Is Sortable check box.
7. In the Style column, type values separated with a colon to change the default appearance of a field.
Example 1: If you want to resize all the columns in the cart, type width: 30px;text-align:left.
Example 2: If a product name is lengthy and is not displayed properly on the shopping cart page, type text-align:
left; width: 300px; max-width: 300px; display: block;white-space:0px;. The product name is wrapped and displayed
completely on the cart page.
8. In the Style Class column, type one of the following to change the way dynamic columns are displayed:
• aptCurrency
• aptQuantity
• aptPercentage
• aptAdjustmentType
• aptAdjustment
These style classes apply two decimal points to the fields accordingly. You can change the number of
decimal places from Config Settings > System Properties using the Currency Field Precision, Percentage Field
Precision, and Quantity Field Precision.
9. In the Header Style column, type values separated with a colon to change the default appearance of the header of a
column.
For Example: width:200px;
10. You can also do one or more of the following:
• To add or delete a row, use the and icons.
• To re-order the rows, use the and icons.
11. Click Save.

Results
The columns are displayed as configured in the Display Columns Settings.

Customizing Display Actions

The Display Action Settings page provides a simple interface for selecting actions, applying styles, and reordering them.
You can even create and use your own custom action.
In order to create custom actions, you must first create a custom label.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 108


Managing Quote/Proposal Configuration

To create a custom label

Steps
1. Go to Setup > Create > Custom Labels and click New Custom Label.
2. Type a mandatory Short Description and type a mandatory Name.
3. In Categories, type comma-separated values that can be used in filter criteria when creating custom label list views.
For example: Pages, Label, Components, and more.
4. In Value, type mandatory text in the form of a brief description or copy and paste the field name from Step 1.
5. Click Save.

Results
A custom label is created and saved.

To customize display actions

Prerequisites
If you want to create and use custom actions, you must have an existing custom label for the action.

Steps
1. Click (All tabs) and click Config Settings.
2. Click Display Action Settings.
3. From Display Type, select the visual force page where you want to place the custom action.
4. The Sequence column is system-generated and based on your Display Type selection in Step 3, the Display Type
column displays the line item name.
The Action and Action Label Name display the default actions.
5. You can create custom Action button, where the Action column name is CustomAction<number> and in Action Label
Name column, type the field name of the custom label you created.
For example: Action = CustomAction1 and Action Label Name = Edit_Quote.
6. From the Display As column, do one of the following:
• To create and set up the action as an Action button, select Action.
• To create and set up the action as a Task menu item in the Status bar, select Task.
• To create and set up the action as an Action button and also as a Task menu item, select Action and Task.
• To create and set up the action as a hyperlink in the Navigation bar, select Nav Link.
• To create and set up the action as a Help menu icon, select Help.
7. From the Action Area column, select one of the following to position the action:
• Center - For center alignment
• Left - For left alignment
• Right - For right alignment
• More - To add as an item under the More action button
8. In the Action Style Class column, type one of the following available style class name for the action.

Style Description
apt-selected-btn Type this to display the button in the drop-down menu
with a white background and black font color. This also
indicates the step that an end user is on.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 109


Managing Quote/Proposal Configuration

Style Description

apt-left-btn Type this to display an arrow pointing left on the button.


apt-right-btn Type this to display an arrow pointing right on the
button.

If you want to use your own style, create a CSS file including all of the custom styles you want in the shopping
cart and upload it as a static resource. Type the name of the CSS file in Config Settings > System Properties >
CSS Override. This enables you to use the styles defined in the CSS file as opposed to out-of-the-box styles.
9. In the Action Page column, in Action Page, type the custom visualforce page name and in Action Params, type the
parameter that you want to pass for your custom page. For example: {!Apttus_QPProposal__ProposalID__c.ID}
If you leave the Action Params field blank, by default, the system includes the ID,
Business Object ID, and Config Request ID as the dynamic parameter. Example
URL: .....CustomVFPage?id=a1Oe00000018DLUEA2&retId=a0ee0000003GUCfAAO&businessObjectId=a0ee0000003GUCfAAO&confi
10. From the Behavior column, to specify the action page behavior select one of the following:
• To open within the same window, select Self.
• To open in a new window, select New Window.
• To open in a dialog, select Dialog Window.
11. The Action Type column is preserved for future use.
12. To enable or disable actions, select or clear the Is Enabled check box.
13. To enable permanent display of the action irrespective of the setting in Step 12, select Always Display check box.

Scenario Display Action


Is Enabled = True and Always Display = True Action is displayed.
Is Enabled = False and Always Display = True Action is displayed but inactive. You cannot click the
action.
14. Click Save.

Results
The action is added to the list of actions to be displayed on the visualforce pages.

What's Next
At any given time, if you want to disable the custom action, go to the Display Action Settings page and clear the Is
Enabled check box.

Auto-synch Cart Lines


The Custom Actions feature has been enhanced to auto-synch cart lines with proposal lines and navigate to other pages.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 110


Managing Quote/Proposal Configuration

When Auto-synch is turned on, the system does validation for errors and auto-synchs the cart lines with the Proposal
Lines. You can view the synched line items in the Quote/Proposal detail page under the Line Items related list. Auto-sync
is done when following conditions are satisfied:
• No error produced by validation callback
• No Constraint Rules error
• No line items in price pending state
• No Must Configure product is in configuration pending state

To configure custom actions for auto-synch

Steps
1. Click (All Tabs) and click Config Settings.
2. Click Display Action Settings, and scroll down to add a custom action button.
3. Type an Action Label Name, and from the Display As list, select Action.
4. Select an Action Area, and in Action Style Class, specify a style class.
5. In Action Page, type the name of the visualforce page that appears when the action button is clicked.
6. In Action Params, type autoSync=true.
7. In Behavior, select an option of how you want the action page to open.
The auto-synch custom actions should not have action type (Save, Quick Save, Generate) specification.

8. To enable the custom Action button, select Is Enabled.


9. To always display the custom Action button whether enabled or disabled, select Always Display.

Results
A custom action is created with auto-synch capability.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 111


Managing Quote/Proposal Configuration

Creating Promotional Banners


When a user transitions between pages (such as from the Catalog page to the Shopping cart), a progress bar
is displayed. The text and image can further be customized to provide relevant information to the user such as
promotional or informational messages.
You can configure the following banners:
• Progress Bar: Enables you to display text underneath the Progress Bar during pricing. You can specify multiple text
messages to be shown and the sequence in which they appear by specifying multiple progress bar settings.
• Marketing Banner: Enables you to display image or text underneath the banner text (if specified) or progress bar. You
can specify multiple marketing banners to be shown by specifying multiple Marketing banner settings. The sequence
in which Marketing Banners appear is completely random.

To create banner settings

Prerequisites
If you want your Banner message to be of type text ensure that you create a custom label for the same. If you want to
specify an image in the banner, ensure that an image is saved as a static resource in your org.

Steps
1. Go to Custom Settings > Banner Settings > Manage > New.
2. Specify a name for the setting.
3. Do any one of the following:
• To specify a banner of type text, enter the BannerMessageContext as Progressbar.
• To specify a banner of type image, enter the BannerMessageContext as Marketing.
4. Specify the BannerPageContext as Pricing.
The banner appears when the pricing callback is invoked on click of a button and the user is navigated to a new page.
5. Do any one of the following:
• If the BannerMessageContext is Progressbar, specify the custom label name as the BannerSource.
• If the BannerMessageContext is Marketing, specify the URL of the image stored in static resources as the
BannerSource.
6. Do any one of the following:
• If the BannerMessageContext is Progressbar, enter CustomLabel as the BannerType.
• If the BannerMessageContext is Marketing, enter ImageURL as the BannerType.
7. Specify the sequence in which the banner appears. The sequence you specify for the textual banner, is the sequence
in which the banner messages appear to the user.
The sequence field is applicable only when the BannerMessageContext is Progressbar.
8. Click Save.
9. Repeat Steps 1-8 to create multiple textual or image banners to be shown to the user. The Progressbar banners
appear in the sequence in which they are defined. The Marketing banners appear randomly.

Results
The banner settings are saved and created successfully.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 112


Appendices
Appendices

Appendix A - Apttus Contact Support


If you experience an issue with an Apttus product and need help, you can contact Apttus Support. Before you contact
Apttus support, prepare a brief description of the problem you are experiencing. Additionally, to enable us to resolve
your problem at the earliest, provide the following important information:
• What is the environment in which you are experiencing the problem: Sandbox or Production?
• How many users are affected?
• Which product versions are installed?
• If you are having issues generating documents, what is your merge server end point?
• What is your Salesforce.com Organization ID?
• Grant Login Access of the affected user and an administrator.

To determine the salesforce.com organization ID

Steps
1. Go to Your Name > Setup > Administration Setup > Company Profile > Company Information.

2. From the Organization Detail pane, provide the Salesforce.com Organization ID.

To determine version numbers

Prerequisites
Login to salesforce.com with the affected login credentials.

Steps
1. Go to Your Name > Setup > App Setup > Installed Packages.
2. In the Installed Packages section, all the installed packages are displayed. You can find the version numbers in the
Version Number column.

To grant login access

Steps
1. Go to Your Name > Setup > Personal Setup > My Personal Information > Grant Login Access.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 114


Appendices

2. From the Apttus Support picklist, select an option for access duration.
3. Click Save.

To find the merge server end point

Steps
1. Go to Setup > App Setup > Develop > Custom Settings.
2. Click Manage for Comply System Properties.
3. Click System Properties and the Merge Webservice Endpoint setting is displayed.
The https://mergeserver.apttus.net:9876 portion of the setting is what will be helpful to customer
support.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 115


Appendices

Appendix B - Custom Settings


Custom settings for CPQ modules.
• System Properties
• Catalog Page Settings
• Bundle Page Settings
• Installed Products Settings
• Proposal System Properties
• Comply System Properties

System Properties
This page lists all the custom settings you may require to set up your CPQ environment. You can enter details in one or
more of the following sections, based on your organizations requirement.
• Page Selection Settings
• Pricing Settings
• Constraint Rule Settings
• Cart Related Settings
• Precision Settings
• System Properties
• Miscellaneous Settings
Page Selection Settings

Fields Description
View Cart Page Select the default cart page to be displayed.
For example: CartDetailView

Default Catalog Page Select the default catalog page for product selection.
For example: SelectConfigProductsFilterView

Product Attribute Detail Page Type the visualforce page name to capture product
attribute detail information.
For example: Apttus_Config2__ProductAttributeDetail3

Options Page Select the default options page.


The SelectConfigOptionsDetailView page does
not support more than 300 options on a bundle
with Usage Tiers, Price Ramps, and Attributes for
less than 300 Options on a Bundle, instead select
ConfigureBundle.

Resolve Configuration Page Select the default Resolve Configure page for errors or
warnings.
Guide Page Default Type the visualforce page name for the default guide page
for product selection.
Search Attribute Default Page Type the visualforce page name to capture search
attribute default information.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 116


Appendices

Fields Description
Search Attribute Value Page Type the visualforce page name to capture search
attribute values.

Pricing Settings

Setting Description
Defer Pricing Selecting this performs pricing of products only after
you click the Go to Pricing button; whereas, clearing this
check box enables the system to perform pricing as and
when you add or delete products.
Enable Auto Reprice Selecting this automatically reprices the cart. In the
cart, when you modify pricing and tab out, the system
automatically re-calculates and displays the price.
Enable Matrix Pricing For Options Selecting this enables the matrix pricing for options. By
default, this is not selected.
Max Adjustment Lines Type the maximum number of discount lines allowed for
a line item. The default value is one.
Enable Aggregate Pricing Selecting this enables aggregate price rules. If your
organization does not use aggregate pricing, you may
consider turning it off to optimize performance. By
default, this is not selected.
Enable External Pricing Selecting this enables external price calls. The external
pricing call must be coded and associated with the
Reprice button in the cart page. By default, this is not
selected.
Misc Charge Types Type a miscellaneous charge type. You can add more
than one charge type separated by a new line. These
charge types are displayed as pick list values when adding
miscellaneous items to the cart.
Totaling Group Type Type the default value for summary group type picklist.
Valid values are:
• Category
• Product
For Product based totaling, type Product and type
product field names in the Product Totaling Hierarchy
custom setting.
Product Totaling Hierarchy Type product field names separated by a new line that
represent the product totaling hierarchy. This is applicable
only when Totaling Group Type custom setting = Product.

Constraint Rule Settings

Setting Description
Show Info In Header Selecting this displays the auto include or auto exclude
information message in the header. By default, this is not
selected.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 117


Appendices

Setting Description
Hide Resolve Config Link Selecting this hides the link to the resolve configuration
error page and displays along with the constraint rule
message.
Defer Constraint on Option Selection This setting is deprecated and not functional.
Disable Constraint Rules Selecting this turns off constraint rules. If your
organization does not use constraint rules, you may
consider turning it off to optimize performance. By
default, this is not selected.
Max Contraint Rules Round Trip Type the maximum number of round trips after which
the constraint rule processing should stop. Round trip
happens only when auto included products trigger more
rules. The default value is three.
Static Criteria Fields Type the field names whose value do not change after the
records are created for a cart. To add more than one field
name separate the names by a new line or a comma.
Defer Validation Check In Bundles Selecting this defers the validation check in the bundle
configuration step. This is selected by default.
Enable Defaulting For Products Selecting this enables product default rules. If your
organization does not use product default rules, you
may consider turning it off to optimize performance. By
default, this is not selected.

Cart Related Settings

Setting Description
Display Cart Actions As Dropdown Selecting this groups the line item action buttons under
the Actions menu icon.
Bypass Shopping Cart Selecting this displays the Update Price and Finalize
buttons and hides the GoToPricing button on all the pages
except for Attributes page. On the Attributes page, the
GoToPricing button is disabled.
Keep Abandoned Carts Selecting this saves a copy in the Configuration related
list on the Quote/Proposal detail page. The status is set to
Abandoned. By default this is not selected which means
the abandoned carts are moved to the recycle bin.
Save On All Actions Selecting this saves any changes that may have been done
before navigating to any other page.
Actions Column Position Type Left or Right to position the actions column in the
cart page. By default the Actions column is displayed on
the left, but may be overridden using this setting.
Hide Subtotals In Cart Selecting this hides the subtotals in the cart. By default
this is not selected.
Hide Copy Action Selecting this hides the action in the cart. By default
this is not selected.

Precision Settings

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 118


Appendices

Setting Description
Currency Field Precision Type the number of decimals. The default currency
precision is 2 decimals.
Quantity Field Precision Type the number of decimals. The default quantity
precision is 2 decimals.
Percentage Field Precision Type the number of decimals. The default percentage
precision is 2 decimals.

System Properties

Setting Description
Base Product Relation Field Type the field names that associate a child product with
base product.
Run Finalization Task In Async Mode Selecting this finalizes the cart asynchronously.
Fixed Button Bar Selecting this displays a fixed bar for actions button on the
catalog, attributes, options, cart, and installed products
page.
Instance URL Type the Salesforce instance URL.
For example: https://na7.salesforce.com
This is required to navigate to custom pages in the
managed package.

Show Header Selecting this displays the header tabs and the sidebar.
CSS Override Type the name of the static resource to override CSS in the
catalog, attributes, options, and cart pages.

Miscellaneous Settings

Setting Description
Option Line Item Columns Type the field names from the Line Item object displayed
in the Option Hierarchy page. To add more than one field
name separate the names by a new line or a comma.
Option Product Columns Type the field names from the Product object displayed
in the Option Hierarchy page. To add more than one field
name separate the names by a new line or a comma.
Auto Sync On Cart Approval Selecting this automatically synchronizes the cart when
approved and finalized.
Search Category Default Select the default search category. The default value is All
Categories. This indicates the category to default to, when
searching for products using the search text box in the
product selection page.
Select All Products to search all products regardless of
categories.

Cascade Shared Attribute Updates Selecting this cascades the shared bundle attribute
updates to options in the bundle.
Auto Finalize On Cart Approval Selecting this automatically finalizes the cart when
approved.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 119


Appendices

Config System Properties


This is the standard Salesforce Custom Settings page that lists all the legacy custom settings you may require to fulfill
your specific business requirements.
This is accessible from Setup > Develop > Custom Settings > Config System Properties.
Important Apttus recommends using the System Properties page from the Config Settings tab. Some of the
custom settings listed on this page may require you to contact Apttus Support or Apttus Professional Services to
guide you through using these settings for specific business use cases.
There are a few custom settings that you may see in your org but are not listed in this document, those are the ones that
are not functional and are marked as Deprecated (D).

Setting Description
Base Product Relation Field Type the API name of the product field that associates a child product with
base product.
Defer Pricing Selecting this performs pricing of products after the cart is displayed.
Disable Constraint Rules Selecting this turns off constraint rules. If your organization does not use
constraint rules, you may consider turning it off to optimize performance. By
default, this is not selected.
Enable Aggregate Pricing Selecting this enables aggregate price rules. If your organization does not use
aggregate pricing, you may consider turning it off to optimize performance. By
default, this is not selected.
Enable Defaulting For Products Selecting this enables product default rules. If your organization does not use
product default rules, you may consider turning it off to optimize performance.
By default, this is not selected.
Enable External Pricing Selecting this enables external price calls. The external pricing call must be
coded and associated with the Reprice button in the cart page. By default, this
is not selected.
Enable Matrix Pricing For Options Selecting this enables the matrix pricing for options. By default, this is not
selected.
Guide Page Default Type the Visualforce page name for the default guide page for product
selection.
Hide Subtotals In Cart Selecting this hides the subtotals in the cart. By default, this is not selected.
Instance Url Type the salesforce instance url. The instance url is required to navigate to
custom pages in the managed package.
For example: https://na7.salesforce.com

Keep Abandoned Carts Selecting this saves the cart configuration and displays in the Quote/Proposal
page in the Configuration related list. The status is set to Abandoned. By
default, this is not selected. This means that when you abandon a cart, the cart
configuration is moved to the recycle bin.
Max Adjustment Lines Type the maximum number of discount lines allowed for a line item.
Max Constraint Rules Round Trip Type the maximum number of round trips after which the constraint rule
processing should stop. Round trip happens only when auto included products
trigger more rules. The default value is three.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 120


Appendices

Setting Description
Misc Charge Types Type a miscellaneous charge type. You can add more than one charge type
separated by a new line. These charge types are displayed as pick list values
when adding miscellaneous items to the cart.
Options Page Type the visualforce page name for default options page. If no value is
specified, the options page defaults to the icon view. Valid values are:
• SelectConfigOptions
• SelectConfigOptionsTabView
• SelectConfigOptionsListView

Product Attribute Detail Page Type the visualforce page name for default attributes page. This is the custom
page to capture product attribute details.
Product Totaling Hierarchy Type product field names separated by a new line that represent the product
totaling hierarchy. This is applicable only when Totaling Group Type custom
setting = Product.
Search Attribute Default Page Type the custom page name to capture search attribute default information.
Search Attribute Value Page Type the custom page name to capture search attribute values.
Search Category Default Type the default category to search for products using the search text box in
the product selection page.
For example: To search for products across all categories, type AllCategories. To
search for products regardless of categories, type AllProducts.

Show Info In Header Selecting this displays the auto include or auto exclude information message in
the header. By default, this is not selected.
Totaling Group Type Type the default value for summary group type picklist. Valid values are:
• Category
• Product
For Product based totaling, type Product and type product field names in the
Product Totaling Hierarchy custom setting.
View Cart Custom Fields Type the custom field name from the line item object displayed in the custom
cart page. To add more than one field name separate the names by a new line
or a comma.
View Cart Custom Fields 2 This is used to add additional fields.
View Cart Page Type the visualforce page name for default cart page.
View Cart Total Custom Fields Type the custom field name from the summary group object displayed in the
custom cart page. To add more than one field name separate the names by a
new line or a comma.
Skip Review Selecting this skips the review step for items in the cart.
Hide Resolve Config Link Selecting this hides the link to the resolve configuration error page and displays
along with the constraint rule message.
Hide Asset Actions Type the actions to hide on the Installed Products page. Use Comma to
separate values. For example: Increment, Amend, Renew, Cancel
Actions Column Position Type the position of the actions column in the cart page.
Valid values are:

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 121


Appendices

Setting Description
• Left
• Right

Show Header Selecting this displays the header tabs and the sidebar on the custom pages.
Enable Auto Reprice Selecting this automatically reprices the cart when a price component is
modified.
Default Catalog Page Type the visualforce page name for the default catalog page.
Valid values are:
• SelectConfigProducts
• SelectConfigProductsFilterView

Currency Field Precision Type a number to specify decimal places for currency precision. The default
currency precision is 2.
Percentage Field Precision Type a number to specify decimal places for percentage precision. The default
currency precision is 2.
Quantity Field Precision Type a number to specify decimal places for quantity precision. The default
currency precision is 2.
Run Finalization Task In Async Mode Selecting this runs the finalization task asynchronously.
Defer Validation Check in Bundles Selecting this defers the validation check in the bundle configuration step. This
is selected by default.
Custom Asset Action Label Name Type a label name for a custom asset action.
Custom Asset Action Page Type the visualforce name for the custom asset action page.
Option Line Item Columns Type the field name from the line item object displayed in the Option Hierarchy
page. To add more than one field name separate the names by a new line or a
comma.
Option Product Columns Type the field name from the product object displayed in the Option Hierarchy
page. To add more than one field name separate the names by a new line or a
comma.
Show Tab View Selecting this displays option groups as tabs instead of sections in the options
page.
Static Criteria Fields Type the field names whose value do not change after the records are created
for a cart.
Bypass Shopping Cart Selecting this displays the Update Price and Finalize buttons and hides the
GoToPricing button on all the new pages. On the Attribute page, only the
GoToPricing button is disabled.
Direct Configure Asset Actions Selecting this opens the options page for the first bundle product that is
configurable. The rest of the bundle products are added to the cart and
displayed under selected products section on the right hand side panel. If the
bundle product is set as Must Configure, an exclamation icon is displayed for
incomplete configuration.
Enable Location Selecting this enables you to select location for a cart. The line items will have
the current cart location assigned to them.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 122


Appendices

Setting Description
Admin User Type the name of the Admin User who is the default owner of activities,
created by a user who is not allowed to be the owner. For example: Customer
Portal User.
Bypass Sharing Selecting this indicates whether apex code can bypass record sharing.
Disable Charge Type Totaling Selecting this disables the totaling of charge types.
Hide Grand Total Selecting this hides the grand total line.
Enable Auto Sequencing For Options Selecting this enables auto sequencing for options. If you do not select this
option, the Option Item Sequence in the shopping cart and the Line Items
is based on the user selection sequence rather than the Bundle Options
sequence.
Disable Existing Asset Pricing Selecting this disables the existing asset pricing. If disabled, prices of existing
assets are not rolled up.
Hide Copy Action Selecting this hides the action in the cart. The default value is false (copy
icon is displayed).
Resolve Configuration Page Select the default Resolve Configure page. On Resolve Configuration Errors/
Warnings, this page is used.
• ResolveConfig
• ResolveConfigProducts

Auto Finalize On Cart Approval Selecting this automatically finalizes the cart when approved and ready for
finalization.
Cascade Shared Attribute Updates Selecting this cascades the shared bundle attribute updates to options in the
bundle.
Auto Sync On Cart Approval Selecting this automatically synchronizes the cart when approved and ready for
finalization.
CSS Override Type the name of the static resource to override CSS in the catalog, attributes,
options, and cart pages.
Fixed Button Bar Selecting this displays a fixed bar for actions button on the catalog, attributes,
options, cart, and installed products page.
Save On All Actions Selecting this saves the configuration when you click any action on the cart
page.
Display Cart Actions As Dropdown Selecting this displays the line item action buttons as a dropdown menu in the
cart page.

Catalog Page Settings


This page lists all the custom settings you may require to set up the Catalog page. You can enter details in one or more of
the following sections, based on your organizations requirement.
• General Page Settings
• Product List Settings
• Mini Cart Settings
• Other Page Settings
General Page Settings

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 123


Appendices

Setting Description
Main Section Ratio Type the ratio in which you want to divide the page. The
ratio of the main sections in the page should be separated
by a colon. The default value is 20:60:20. This is applicable
to the SelectConfigOptionsDetail, ConfigureBundle, and
SelectBundleOptions page.
Hide Default Options In Description Selecting this hides the default options listed below the
product description.
Hide Configure Action
Selecting this hides the Configure action on the
catalog page.
Read Only Location Selecting this makes the Location field read only.
Search Query Limit Type a value to set the limit for a search query. For faster
product search, type a smaller number. The default is
1000.
Hide Help Me Choose Selecting this hides the help me choose link. By default
this is not selected.
Custom Action Label Name Type the name of the custom label for the action.
Custom Action Page Type the name of the custom action page.
Enable Category Filter Selecting this filters the categories based on search results
and displays in the Narrow Your Search area on the left.
For example, if the search result has products from only
two categories, the Narrow Your Search section displays
only those two categories.
You should always select Enable Category Filter
when Hide Narrow Your Search is cleared.

Cache All Products (BETA) Selecting this enables caching of products of a price list
containing less than 3000 products.

Product List Settings

Setting Description
Listed Products Column2 Type the API name of the product field to display in
the listed products section. (optional). Example Value:
ProductCode
Listed Products Column3 Type the API name of the product field to display in
the listed products section. (optional). Example Value:
ProductCode
Hide Compare Products Selecting this disables the Compare Products feature in
the catalog page.
Hide Product Image Selecting this hides the product image from the catalog
page.
Hide Listed Products Price Column Selecting this hides the price information column in listed
product section. By default, this is not selected.
Hide Breadcrumb Selecting this hides the breadcrumb navigation element.
Carousel Default Icon Type the ID of the icon.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 124


Appendices

Setting Description
Hide Narrow Your Search Selecting this hides the Narrow Your Search section from
the page.
Show Quantity Input Selecting this displays the Quantity field on the Catalog
page.

Mini Cart Settings

Setting Description
Selected Products Column2 Type the API name of the line item field to display in the
selected products section (optional). Example Value:
ProductId__r.ProductCode
Selected Products Column3 Type the API name of the line item field to display in the
selected products section (optional). Example Value:
ProductId__r.ProductCode
Selected Products Column4 Type the API name of the line item field to display in the
selected products section (optional). Example Value:
ProductId__r.ProductCode
Order Status Fields Type the name of the line item fields separated by comma
that has information about promotion, delivery info,
shipping info, and more.
Hide Selected Products Column1 Selecting this hides the column that displays the product
name.
Minimize Cart Selecting this displays the cart icon and hides the cart
sidebar on the right hand side of the catalog page.
Show Selected Product All Charges Selecting this displays all the charge types for selected
products in the tree view options page.

Other Page Settings

Setting Description
Show Product Icon Cart Detail View Selecting this displays the product icon on each line item
in the Cart Detail View page.
This will disable the action item columns and
show the actions under the product icon.

Show Selected Products in Config Options Selecting this displays the Selected Products widget in the
Config Options Detail View page.
Collapse All Leaf Option Groups Selecting this collapses all the leaf option groups in the
Config Options Detail View page.
Show Recommended Products Cart View Selecting this displays the recommended products
component in the Cart Detail View page.
Cart List Item Description Field Type the API field name of the Long Description field to be
used in the Cart Detail View page.
Hide Line Item Attribute Details Selecting this, hides the Line Item Details section on the
Product Attribute Detail page.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 125


Appendices

Bundle Page Settings


This page lists all the custom settings you may require to set up the Options page. You can enter details in one or more
of the following sections, based on your organizations requirement.
• General Page Settings
• Option List Settings
• Mini Cart Settings
General Page Settings

Setting Description
Main Section Ratio Selecting this divides the options page with the specified
ratio. The ratio of the main sections in the page should
be separated by a colon. The default value is 0:70:30.
This is applicable to the SelectConfigOptionsDetail,
ConfigureBundle, and SelectBundleOptions page.
Show Tab View Selecting this displays option groups as tabs instead of
sections in the options page.
Bundle Description Field Type the field names from the product object to be
displayed as bundle description.

Option List Settings

Setting Description
Listed Options Column 2 Type the API name of the product field to display in the
listed options section.
Listed Options Column 3 Type the API name of the product field to display in the
listed options section.
Hide Price Column Selecting this disables the price column from the options
page.
Show Option Quantity Selecting this displays the Quantity in the body
of the options pages. This setting controls the
SelectConfigOptionsDetailView and ConfigureBundle
page.

Mini Cart Settings

Setting Description
Show Bundle Detail Selecting this shows the bundle details in the options
page.

Installed Products Settings


This page lists all the custom settings you may require to set up the Installed Products page. You can enter details in one
or more of the following sections, based on your organizations requirement.

Setting Description
Direct Configure Asset Actions Type comma separated values of Increment, Amend,
Renew, Cancel actions. Listed actions will configure
products directly.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 126


Appendices

Setting Description
Max Renews Per Trip Type the maximum number of renewals per trip. To
prevent CPU timeout use a smaller number. The default is
40.
Amend Change Fields Type comma separated line item field names whose
values can turn an existing asset line into amended asset
line.
Hide Asset Actions Type comma separated values of Increment, Amend,
Renew, Cancel actions. Listed actions will be hidden from
the users.
Show Accounts Filter Selecting this displays the account filter in the installed
products page.
Filter Fields Type the name of Asset Line Fields to be displayed on the
filter. Works with text fields and End Date.
Hide Co-Term Hides the Co-Terminate End Date to field with its values,
the text field to enter date, and the Apply button.

Proposal System Properties


This page lists all the Quote/Proposal system properties. You can enter one or more of the following property details.

Setting Description
Admin User Type the first name, last name of the admin user. The admin user is the default
owner of activities created by a user who is not allowed to be the owner. For
example: Customer Portal User.
Bypass Sharing Selecting this indicates whether apex code can bypass record sharing during
selective operations such as clone and deleting draft attachments.
Default Opportunity Quote Owner Type Opportunity Owner or Current User to set the default owner for the quote/
proposal created from an opportunity. If not set, Opportunity Owner becomes
the default owner.
Default Quote Agreement Owner Type Quote Owner or Current User to set the default owner for the agreement
created from a quote/proposal. If not set, Quote Owner becomes the default
owner of the new agreement.
Email Template For Presenting Type the name of the email template to use for presenting proposals.
Proposals
Enable PDF Security Selecting this enables pdf security. The user can apply security settings to pdf
documents and protect them with a password.
Instance URL Type the Salesforce instance URL.
For example: https://na7.salesforce.com
This is required to navigate to custom pages in the managed package.

Merge Call Timeout Millis Type a number to indicate timeout in milliseconds for the merge request. For
example: 60,000
Merge Webservice Endpoint Type the Apttus merge webservice endpoint.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 127


Appendices

Setting Description
For example: https://mwsdev.apttus.net/cgi-bin/360/MergeServer/Bin/
MMCGI.exe

PDF Owner Password Type the password required to change permissions of the PDF document like
printing or editing.
Auto Sync With Opportunity Selecting this automatically synchronizes the quote line items with the
opportunity, when the proposal is accepted. This setting appears only if you
have Apttus Quote/Proposal-Configuration Integration package installed.
Disable Opportunity Products Copy Selecting this disables copying of opportunity products to the quote/proposal.
Sync Bundle Using Line Items Selecting this synchronizes bundle products using proposal line items. The
default uses proposal summary objects. This setting appears only if you have
Apttus Quote/Proposal-Configuration Integration package installed.
Sync Option Products Selecting this synchronizes options along with bundles. The default is
synchronize bundle only. This setting appears only if you have Apttus Quote/
Proposal-Configuration Integration package installed.
Max Child Level Type the maximum level to generate the merge data for.

Comply System Properties


This page lists all the Comply system properties. You can enter one or more of the following property details.

Setting Description
Admin User Type the first name, last name of the admin user. The admin user is the default
owner of activities created by a user who is not allowed to be the owner. For
example: Customer Portal User.
Bypass Sharing Selecting this indicates whether apex code can bypass record sharing during
selective operations such as clone and deleting draft attachments.
Enable PDF Security Selecting this enables pdf security. The user can apply security settings to pdf
documents and protect them with a password.
Instance Url Type the Salesforce instance URL.
For example: https://na7.salesforce.com
This is required to navigate to custom pages in the managed package.

Merge Call Timeout Millis Type a number to indicate timeout in milliseconds for the merge request. For
example: 60,000
Merge Webservice Endpoint Type the Apttus merge webservice endpoint. For example: https://
mwsdev.apttus.net/cgi-bin/360/MergeServer/Bin/MMCGI.exe
PDF Owner Password Type the password required to change permissions of the PDF document like
printing or editing.
Publish Merge Events Selecting this inserts a record in the Merge Event table. This setting indicates
whether merge events should be published.
Auto Sync With Opportunity Selecting this automatically synchronizes the agreement line items with the
opportunity, when the agreement is accepted. This setting appears only if you
have Apttus Contract-Configuration Integration package installed.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 128


Appendices

Setting Description
Sync Bundle Using Line Items Selecting this synchronizes bundle products using agreement line items. The
default uses agreement summary objects. This setting appears only if you have
Apttus Contract-Configuration Integration package installed.
Sync Option Products Selecting this synchronizes options along with bundles. The default is
synchronize bundle only. This setting appears only if you have Apttus Contract-
Configuration Integration package installed.
Contract Summary Template Type the name of the contract summary template.
Default Opportunity Agreement Type Opportunity Owner or Current User to set the default owner for the quote/
Owner proposal created from an opportunity. If not set, Opportunity Owner becomes
the default owner.
Email Template For Checkin Type the email template for sending check-in notifications.
Notification
Enable Multiple Checkout Selecting this allows multiple checkout. This is applicable only when version
control is in effect.
Enable Version Control Selecting this enables version control and enforces checkout/check-in policy for
agreement documents.
Max Child Level Type the maximum level to generate the merge data for.
Enable Submit Merge Call Selecting this submits merge calls for processing. A Submit button is displayed
during document generation.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 129


Appendices

Appendix C - Create Asset Trigger Sample Code


This is sample code and you can modify it as per your business requirement to synch and merge asset records. The
example code contains guidance comments around usage and best practices.
This code should NOT be used 'as is'. It needs to be modified for your specific requirements.

/**
* CreateAssetTrigger copies CPQ lineItem_c object fields into AssetLineItem__c
object
*/
trigger CreateAssetTrigger on Apttus_Proposal__Proposal__c (after update) {

String LINETYPE_PRODUCT = 'Product/Service';


String LINETYPE_OPTION = 'Option';
String APPROVAL_STAGE = 'Accepted';

Map<ID, Apttus_Proposal__Proposal__c> oldMap = new Map<ID,


Apttus_Proposal__Proposal__c>();

String PROP_SYSTEM_PROPERTIES = 'System Properties';


ID accountId;
string RecordtypeName;
//keep a reference to old object to compare stage
for(Apttus_Proposal__Proposal__c proposal : Trigger.old){
oldMap.put(proposal.Id, proposal);
}

Set<ID> configIds = new Set<ID>();

//This value can be changed so this variable must match

for(Apttus_Proposal__Proposal__c proposal : Trigger.new){


Apttus_Proposal__Proposal__c oldProposal = oldMap.get(proposal.Id);

accountId = proposal.Apttus_Proposal__Account__c;//keep last one,


should be same TODO: find out

//detect transition. TODO: take tare of repeat transition


if(oldProposal.Apttus_Proposal__Approval_Stage__c != APPROVAL_STAGE
&& proposal.Apttus_Proposal__Approval_Stage__c == APPROVAL_STAGE )
{ //Example old Stage = 'Draft' vs new Stage = 'Accepted'

List<Apttus_Proposal__Proposal_Line_Item__c> proposalItems =
[SELECT Id, Apttus_QPConfig__ConfigurationId__c
FROM
Apttus_Proposal__Proposal_Line_Item__c
WHERE
Apttus_Proposal__Proposal__c = : proposal.Id];
for(Apttus_Proposal__Proposal_Line_Item__c proposalItem:
proposalItems){

configIds.add(proposalItem.Apttus_QPConfig__ConfigurationId__c);
}
}
}

//get all common fields between Asset Line Items and Line Items

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 130


Appendices

Set<String> fields = assetCommonFields();


//fetch all the line items added to the quote
String lineItemsQuery =
buildObjectQuery(fields,'Apttus_Config2__ConfigurationId__r.Apttus_Config2__AccountId__c,

'Apttus_Config2__ConfigurationId__c in :
configIds','Apttus_Config2__LineItem__c');

List<Apttus_Config2__LineItem__c> lineItems =
(List<Apttus_Config2__LineItem__c>)Database.query(lineItemsQuery);

if(lineItems != null && lineItems.size() > 0){


accountId =
lineItems[0].Apttus_Config2__ConfigurationId__r.Apttus_Config2__AccountId__c;
}

if(accountId == null){
return;
}

String assetLinesQuery =
buildObjectQuery(fields,'Apttus_Config2__BusinessObjectId__c,Apttus_Config2__BusinessLine

'Apttus_Config2__BusinessObjectId__c in :
configIds','Apttus_Config2__AssetLineItem__c');

List<Apttus_Config2__AssetLineItem__c> addedAssets =
(List<Apttus_Config2__AssetLineItem__c>)Database.query(assetLinesQuery);

// save id list to get attribute values


Set<ID> lineItemIdList = new Set<ID>();

//create asset record for each line item


List<Apttus_Config2__AssetLineItem__c> assetItems = new
List<Apttus_Config2__AssetLineItem__c>();

Set<ID> addedAssetIds = new Set<ID>();

for(Apttus_Config2__LineItem__c line : lineItems){


lineItemIdList.add(line.Id);

String lineBizId = line.Apttus_Config2__ConfigurationId__c;//TODO: use


agreement or proposal id
//STEP I find if the asset record is already added
Apttus_Config2__AssetLineItem__c assetItem;
for(Apttus_Config2__AssetLineItem__c addedAsset : addedAssets){
if(addedAsset.Apttus_Config2__BusinessObjectId__c == lineBizId
&& addedAsset.Apttus_Config2__LineNumber__c ==
line.Apttus_Config2__LineNumber__c
&& addedAsset.Apttus_Config2__ItemSequence__c ==
line.Apttus_Config2__ItemSequence__c){
if(!addedAssetIds.contains(addedAsset.Id)){ //TODO: check,
this should not happen
assetItem = addedAsset;
addedAssetIds.add(addedAsset.Id);
}
break;

if(assetItem == null){
assetItem = new Apttus_Config2__AssetLineItem__c();

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 131


Appendices

copyValues(assetItem, line, fields);


assetItems.add(assetItem);

upsert assetItems;

//associate bundle with options


List<Apttus_Config2__AssetLineItem__c> bundleLines = [SELECT Id,
Apttus_Config2__ProductId__c, Apttus_Config2__OptionId__c,

Apttus_Config2__LineNumber__c, Apttus_Config2__BusinessObjectId__c
FROM
Apttus_Config2__AssetLineItem__c
WHERE
Apttus_Config2__BusinessObjectId__c in : configIds
AND
Apttus_Config2__LineType__c = :LINETYPE_PRODUCT
AND
Apttus_Config2__IsPrimaryLine__c = :true ];

//set Bundle Asset Id


for(Apttus_Config2__AssetLineItem__c assetItem : assetItems){
if(assetItem.Apttus_Config2__LineType__c == LINETYPE_OPTION){
for(Apttus_Config2__AssetLineItem__c bundleItem : bundleLines){
if(bundleItem.Apttus_Config2__BusinessObjectId__c ==
assetItem.Apttus_Config2__BusinessObjectId__c
&& bundleItem.Apttus_Config2__ProductId__c ==
assetItem.Apttus_Config2__ProductId__c
&& bundleItem.Apttus_Config2__LineNumber__c ==
assetItem.Apttus_Config2__LineNumber__c){
assetItem.Apttus_Config2__BundleAssetId__c =
bundleItem.Id;
break;

upsert assetItems;

//copy product attribute values


Map<ID, ID> proposalAssetMap = new Map<ID, ID>();
for(Apttus_Config2__AssetLineItem__c assetItem : assetItems){
proposalAssetMap.put(assetItem.Apttus_Config2__BusinessLineItemId__c,
assetItem.Id); //BusinessLineItemId__c is either agreement or proposal line
item id
}

String nsPrefix = 'Apttus_Config2__';

Set<String> sourceFieldNames = new


Set<String>(getCustomFieldNames(Apttus_Config2__ProductAttributeValue__c.getSObjectType()

String qryStr = buildObjectQuery(sourceFieldNames,


null,

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 132


Appendices

nsPrefix + 'LineItemId__c
IN :lineItemIdList LIMIT 1000',
nsPrefix + 'ProductAttributeValue__c');

List<Apttus_Config2__ProductAttributeValue__c> prodAttrList =
Database.query(qryStr);
List<Apttus_Config2__AssetAttributeValue__c> assetAttrList = new
List<Apttus_Config2__AssetAttributeValue__c>();

if ((prodAttrList != null) && (! prodAttrList.isEmpty())) {


List<Apttus_Config2__AssetAttributeValue__c> apAttrList = new
List<Apttus_Config2__AssetAttributeValue__c>();

for (Apttus_Config2__ProductAttributeValue__c prodAttr : prodAttrList)


{
Apttus_Config2__AssetAttributeValue__c assetAttr = new
Apttus_Config2__AssetAttributeValue__c();
assetAttr.Apttus_Config2__AssetLineItemId__c =
proposalAssetMap.get(prodAttr.Apttus_Config2__LineItemId__c);

// copy field values from


for (String fieldName :
getCustomFieldNames(Apttus_Config2__AssetAttributeValue__c.getSObjectType()))
{
if(!sourceFieldNames.contains(fieldName)){
continue;
}
// get the field value
Object value = prodAttr.get(fieldName);
if (value != null) {
// set the field value
try {
assetAttr.put(fieldName, value);
} catch (Exception ex) {
System.debug(ex.getMessage());

assetAttrList.add(assetAttr);

}
upsert assetAttrList;
}

//
******************************************************************************************
// Helper methods
//
******************************************************************************************

/**
* Returns a list of custom field names
*/
List<String> getCustomFieldNames(Schema.SObjectType sobjectType) {

// get custom field names from the object


List<String> fieldNames = new List<String>();

// get the field metadata

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 133


Appendices

Schema.DescribesObjectResult metadata = sobjectType.getDescribe();


for (Schema.SObjectField field : metadata.fields.getMap().values()) {
// use the fully qualified field name as the key
Schema.DescribeFieldResult fldMetadata = field.getDescribe();

if (fldMetadata.isCustom()) {
// add the custom field
fieldNames.add(fldMetadata.getName());

return fieldNames;

/**
* Builds query string
*/
String buildObjectQuery(Set<String> fieldNames, String specialFields,
String whereClause, String sObjectName) {

String queryStr = 'SELECT ';

// standard fields
queryStr += 'Id';
queryStr += ', Name';

if(specialFields != null) {
queryStr += ','+specialFields;
}

// custom fields
if (fieldNames != null) {
for (String fieldName : fieldNames) {
if (fieldName == 'Id' ||
fieldName == 'Name') {
// skip standard fields
continue;
}

queryStr += ',' + fieldName;


}
}

queryStr += ' FROM ' + sObjectName;

if(whereClause != null) {
queryStr += ' WHERE ';
queryStr += whereClause;
}

return queryStr;
}

/**
* Creates the list of common fields between the Asset Line Item and the
Line Item objects
*/
Set<String> assetCommonFields() {

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 134


Appendices

Set<String> commonFields = new Set<String>();


Set<String> assetFieldNames = new
Set<String>(getCustomFieldNames(Apttus_Config2__AssetLineItem__c.getSObjectType()));
//assign asset line item id

// copy field values


for (String fieldName :
getCustomFieldNames(Apttus_Config2__LineItem__c.getSObjectType())) {
if(!assetFieldNames.contains(fieldName)){
continue;
}

commonFields.add(fieldName);
}

return commonFields;
}

/**
* Copy field values between the Line Item and the Asset Line Item
*/
void copyValues(Apttus_Config2__AssetLineItem__c targetSO,
Apttus_Config2__LineItem__c sourceSO, Set<String> commonFields ) {

//Custom fields
targetSO.Apttus_Config2__AccountId__c =
sourceSO.Apttus_Config2__ConfigurationId__r.Apttus_Config2__AccountId__c;
targetSO.Name = sourceSO.Name.substring(3);
targetSO.Apttus_Config2__BusinessObjectId__c =
sourceSO.Apttus_Config2__ConfigurationId__c;
targetSO.Apttus_Config2__BusinessLineItemId__c = sourceSO.Id;
targetSO.Apttus_Config2__AssetStatus__c =
sourceSO.Apttus_Config2__LineStatus__c;

//Insert here any special fields and values for the Asset Line Item

//Special cases for Cancelled Line Items


if(sourceSO.Apttus_Config2__LineStatus__c == 'Cancelled') {
targetSO.Apttus_Config2__Quantity__c =
sourceSO.Apttus_Config2__Quantity__c - targetSO.Apttus_Config2__Quantity__c;
if(targetSO.Apttus_Config2__Quantity__c <0) {
targetSO.Apttus_Config2__Quantity__c = 0;
}
return;
}
else if(sourceSO.Apttus_Config2__LineStatus__c == 'Incremented') {
targetSO.Apttus_Config2__Quantity__c =
sourceSO.Apttus_Config2__Quantity__c + targetSO.Apttus_Config2__Quantity__c;
return;
}

// copy field values


for (String fieldName : fields) {

Object value = sourceSO.get(fieldName);


if (value != null) {
// set the field value
try {
targetSO.put(fieldName, value);

} catch (Exception ex) {


// field may not be defined.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 135


Appendices

System.debug(ex.getMessage());

}
}
}

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 136


Appendices

Apttus Configuration & Pricing Package Objects


The following objects contain fields that are maintained in the corresponding tables for the objects.

Apttus CPQ Object Purpose of the Object


Account Location Represents a location for an account.
Adjustment Line Item Represents an adjustment to the price of a product/
service.
Agreement Price Rule Represents a special pricing rule associated with an
agreement or an asset.
Agreement Price Tier Represents a single entry in an agreement price tier.
Applied Rule Action Info Rule actions that are applied to the configuration.
Applied Rule Info Keeps track of rules applied to a configuration.
Asset Attribute Value Represents the attribute values for a product class.
Asset Line Item Represents a product or service asset line item.
Asset Usage Price Tier Represents a single entry in a asset usage price tier.
Batch Job (CPQ) Represents an individual batch job.
Bundle Component View Keeps the list references of component products related
to the bundle and sub bundle.
Category Represents a product category.
Category Hierarchy Represents a category hierarchy.
Constraint Rule Captures information about configuration of constraint
rule.
Constraint Rule Action Captures information about rule actions, which are only
applied when the rule conditions are satisfied.
Constraint Rule Condition Captures information about condition of a constraint rule.
Custom Message Used to provide translations for messages used in custom
objects.
Feature Represents a single feature in a feature set.
Feature Set Represents a set of features shared by products.
Footnote Represents a single footnote in a document.
Formula Field Represents a formula field used in price dimensions and
rules.
Frequency Conversion Rate Represents the conversion rates used to convert pricing
from one frequency to another.
Guided Question Represents a question for guided selling.
Guided Search Rule Entry Represents a single entry in a guided search rule.
Guided Search Rule Filter Represents a single search filter in a guided search rule
entry.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 137


Appendices

Apttus CPQ Object Purpose of the Object


Guided Selling Rule Represents a rule to search for products based on a
guided interview.
Line Item Represents a product or service line item.
Price Breakup Represents the price breakup of a product/service.
Price Dimension Represents a price criteria dimension.
Price List Represents a price list that contains the list of products for
your organization.
Price List Category Represents the categories associated with a price list.
Price List Item Represents a product entry in a price list.
Price Matrix Represents a price matrix associated with a price list entry.
Price Matrix Entry Represents a single entry in a price matrix.
Price Rule Represents a single rule in a price ruleset.
Price Rule Entry Represents a single entry in a price rule.
Price Ruleset Represents a rule set that contains the list of rules to
modify prices of products the organization sells.
Product Attribute Represents a single attribute in a product attribute group.
Product Attribute Group Represents a product attribute group that contains
attributes shared by products.
Product Attribute Group Member Represents the association between a product and an
attribute group.
Product Attribute Value Represents the attribute values for a product class.
Product Classification Represents a product classification which is a member of
the list of products associated with a classification.
Product Configuration Represents a product configuration.
Product Constraint Represents a set of constraints a product must satisfy
before it can be added to the product configuration.
Product Constraint Entry Represents a single entry in a product constraint.
Product Constraint View Creates product and constraint rule view table based
on the definition of product scope in constraint rule
condition.
Product Default Rule Represents a rule for default products, quantity, and term.
Product Default Rule Filter Represents a single filter in a product default rule.
Product Default Value Represents the default values for a product.
Product Feature Represents the association between a product and an
feature set.
Product Feature Value Represents the feature values for a product and its
associated feature set.
Product Filter View Represents the filter values for each product in a category.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 138


Appendices

Apttus CPQ Object Purpose of the Object


Product Footnote Represents the footnote available in a product or option.
Product Group Represents a group of products.
Product Group Member Represents a single product in a product group.
Product Hierarchy View Represents a denormalized (materialized) view of product
and classification hierarchies.
Product Information Represents information associated with a product or a
classification.
Product Option Component Represents a product option component which is a
member of the list of options associated with a product
option group.
Product Option Group Represents a product option group which is a member of
the list of option groups associated with a product.
Product Option Price Represents the price of an option or component.
Related Account Location Holds the relationships between account locations.
Related Price List Item Holds the relationships between price list items.
Related Product Related products are for upsell, cross sell or related
products (search helper).
Search Attribute Value Holds product search parameters and default values for
line items.
Search Filter (CPQ) Represents a search filter.
Summary Group Represents a summary of line items.
Temp Display Column Holds information about columns displayed in the cart
view.
Temp Filter Helps in binding of search filter values.
Temp Object (CPQ) A container for temporary objects used by the application.
Temp Renew Temporary object for capturing user input to create asset
line items during the amendment/renewal process.
Totaling Group Represents a totaling group.
Usage Price Tiers Represents a single entry in a usage price tier.

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 139


Appendices

Profile Settings and Security


As an administrator, you can create or modify permissions for users to access the Apttus CPQ objects and its fields.
Below is a representative list of access configuration for various user types.
A description of the feature...

CONFIDENTIAL - Copyright 2011-2014 Apttus Corp. All rights reserved. 140

You might also like