CPQ. Discounting Tools. Part 2

Как и обещал — отдельная статья про Volume-Based Discount Schedule. Этот Discount method позволяет предоставить скидку в зависимости от объема закупки.

Обычно скидки описываются подобной таблицей:

Мин. количество Макс. количество (не включено в диапазон для скидки) Скидка %
10 30 5%
30 70 10%
70 - 20%

Для применения подобной системы в CPQ необходимо сделать несколько настроек.

Первая

Заходим на вкладку Discount Schedules и создаем новую, указывая только имя.

Теперь нам нужны диапазоны закупки продукта для получения скидок. Для этого кликаем Edit Tiers

и указываем необходимые диапазоны. Необходимое их количество добавляется кнопкой + справа от диапазона.

Вторая

Теперь необходимо подключить созданный Discount Schedule к Product, для которого мы хотим установить скидки в зависимости от объема закупки.

Заходим на Product и в поле Discount Schedule указываем созданную нами Discount Schedule.
3

Теперь при добавлении этого продукта в Quote будут автоматически применяться скидки от объема.

Как видим, при добавлении продукта с количеством 1 скидка не применилась, List Price = Regular Price.

Увеличим количество до 120 и нажимаем Calculate.

Когда к Product применена Discount Schedule, то рядом с ним отображается специальный знак sign

Нажатие по нему позволяет увидеть диапазоны скидок
DS

ВАЖНО! Один Discount Schedule может применятся не только к одному продукту, а к разным.

В предыдущем примере мы подключили Discount Schedule к Product. В этом случае скидка будет применяться каждый раз, когда этот Product включается в Quote. Но если мы хотим, чтобы эта скидка применялась только в пределах конкретного бандла. Тогда необходимо отключить Discount Schedule от продукта и добавить в поле Discount Schedule непосредственно на Product Option.

7

Вообще Discount Schedule можно подключать к различным объектам в CPQ.

Объект Контекст Приоритет
Contracted Price Discounts only for a specific account. 1
Price Dimension Discounts for one-time fees attached to subscription products or segments of the subscription term. 2
Product Option Discounts only when a product is sold in a bundle. 3
Feature Discounts for every product in a bundle feature. 4
Product Discounts whenever a product is added to the quote. 5

Если случилось так, что разные Discount Schedule влияют на один Product (на Product подключен один Discount Schedule, а на Product Option другой), то CPQ выбирает для использования Discount Schedule подключенный к объекту с наивысшим приоритетом. В данном случае будет выбран Discount Schedule, подключенный к Product Option.

По умолчанию Discount Schedule применяется для любых Price Book, подключенных к Quote, но иногда возникает необходимость исключить использование скидок для какого-то Price Book. Для этого необходимо в поле Excluded Pricebook IDs на записи Discount Schedule добавить Id Price Books, для которых мы не хотим использовать скидки.

8

ВАЖНО!
Выше мы подключали скидки с использованием поля Discount Schedule на Product. Возможен также вариант подключения с использованием полей Product и Price Book на записи Discount Schedule. В этом случае скидка применяется только, если данный Product подключается к Quote использующей Price Book из поля Price Book.

Как создавать и подключать Discount Schedule мы научились. Теперь рассмотрим как CPQ считает количество Product для предоставления скидки.

Допустим мы решили, что клиент получит 10% скидку при покупке 150 единиц Product. Что будет, если этот Product включен в Quote не одним Quote Line, а двумя по 75 шт.? Что если этот Product помечен bundled, то есть за него не требуется оплата? Все это регулируется настройками Discount Schedule, а именно значением установленным в поле Aggregation Scope.

Значение Контекст
None Значение по умолчанию. Количества одного и того же продукта в Quote не суммируются.
Quote Количества одного и того же продукта в Quote суммируются по всей Quote.
Group Количества одного и того же продукта в Quote суммируются по группам внутри Quote.

Рассмотрим пример, чтобы понять, как это работает.

9

Значение Результат
None Для Quote с картинки выше скидка не будет предоставлена ни на один продукт, так как их количества меньше 150.
Quote Будет предоставлена скидка 20%, так как суммарное количество продукта 225, что соответствует второму уровню скидок.
Group Для первой группы будет предоставлена скидка 10%, так как суммарное количество продукта 150, что соответствует первому уровню скидок. Во второй группе скидка не будет предоставлена.

