CPQ. Product rules. Part 1

Добрый день! После перерыва CPQ возвращается))). И сегодня мы познакомимся с таким инструментом CPQ, как Product rules.

Прежде всего определимся, что это такое и для чего они нужны? Часто бывает, что менеджеры по продажам забывают включить в коммерческое предложение дополнительный продукт или добавляют его в неправильном количестве. Product rules позволяют избежать таких ошибок.

Product rules бывают четырех типов:

Тип Назначение Пример
Alert Показать предупреждающее сообщение о возможной ошибке при сохранении Quote. Сообщение можно игнорировать. Напомнить менеджеру по продажам, что он может включить сопутствующий продукт в Quote.
Validation Показать предупреждающее сообщение о ошибке при сохранении Quote. Сообщение нельзя игнорировать. Менеджер добавил в quote с фотоаппаратом не подходящую модель объектива.
Selection Автоматически убирать, добавлять или скрывать продукты при конфигурации Product Bundle. Или автоматически добавлять Product в Quote. Например автоматически выбрать в Product Bundle опции, которые соответствуют полю Industry на Account.
Filter Показывать только определенные продукты при использовании Dynamic selection option. Показывать только продукты, содержащие слово “cable” в product code.

Рассмотрим более подробно из чего состоит Product rule. Прежде всего Product rule это объект. И при создании нового Product rule создается соответствующая запись. Product rule работает в тесной связке с 4-мя другими объектами.
1

Error Condition

Определяет условия, когда сработает Product Rule.

Action(Product Action)

Определяет, что происходит с Product Bundle при срабатывании Product Rule.

Lookup Query

Запросы, которые позволяют собрать дополнительные данные для Product Rule.

Configuration Rule

Позволяет применять Product Rule к конкретному Product Bundle.

Помимо этих 4-х основных объектов функционал Product Rule также может регулироваться Summary Variable и Configuration Attribute.
Посмотрим теперь, как все это работает на практике.

Пример 1
Пусть у нас есть Product - Cloud Storage и мы не можем продавать его компаниям из сферы здравоохранения(в терминах Salesforce это Account c значением Healthcare в поле Industry).

Создадим Product Rule типа Validation для этого случая.
2

В поле Type мы выбираем тип Validation. Поле Scope регулирует где срабатывает Rule - во время конфигурации Product(значение Product) или при открытии Quote Line Editor(значение Quote), но не в двух местах сразу )). Поле Evaluation Event определяет когда срабатывает правило - Load, Edit, Save.

Для правильного выбора значений в этих двух полях Вам поможет таблица:

Scope Evaluation Event Событие Тип правила
Product Load Первая загрузка Product Configuration страницы. Selection, Filter
Product Edit Изменения на Product Configuration странице. Selection, Validation
Product Save Нажатие кнопки Save на Product Configuration странице. Alert, Validation
Quote Save Возврат в Quote Line Editor после выбора или конфигурации Product. Selection
Quote Save Нажатие кнопки Save или Quick Save в Quote Line Editor. Alert, Validation

У поля Evaluation Event есть еще одно значение Always. Но это не значит, что в случае его выбора правило будет срабатывать всегда. Это значение следует воспринимать так, что правило сработает если для этого есть условия, потому что например CPQ не разрешает сработать правилу типа Alert при Scope = Product и Evaluation Event = Load. То есть Always следует выбирать как некий универсальный критерий.

После создания Product Rule нам необходимо создать Error Condition. В соответствующем релейтед листе нажимаем New

3
4

В поле Tested Object выбираем объект для проверки. В поле Tested Field выбираем поле с этого объекта для проверки. В поле Filter Type выбираем с чем будет сравниваться значение поля с объекта. Value означает, что сравнение будет производится с статическим значением, Variable - сравнение будет производится с Summary Variable. Сейчас мы создали наш первый Error Condition, в котором проверяется значение поля SBQQ_Product_Code__c.

Теперь создадим второй Error Condition для проверки значения в поле Industry на Account.

При его создании мы сталкиваемся с проблемой, нам нужно проверить значение поля с объекта Account, но при создании Error Condition мы можем выбрать только 6 объектов

5

В данном случае можно создать на Quote formula field для маппинга значения поля с Account и добавить его API Name в пиклист Tested Field на объекте Error Condition. И так как это Dependent Picklist его необходимо настроить так, чтобы при выборе в качестве Tested Object = Quote, его было видно.

6

7

Теперь проверим, как работает наш Product Rule. Выберем Quote у которой Account Industry = Healthcare.

8

Добавим продукт Cloud Storage
9

При попытке сохранить Quote получаем ошибку.

Допустим мы теперь хотим, чтобы менеджеры не могли продавать Cloud Storage не только Account c Healthcare, но и с Banking. Таким образом у нас получается такой набор Error Conditions:

Product = Cloud Storage

Industry = Healthcare или Banking

В этом случае нам необходимо создать еще один Error Condition для Industry = Banking, их теперь будет 3. И в поле Index для каждого из них указать уникальный номер.

Error Condition Index
Product = Cloud Storage 10
Industry = Healthcare 20
Industry = Banking 30

После этого нам на Product rule нам нужно поставить такие условия срабатывания:
11

Сегодня мы узнали, что такое Product Rule и рассмотрели его базовый функционал. В последующих статьях я покажу более сложные и комплексные настройки этого инструмента CPQ.

4 Вподобання