一、设置启用 CPQ 的组织(Set Up a CPQ-enabled org)
AW Computing 的定制难题(AW Computing's Customization Conundrum)
AW Computing 以销售各种消费科技产品著称,现在想加入智能手表潮流。作为第一步,公司的 Salesforce 管理员运用在「Salesforce CPQ 中的可配置捆绑包」学到的技能,创建了一个智能手表捆绑包(bundle)——一组打算一起销售的相关产品。这个智能手表捆绑包有一个已含在价格里的表带选项,和一个加 30 美元的可选备用表带,还有一些充电相关项目。
但智能手表也是时尚配饰,一个尺寸不适合所有人,客户期望高度定制。
如果 AW Computing 计划提供两种材质、10 种颜色、三种点缀的表带,就是 60 种组合,再乘以两种尺寸就是 120 种组合。难道要创建 120 个产品吗?再加一种材质又要 60 个产品?这就是SKU 激增(SKU proliferation)——相似产品数量膨胀到难以维护。
答案是用配置属性(configuration attributes)和全局属性(global attributes)。它们就像出现在产品配置页面上的字段,让销售代表实时捕获定制信息。表带的属性叫全局属性(可复用),顶部的 Size、Accent、Engraving 叫配置属性(仅此捆绑包专用)。
注册一个带 Salesforce CPQ 的 Developer Edition 组织(Sign Up for a Developer Edition Org with Salesforce CPQ)
要完成本项目,你需要一个包含 Salesforce CPQ 和示例数据的特殊 Developer Edition 组织。注册免费的 Developer Edition 并连接到 Trailhead:
- 注册一个带 Salesforce CPQ 的免费 Developer Edition 组织。
- 填写表单:Email 填有效邮箱;Username 填一个看起来像邮箱、唯一但不必是真实邮箱的用户名。
- 点击 Sign me up,收到激活邮件后点击 Verify Account。
- 设置密码和密保问题,登录 Developer Edition。
- 回到 Trailhead,在 Challenge 区点击 playground 名称 → Connect Org,输入用户名密码,Allow,Yes! Save it。
在新 CPQ 组织中启用全局属性(Enable Global Attributes in a New CPQ Org)
你还需要做几个一次性的简单步骤来启用全局属性支持。
- 进入 Setup,Quick Find 输入
profiles,点击 Profiles → System Administrator。 - 在 Custom Record Type Settings 下,为 Configuration Attributes 点击 Edit,把 Configuration Attribute 和 Global Attribute 两个记录类型都 Add 进去。
- 确认 Configuration Attribute 是默认记录类型,点击 Save。
- Quick Find 输入
packages,点击 Installed Packages → Salesforce CPQ 包 → Configure → Additional Settings,勾选 Enable Product Option Drawer,点击 Save。
现在你的 CPQ 组织也启用了全局属性,可以开始创建属性了。
二、为尺寸和点缀创建智能手表属性(Create Smartwatch Attributes for Size and Accent)
创建产品选项字段(Create Product Option Fields)
先理解一个关键概念:配置属性不是字段,而是字段的可见表现。产品配置页面本身不是记录,因此不能有自己的字段;它只能有一个字段的「表现」,这就是配置属性。
所以创建表现之前,先创建作为灵感来源的字段,且总是在 Product Option 对象上创建。先创建 Size 选项列表字段:Object Manager → Product Option → Fields & Relationships → New → Picklist,Field Label 填 Size,输入两个值 40mm 和 44mm,勾选 Use first value as default value。
再用 Save & New 创建 Accent 选项列表:Field Label Accent,输入 Light Gray、Dark Gray、Gold(注意本项目必须拼写 gray 而非 grey)。
接着让 CPQ 知道新字段:Object Manager → Configuration Attribute → Fields & Relationships → Target Field,在 Values 中 New,输入 Size__c 和 Accent__c,勾选 Record Type Name。
创建配置属性记录(Create Configuration Attribute Records)
配置属性通过查找关系关联到其出现的捆绑包,所以从捆绑包的 Product 记录导航创建最方便:App Launcher → Salesforce CPQ → Products → Smartwatch → Related → Configuration Attributes → New。
- Size 属性:Attribute Name
Size、Target FieldSize__c、勾选 Required、Row Order10。 - Accent 属性:Attribute Name
Accent、Target FieldAccent__c、Required、Row Order20。
可用预制的 Q-00045 报价测试:Quotes → Q-00045 → Edit Lines → Add Products → 勾选 Smartwatch → Select,即可看到两个可配置属性。
每次创建配置属性都要走同样三步:在 Product Option 上建字段 → 把字段 API 名加到 Target Field → 在捆绑包产品上建配置属性记录。
三、为雕刻属性设置默认值(Set a Default Value for an Engraving Attribute)
不止是选项列表(More Than Just Picklists)
配置属性可以用很多数据类型的字段作为灵感来源:Checkbox、Currency、Date、Email、Number、Percent、Picklist、Text、Text Area、URL、Lookup 等。本步创建一个基于文本、名为 Engraving 的配置属性,让客户在手表背面刻上自定义信息。
在 Product Option 上创建字段:Text 类型,Field Label Engraving,Length 100。然后把 Engraving__c 加到 Target Field(勾选 Record Type Name)。最后创建配置属性记录:Attribute Name Engraving、Target Field Engraving__c、Row Order 10、Column Order 2(产品配置页面分三列,选 2 表示放到中间列)。
用公式字段提供默认值(Use a Formula Field to Supply a Default Value)
你想让 CPQ 预填 Engraving 属性,那数据从哪来?在 Quote 对象上创建一个公式字段:Object Manager → Quote → Fields & Relationships → New → Formula → Text,Field Label EngravingDefault,公式填 SBQQ__PrimaryContact__r.FirstName + " " + SBQQ__PrimaryContact__r.LastName。
然后告诉 CPQ 数据源:Products → Smartwatch → Related → Configuration Attributes → Engraving → Edit,Default Object 选 Quote,Default Field 填 EngravingDefault__c,Save。
现在 Engraving 属性会自动填充报价主要联系人的姓名。公式默认值有局限:公式字段只能返回某些数据类型,所以无法用公式默认选项列表、文本区域和邮件地址等。要默认邮件地址,可在 Quote 上建普通 email 字段,再用 Flow Builder 填充,然后同样设置 Default Object/Field。
四、将插座属性放入功能中(Place an Outlet Attribute into a Feature)
功能首秀(A Feature Premier)
功能(feature)用于组织捆绑包中的选项,便于看出哪些产品相关。智能手表捆绑包有个充电选项功能,AW Computing 想为全球客户提供墙式充电器,就要支持各种插座标准。
与其为北美、德国等各建一个充电器 SKU,不如建一个 SKU,用一个配置属性来标识插座标准,并把它放进 Charging Options 功能。
本步复用现成的 Outlet Standard 全局选项列表值集,但要排除 Type L。步骤:在 Product Option 建 Picklist 字段,Field Label Outlet Standard,Values 选 Outlet Standard(字段名应为 Outlet_Standard);把 Outlet_Standard__c 加到 Target Field;再创建配置属性记录:Attribute Name Outlet Standard、Target Field Outlet_Standard__c、Required、Row Order 10、Feature Charging Options、Hidden Values TypeL。
用 Hidden Values 列出不该出现的值,或用 Shown Values 列出可显示的值——二者只能用一个(同时用会默认 Hidden Values)。可选值很多、只有少数要排除时用 Hidden Values;可允许值有限、且不希望未来新增值被包含时用 Shown Values。
五、为表带样式创建属性(Create Attributes for Watch Band Styles)
适合任何场合的表带(A Band for Any Occasion)
AW Computing 想提供四种材质、12 种颜色、三种点缀的表带。这里用全局属性(global attributes)。全局属性最大的优势是可复用到任意多个选项(甚至跨捆绑包)。与配置属性的区别:全局属性出现在选项的可展开抽屉里,可关联到多个选项,需要四个对象上的四条记录,且目前不能配置默认值等特殊行为。
和配置属性一样,先建字段:在 Product Option 上建 Material(Silicone、Canvas、Stainless Steel、Leather)和 Color(Light Gray、Dark Gray、Gold、Black、White、Brown、Red、Blue、Green、Purple、Pink、Yellow)两个选项列表字段(Accent 字段之前已建)。把 Material__c、Color__c 加到 Target Field。
再创建三个全局属性(直接导航到 Configuration Attributes tab → New → Global Attribute 记录类型):Material、Color、Accent。
然后创建属性集(attribute set)把它们组合:Attribute Sets → New,名称 Watch Band Style;在 Related → Attribute Items 中依次添加 Material(Sequence 10)、Color(20)、Accent(30)。属性项通过 junction 对象连接全局属性与属性集,并决定从左到右的顺序(每行最多三个属性)。
最后用另一个 junction 对象 Product Attribute Set 把属性集关联到两个表带选项:进入 PO-00076 和 PO-00077,各新建 Product Attribute Set,选 Watch Band Style,Sequence 10,并分别为每个选项设置 Material/Color/Accent 的默认值(第一个运动风 Silicone/Dark Gray/Light Gray,第二个正式风 Leather/Brown/Gold)。
六、基于材质限制颜色选择(Limit Color Choices Based on Material)
使用核心 Salesforce 功能(Use Core Salesforce Functionality)
AW Computing 只在不锈钢上提供浅灰、深灰、金色,只在皮革上提供黑、白、棕色,必须防止销售代表选择不存在的组合。方法是在两个字段间创建字段依赖(field dependency)——这是可应用于 CPQ 的核心 Salesforce 管理员任务。
Object Manager → Product Option → Fields & Relationships → Field Dependencies → New:Controlling Field 选 Material,Dependent Field 选 Color。然后在矩阵中双击配置:Silicone 和 Canvas 选除 Gold 外的所有颜色;Stainless Steel 选 Light Gray、Dark Gray、Gold;Leather 选 Black、White、Brown。
注意:依赖只在同一层级上生效——作为控制字段的配置属性无法控制产品选项上的全局属性;第一个表带的 Material 只控制第一个表带的 Color。如果未来某选项的颜色不应受此依赖限制,可另建一个无依赖的 Color2__c 字段。
七、在报价行上创建孪生字段(Create Twin Fields on the Quote Line)
为属性数据安家(Make a Home for Attribute Data)
产品配置页面不是记录、属性不是字段,那销售代表选完 40mm 后数据存到哪?需要在 Quote Line 对象上创建字段作为属性的接收容器,且 API 名和数据类型必须完全一致——这叫孪生字段(twin fields),CPQ 会自动复制数据。
在 Quote Line 对象上创建六个孪生字段:Size(40mm/44mm)、Accent(Light Gray/Dark Gray/Gold)、Engraving(Text 长度 100)、Outlet Standard(用 Outlet Standard 值集)、Material(四种材质)、Color(12 种颜色)。
但配置属性(如 Size)的值默认只存到主产品的报价行,全局属性(如 Material/Color)存到各自产品的报价行。表带报价行缺 Size 数据会出问题,所以要对 Size 和 Outlet Standard 两个配置属性勾选 Apply to Product Options,让值也保存到捆绑包内各选项的报价行。
八、在订单产品上创建孪生字段(Create Twin Fields on the Order Product)
将信息一路传递下去(Pass Information Down the Line)
Order Fulfillment(订单履约)可能无法访问报价行数据,所以还要在 Order Product 对象上再建一轮孪生字段,让生成订单时数据能传到 Order Product 记录。步骤与报价行相同,在 Order Product 上创建 Size、Accent、Engraving、Outlet Standard、Material、Color 六个字段。
关于选项列表,建议使用全局选项列表值(Global Picklist Values):不仅省时,还能保证跨对象值一致。否则新增一种颜色就要同时更新 Product Option、Quote Line、Order Product 三个选项列表。如果忘了更新「下游」选项列表,由于「Restrict picklist to the values defined in the value set」默认勾选,CPQ 保存新值会被阻止而报错。
戴上销售代表的帽子(Put on Your Sales Rep Hat)
最后端到端测试:Quotes → Q-00046 → Edit Lines → Add Products → 勾选 Smartwatch → Select,确认 Size、Accent、Outlet Standard 以及表带的 Material、Color、Accent 都有值,Save 两次。
然后点击 Edit → 勾选 Ordered → Save。CPQ 会创建 Order 记录和基于报价行的 Order Product 记录,同时把属性值复制到 Order Product 的孪生字段。在 Related → Orders 中打开订单,检查 Smartwatch 的 Size/Accent/Outlet Standard 和 Smartwatch Band 的 Size/Accent/Material/Color 都有值。
至此,你让 AW Computing 只用少数产品就支持了数百种手表定制,像高手一样避免了 SKU 激增。
文章来源:Trailhead - Personalize Smartwatches with Salesforce CPQ Attributes




