Еще возможна ситуация, когда в одну Quote включен один Product и как Product Option и как отдельный Product. И Discount Schedule подключен к Product Option, а к Product не подключен. В этом случае, даже если Aggregation Scope = Quote, для определения размера скидки будут считаться только количества, указанные в Product Option. Для того, чтобы учитывались количества отдельного Product — к нему необходимо подключить Discount Schedule.

Если Вам необходимо, чтобы учитывались количества продукта, включенного в бандл и помеченного, как Bundled (его стоимость не учитывается в общей сумме Quote), то на Discount Schedule нужно чекнуть поле Include Bundled Quantities.

10

Допустим у нас в Quote есть два похожих Product - RFID Key Cards и RFID Key Fobs. И мы хотим, чтобы они оба учитывались для получения скидки в одной Quote. Для этого необходимо чекнуть поле Cross Products на Discount Schedule. И тогда все количества всех продуктов, подключенных к одному Discount Schedule, считаются вместе.

Эта функция работает только если Aggregation Scope = Quote или Group.

Также для расчета скидки возможно учитывать ранее приобретенные количества Product. Для этого на записи Discount Schedule нужно чекнуть поле Cross Orders. После этого CPQ посчитаем количества этого Product, купленные ранее (по записям Asset относящихся к этому Account) и посчитает скидку к текущей Quote. При этом CPQ учитывает все Asset относящиеся к Account за весь период.

Если мы хотим, чтобы учитывались только Asset за последние 365 дней. Как это сделать?

На объекте Asset создаем поле Purchase Date куда записываем дату продажи. На этом же объекте создаем поле типа формула Purchased This Year которое возвращает checkbox и он равен True, если продажа состоялась менее года назад.

Далее на объекте Quote также создаем поле типа формула Purchased This Year (важно, чтобы имена полей на Asset и Quote) возвращающее текст - формула просто возвращает “true”.

Теперь на объекте Discount Schedule в пиклист Constraint Field добавим значение Purchased_This_Year__c (важно использовать именно API Name).

Все! Теперь осталось на нужной записи объекта Discount Schedule чекнуть Cross Orders и в поле Constraint Field выбрать значение Purchased_This_Year__c. Этим мы говорим CPQ, какие записи Asset использовать для подсчета количества.

Чаще всего Discount Schedule используется с % скидки. Это удобно, подключая один Discount Schedule к разным продуктам мы получаем нужный % скидки для разных продуктов. Но иногда возникает необходимость предоставлять фиксированную скидку.

Для этого необходимо на записи Discount Schedule установить поле Discount Unit = Amount.

11

Это позволит устанавливать скидку для различных диапазонов в $ (или другой валюте), а не в % - Discount($).

12

Может возникнуть необходимость дать возможность менеджерам регулировать размер и диапазон скидок.

Для этого на записи Discount Schedule есть поле Override Behavior. Поле может принимать такие значения:

Значение Контекст
None Делает значения скидок и диапазонов нередактируемыми.
All Позволяет изменять все.
Current Tier Only Позволяет редактировать % или абсолютное значение скидки в деньгах для уровня соответствующего текущему количеству продукта на Quote.

И последняя, которую можно делать на Discount Schedule. Ранее, когда мы определяли диапазоны для скидок, мы установили, что при количестве 200 шт. и более будет применена скидка 20%. То есть если мы укажем количество 250, то скидка 20% будет применена ко всему количеству. Такое поведение определяется полем Type, а точнее его значением Range. Это значение по умолчанию для этого поля. Если мы выберем значение Slab для этого поля, то поведение изменится.

Посмотрим. Допустим у нас установлены такие диапазоны для скидок:

Мин. количество Макс. Количество (не включено в диапазон для скидки) Скидка %
100 200 10%
200 - 20%

Если Type = Slab и количество, допустим, 250, то CPQ разделит это количество на слябы таким образом:

1 сляб - 100

2 сляб - 100

3 сляб - 50

1 сляб не получает скидку

2 сляб получает скидку 10%

3 сляб получает скидку 20%

14

В этой и предыдущей статьях мы рассмотрели, какие Discount Tools есть в CPQ и как ими пользоваться. В следующей статье мы узнаем, как автоматизировать управление Product Bundle при помощи Product Rules.

1 Like