modeling-omnistudio-epc-catalog

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

modeling-omnistudio-epc-catalog: CME EPC Product and Offer Modeling

modeling-omnistudio-epc-catalog:CME EPC产品与报价建模

Expert Salesforce Industries CME EPC modeler for creating Product2-based catalog entries, assigning configurable attributes, and building offer bundles through Product Child Item relationships.
This skill is optimized for DataPack-style metadata authoring. Use the canonical template set in
assets/
:
  • assets/product2-offer-template.json
  • assets/attribute-assignment-template.json
  • assets/product-child-item-template.json
  • assets/pricebook-entries-template.json
  • assets/price-list-entries-template.json
  • assets/object-field-attributes-template.json
  • assets/orchestration-scenarios-template.json
  • assets/decomposition-relationships-template.json
  • assets/compiled-attribute-overrides-template.json
  • assets/override-definitions-template.json
  • assets/parent-keys-template.json
Additional packaged examples are available under
assets/examples/
, organized by offer type:
  • assets/examples/samsung-galaxy-s22-bundle/
    — bundle offer example
  • assets/examples/business-internet-premium-fttc-simple-offer/
    — simple offer example
  • assets/examples/business-internet-pro-vpl-simple-offer/
    — simple offer example
  • assets/examples/static-ip-simple-offer/
    — simple offer example
The
examples/business-internet-plus-bundle/
folder contains a generated bundle example with a step-by-step transcript.
The root
assets/
folder contains the canonical baseline template set for bundle authoring.

Salesforce Industries CME EPC领域专家建模技能,用于创建基于Product2的目录条目、分配可配置属性,并通过Product Child Item关联关系构建报价包。
本技能针对DataPack风格的元数据编写进行优化。请使用
assets/
目录下的标准模板集:
  • assets/product2-offer-template.json
  • assets/attribute-assignment-template.json
  • assets/product-child-item-template.json
  • assets/pricebook-entries-template.json
  • assets/price-list-entries-template.json
  • assets/object-field-attributes-template.json
  • assets/orchestration-scenarios-template.json
  • assets/decomposition-relationships-template.json
  • assets/compiled-attribute-overrides-template.json
  • assets/override-definitions-template.json
  • assets/parent-keys-template.json
assets/examples/
目录下提供了更多打包示例,按报价类型分类:
  • assets/examples/samsung-galaxy-s22-bundle/
    — 捆绑报价示例
  • assets/examples/business-internet-premium-fttc-simple-offer/
    — 简单报价示例
  • assets/examples/business-internet-pro-vpl-simple-offer/
    — 简单报价示例
  • assets/examples/static-ip-simple-offer/
    — 简单报价示例
examples/business-internet-plus-bundle/
文件夹包含一个生成的捆绑报价示例,附带分步操作记录。
根目录
assets/
包含用于捆绑报价编写的标准基线模板集。

Scope

适用范围

  • In scope: Creating and reviewing EPC Product2 records, Product Child Items, attribute metadata, offer bundles, pricing entries, decomposition and orchestration artifacts, and DataPack JSON payloads
  • Out of scope: OmniScript/FlexCard/Integration Procedure design (use
    building-omnistudio-omniscript
    ,
    building-omnistudio-flexcard
    , or
    building-omnistudio-integration-procedure
    ), Apex business logic implementation (use
    generating-apex
    ), deployment pipeline troubleshooting (use
    deploying-metadata
    )

  • 包含场景:创建和审核EPC Product2记录、Product Child Item、属性元数据、报价包、定价条目、分解与编排工件,以及DataPack JSON载荷
  • 排除场景:OmniScript/FlexCard/Integration Procedure设计(请使用
    building-omnistudio-omniscript
    building-omnistudio-flexcard
    building-omnistudio-integration-procedure
    )、Apex业务逻辑实现(请使用
    generating-apex
    )、部署流水线故障排查(请使用
    deploying-metadata

Quick Reference

快速参考

  • Primary object:
    Product2
    (EPC product and offer records)
  • Attribute data:
    %vlocity_namespace%__AttributeMetadata__c
    ,
    %vlocity_namespace%__AttributeDefaultValues__c
    , and
    %vlocity_namespace%__AttributeAssignment__c
  • Offer bundle composition:
    %vlocity_namespace%__ProductChildItem__c
  • Offer marker:
    %vlocity_namespace%__SpecificationType__c = "Offer"
    and
    %vlocity_namespace%__SpecificationSubType__c = "Bundle"
  • Companion bundle artifacts: pricebook entries, price list entries, object field attributes, orchestration scenarios, decomposition relationships, compiled attribute overrides, override definitions, and parent keys
Scoring: 120 points across 6 categories.
Thresholds:
>= 95
Deploy-ready |
70-94
Needs review |
< 70
Block and fix.
Glossary: EPC = Enterprise Product Catalog | CME = Communications, Media & Energy | DataPack = Vlocity JSON deployment artifact | PCI = ProductChildItem

  • 核心对象
    Product2
    (EPC产品和报价记录)
  • 属性数据
    %vlocity_namespace%__AttributeMetadata__c
    %vlocity_namespace%__AttributeDefaultValues__c
    %vlocity_namespace%__AttributeAssignment__c
  • 报价包组成
    %vlocity_namespace%__ProductChildItem__c
  • 报价标识
    %vlocity_namespace%__SpecificationType__c = "Offer"
    %vlocity_namespace%__SpecificationSubType__c = "Bundle"
  • 配套捆绑工件:价目表条目、价格列表条目、对象字段属性、编排场景、分解关联关系、编译属性覆盖、覆盖定义和父键
评分规则:6个类别共120分。
阈值标准
>= 95
可部署 |
70-94
需要审核 |
< 70
需阻止并修复。
术语表:EPC = 企业产品目录 | CME = 通信、媒体与能源 | DataPack = Vlocity JSON部署工件 | PCI = ProductChildItem

Asset Template Set

资产模板集

Use the root
assets/
templates when creating a bundle payload:
  • product2-offer-template.json
  • attribute-assignment-template.json
  • product-child-item-template.json
  • pricebook-entries-template.json
  • price-list-entries-template.json
  • object-field-attributes-template.json
  • orchestration-scenarios-template.json
  • decomposition-relationships-template.json
  • compiled-attribute-overrides-template.json
  • override-definitions-template.json
  • parent-keys-template.json
For additional real-world variants, use the per-example folders under
assets/examples/
.

创建捆绑报价载荷时,请使用根目录
assets/
下的模板:
  • product2-offer-template.json
  • attribute-assignment-template.json
  • product-child-item-template.json
  • pricebook-entries-template.json
  • price-list-entries-template.json
  • object-field-attributes-template.json
  • orchestration-scenarios-template.json
  • decomposition-relationships-template.json
  • compiled-attribute-overrides-template.json
  • override-definitions-template.json
  • parent-keys-template.json
如需更多真实场景变体,请使用
assets/examples/
下的示例文件夹。

Core Responsibilities

核心职责

  1. Product Creation: Create EPC Product2 records with consistent naming, lifecycle dates, status, and classification fields.
  2. Attribute Modeling: Define category-based attributes, defaults, valid value sets, display sequences, and required flags.
  3. Offer Bundle Modeling: Compose offers with child products using
    %vlocity_namespace%__ProductChildItem__c
    records and clear quantity rules.
  4. Companion Metadata Generation: Generate and align all related bundle files (pricing, object field attributes, orchestration/decomposition, overrides, parent keys) from the same offer baseline.
  5. DataPack Consistency: Keep record source keys, global keys, lookup objects, and namespace fields internally consistent for deployment.

  1. 产品创建:创建具有一致命名、生命周期日期、状态和分类字段的EPC Product2记录。
  2. 属性建模:定义基于类别的属性、默认值、有效值集合、显示顺序和必填标记。
  3. 报价包建模:使用
    %vlocity_namespace%__ProductChildItem__c
    记录和明确的数量规则,组合包含子产品的报价。
  4. 配套元数据生成:从同一报价基线生成并对齐所有相关捆绑文件(定价、对象字段属性、编排/分解、覆盖、父键)。
  5. DataPack一致性:保持记录源键、全局键、查找对象和命名空间字段在内部的一致性,以确保部署顺利。

Invocation Rules (Mandatory)

调用规则(强制)

Route to this skill whenever the prompt intent matches either of these:
  1. Create a product bundle:
    • User asks to create/build/generate/model an EPC offer bundle.
    • User asks for Product2 offer setup with Product Child Items.
    • User asks to generate bundle DataPack JSON artifacts from templates/examples.
  2. Score or review an existing product bundle:
    • User asks to score/assess/validate/audit an existing EPC bundle.
    • User asks to apply the 120-point rubric to existing Product2/ProductChildItem (PCI)/attribute payloads.
    • User asks for risk findings, quality gaps, or fix recommendations on bundle metadata.
Instruction priority: treat these two intents as direct triggers for
modeling-omnistudio-epc-catalog
, even if the prompt is brief and does not mention EPC by name.

当提示意图匹配以下任一情况时,路由至本技能:
  1. 创建产品捆绑包
    • 用户要求创建/构建/生成/建模EPC报价包。
    • 用户要求设置带有Product Child Item的Product2报价。
    • 用户要求从模板/示例生成捆绑包DataPack JSON工件。
  2. 评分或审核现有产品捆绑包
    • 用户要求评分/评估/验证/审核现有EPC捆绑包。
    • 用户要求对现有Product2/ProductChildItem (PCI)/属性载荷应用120分评估标准。
    • 用户要求获取捆绑包元数据的风险发现、质量差距或修复建议。
指令优先级:即使提示内容简短且未提及EPC,只要匹配上述两个意图之一,就直接触发
modeling-omnistudio-epc-catalog

Workflow (Create/Review)

工作流程(创建/审核)

Phase 0: Prerequisites

阶段0:前置条件

Before proceeding, verify:
  1. Salesforce Industries org with EPC enabled
  2. Authenticated org alias in sf CLI — run
    sf org display --target-org <alias>
    to confirm
  3. Namespace model identified:
    %vlocity_namespace%
    ,
    vlocity_cmt
    , or Core
If any prerequisite is unmet, ask the user to supply the org alias or namespace before continuing.

开始前,请验证:
  1. 已启用EPC的Salesforce Industries组织
  2. sf CLI中已认证的组织别名 — 运行
    sf org display --target-org <alias>
    确认
  3. 已确定命名空间模型:
    %vlocity_namespace%
    vlocity_cmt
    或Core
如果任何前置条件未满足,请要求用户提供组织别名或命名空间后再继续。

Phase 1: Identify Catalog Intent

阶段1:明确目录意图

Ask for:
  • Product type: spec product or offer bundle
  • Domain taxonomy: Family, Type/SubType, category path, and channel
  • Attribute requirements: required/optional, picklist values, default values
  • Bundle composition: child products, quantity constraints, optional vs required
  • Target org namespace model:
    %vlocity_namespace%
    ,
    vlocity_cmt
    , or Core
Idempotency check: If a
ProductCode
is provided, verify no matching Product2 already exists before generating artifacts:
bash
sf data query --query "SELECT Id, Name, ProductCode FROM Product2 WHERE ProductCode = '<code>'" --target-org <alias>
If a match is found, ask the user whether this is a net-new record or an update to the existing one before continuing.
请询问用户:
  • 产品类型:规格产品报价包
  • 领域分类:Family、Type/SubType、类别路径和渠道
  • 属性要求:必填/可选、选择列表值、默认值
  • 捆绑包组成:子产品、数量限制、可选/必填
  • 目标组织命名空间模型:
    %vlocity_namespace%
    vlocity_cmt
    或Core
幂等性检查:如果提供了
ProductCode
,在生成工件前请验证是否已存在匹配的Product2记录:
bash
sf data query --query "SELECT Id, Name, ProductCode FROM Product2 WHERE ProductCode = '<code>'" --target-org <alias>
如果找到匹配记录,请询问用户这是新建记录还是更新现有记录,然后再继续。

Phase 1A: Clarifying Questions for Complete Bundle (Mandatory)

阶段1A:完整捆绑包的澄清问题(强制)

Before generating a new offer bundle payload, ask clarifying questions until all required inputs are known.
Required clarification checklist:
  1. Offer identity
    • What is the offer name and
      ProductCode
      ?
    • Is this net-new or an update to an existing Product2 offer?
  2. Catalog classification
    • What are Family, Type/SubType, and channel/sales context values?
    • Should
      SpecificationType=Offer
      and
      SpecificationSubType=Bundle
      be set now?
  3. Lifecycle and availability
    • What are
      EffectiveDate
      and
      SellingStartDate
      ?
    • Should
      IsActive
      and
      %vlocity_namespace%__IsOrderable__c
      be true at creation time?
  4. Child product composition
    • Which child products are included (name/code for each)?
    • For each child, what are required/optional semantics and sequence order?
  5. Quantity behavior per child
    • What are
      MinQuantity
      ,
      MaxQuantity
      , and default
      Quantity
      ?
    • Should
      %vlocity_namespace%__MinMaxDefaultQty__c
      be enforced for each line?
  6. Attribute model
    • Which attributes are required vs optional?
    • What are valid values, defaults, display types, and display sequences?
  7. Pricing and companion artifacts
    • Should pricebook and price list entries be generated now?
    • Should orchestration/decomposition/override/parent-key files be included in the same request?
  8. Namespace and keying
    • Which namespace convention should be used (
      %vlocity_namespace%
      ,
      vlocity_cmt
      , or Core)?
    • Are there existing global keys/source keys to preserve?
If any required checklist item is unanswered, do not generate final bundle files yet; ask focused follow-up questions first.
在生成新报价包载荷前,请询问澄清问题,直到获取所有必要输入。
必填澄清清单:
  1. 报价标识
    • 报价名称和
      ProductCode
      是什么?
    • 这是新建还是更新现有Product2报价?
  2. 目录分类
    • Family、Type/SubType和渠道/销售上下文的值是什么?
    • 是否需要现在设置
      SpecificationType=Offer
      SpecificationSubType=Bundle
  3. 生命周期与可用性
    • EffectiveDate
      SellingStartDate
      是什么?
    • 创建时是否需要将
      IsActive
      %vlocity_namespace%__IsOrderable__c
      设为true?
  4. 子产品组成
    • 包含哪些子产品(每个的名称/代码)?
    • 每个子产品的必填/可选语义和顺序是什么?
  5. 子产品数量规则
    • MinQuantity
      MaxQuantity
      和默认
      Quantity
      是什么?
    • 是否需要为每个条目强制执行
      %vlocity_namespace%__MinMaxDefaultQty__c
  6. 属性模型
    • 哪些属性是必填,哪些是可选?
    • 有效值、默认值、显示类型和显示顺序是什么?
  7. 定价与配套工件
    • 是否需要现在生成价目表和价格列表条目?
    • 是否需要在同一请求中包含编排/分解/覆盖/父键文件?
  8. 命名空间与键值
    • 应使用哪种命名空间约定(
      %vlocity_namespace%
      vlocity_cmt
      或Core)?
    • 是否有需要保留的现有全局键/源键?
如果必填清单中的任何项目未得到回答,请不要生成最终捆绑包文件;先询问针对性的跟进问题。

Phase 2: Build Product2 Backbone

阶段2:构建Product2核心结构

For every new EPC record, define:
  • Name
  • ProductCode
    (unique, stable, environment-agnostic)
  • %vlocity_namespace%__GlobalKey__c
    (stable UUID-style key)
  • %vlocity_namespace%__SpecificationType__c
    and
    %vlocity_namespace%__SpecificationSubType__c
  • %vlocity_namespace%__Status__c
    and date fields (
    EffectiveDate
    ,
    SellingStartDate
    )
  • IsActive
    and
    %vlocity_namespace%__IsOrderable__c
Use
assets/product2-offer-template.json
as baseline structure.
对于每个新EPC记录,请定义:
  • Name
  • ProductCode
    (唯一、稳定、与环境无关)
  • %vlocity_namespace%__GlobalKey__c
    (稳定的UUID风格键)
  • %vlocity_namespace%__SpecificationType__c
    %vlocity_namespace%__SpecificationSubType__c
  • %vlocity_namespace%__Status__c
    和日期字段(
    EffectiveDate
    SellingStartDate
  • IsActive
    %vlocity_namespace%__IsOrderable__c
使用
assets/product2-offer-template.json
作为基线结构。

Phase 3: Add Attributes

阶段3:添加属性

When attributes are required:
  1. Populate
    %vlocity_namespace%__AttributeMetadata__c
    category and
    productAttributes
    records.
  2. Populate
    %vlocity_namespace%__AttributeDefaultValues__c
    with attribute code to default value mapping.
  3. Create
    %vlocity_namespace%__AttributeAssignment__c
    records with:
    • category linkage
    • attribute linkage
    • UI display type (dropdown, etc.)
    • valid values and default marker
Use
assets/attribute-assignment-template.json
as the assignment baseline.
当需要属性时:
  1. 填充
    %vlocity_namespace%__AttributeMetadata__c
    类别和
    productAttributes
    记录。
  2. 使用属性代码到默认值的映射填充
    %vlocity_namespace%__AttributeDefaultValues__c
  3. 创建
    %vlocity_namespace%__AttributeAssignment__c
    记录,包含:
    • 类别关联
    • 属性关联
    • UI显示类型(下拉菜单等)
    • 有效值和默认标记
使用
assets/attribute-assignment-template.json
作为属性分配的基线。

Phase 4: Build Offer Bundles

阶段4:构建报价包

For offers:
  1. Keep parent
    Product2
    record as offer (
    SpecificationType=Offer
    ,
    SpecificationSubType=Bundle
    ).
  2. Create root
    %vlocity_namespace%__ProductChildItem__c
    row (
    IsRootProductChildItem=true
    ).
  3. Add child rows per component with:
    • parent and child references
    • sequence and line number
    • min/max/default quantity behavior (
      MinMaxDefaultQty
      ,
      MinQuantity
      ,
      MaxQuantity
      ,
      Quantity
      )
  4. Use override rows only when behavior differs from inherited/default behavior.
Use
assets/product-child-item-template.json
for child relationship structure.
For complete bundle payloads, also align and include:
  • assets/pricebook-entries-template.json
  • assets/price-list-entries-template.json
  • assets/object-field-attributes-template.json
  • assets/orchestration-scenarios-template.json
  • assets/decomposition-relationships-template.json
  • assets/compiled-attribute-overrides-template.json
  • assets/override-definitions-template.json
  • assets/parent-keys-template.json
对于报价:
  1. 将父
    Product2
    记录设为报价(
    SpecificationType=Offer
    SpecificationSubType=Bundle
    )。
  2. 创建根
    %vlocity_namespace%__ProductChildItem__c
    行(
    IsRootProductChildItem=true
    )。
  3. 为每个组件添加子行,包含:
    • 父级和子级引用
    • 顺序和行号
    • 最小/最大/默认数量规则(
      MinMaxDefaultQty
      MinQuantity
      MaxQuantity
      Quantity
  4. 仅当行为与继承/默认行为不同时,才使用覆盖行。
使用
assets/product-child-item-template.json
作为子关联关系的结构。
对于完整捆绑包载荷,还需对齐并包含:
  • assets/pricebook-entries-template.json
  • assets/price-list-entries-template.json
  • assets/object-field-attributes-template.json
  • assets/orchestration-scenarios-template.json
  • assets/decomposition-relationships-template.json
  • assets/compiled-attribute-overrides-template.json
  • assets/override-definitions-template.json
  • assets/parent-keys-template.json

Phase 4B: Generate Companion Metadata Files

阶段4B:生成配套元数据文件

When the user asks to generate a bundle, generate/update all companion files together as one coherent set:
  1. pricebook-entries-template.json
    and
    price-list-entries-template.json
    • Keep Product2 GlobalKey/ProductCode references aligned with the parent offer.
  2. object-field-attributes-template.json
    • Keep object class references and field mappings aligned with the same offer model.
  3. orchestration-scenarios-template.json
    and
    decomposition-relationships-template.json
    • Keep decomposition and orchestration artifacts consistent with bundle child items.
  4. compiled-attribute-overrides-template.json
    and
    override-definitions-template.json
    • Keep override keys and references aligned with attribute metadata and assignments.
  5. parent-keys-template.json
    • Keep parent linkage values synchronized with generated artifact keys.
Mandatory rule: do not generate only a partial subset when a full bundle payload is requested unless the user explicitly asks for a limited file scope.
当用户要求生成捆绑包时,需一起生成/更新所有配套文件,形成一套连贯的集合:
  1. pricebook-entries-template.json
    price-list-entries-template.json
    • 保持Product2 GlobalKey/ProductCode引用与父报价对齐。
  2. object-field-attributes-template.json
    • 保持对象类引用和字段映射与同一报价模型对齐。
  3. orchestration-scenarios-template.json
    decomposition-relationships-template.json
    • 保持分解和编排工件与捆绑包子产品一致。
  4. compiled-attribute-overrides-template.json
    override-definitions-template.json
    • 保持覆盖键和引用与属性元数据和分配对齐。
  5. parent-keys-template.json
    • 保持父级关联值与生成的工件键同步。
强制规则:当请求完整捆绑包载荷时,除非用户明确要求限定文件范围,否则不得仅生成部分子集。

Phase 5: Validate and Handoff

阶段5:验证与交付

Read
assets/completion-block-template.txt
and fill in each field to produce the handoff summary block.

读取
assets/completion-block-template.txt
并填写每个字段,生成交付总结块。

Output Expectations

输出预期

For a full offer bundle request, the following files are produced:
File patternContent
*_DataPack.json
Product2 offer record
*_AttributeAssignments.json
Attribute category and assignment payloads
*_ProductChildItems.json
Root and child ProductChildItem (PCI) rows
*_PricebookEntries.json
Standard and custom pricebook entries
*_PriceListEntries.json
Price list entries
*_ObjectFieldAttributes.json
Object field mapping
*_OrchestrationScenarios.json
Orchestration metadata
*_DecompositionRelationships.json
Decomposition metadata
*_CompiledAttributeOverrides.json
Compiled attribute override payload
*_OverrideDefinitions.json
Override definition payload
*_ParentKeys.json
Parent key linkage
For spec product (non-bundle) requests, only the DataPack, AttributeAssignments, PricebookEntries, and PriceListEntries files are required.
If generation of any file fails, stop immediately. List every file successfully generated so far and instruct the user to delete the partial set before retrying the full bundle — partial bundles cause GlobalKey mismatches on DataPack import. Do not generate the remaining files until the user confirms the partial set has been removed and a fresh attempt can begin.

对于完整报价包请求,将生成以下文件:
文件模式内容
*_DataPack.json
Product2报价记录
*_AttributeAssignments.json
属性类别和分配载荷
*_ProductChildItems.json
根级和子级ProductChildItem (PCI)行
*_PricebookEntries.json
标准和自定义价目表条目
*_PriceListEntries.json
价格列表条目
*_ObjectFieldAttributes.json
对象字段映射
*_OrchestrationScenarios.json
编排元数据
*_DecompositionRelationships.json
分解元数据
*_CompiledAttributeOverrides.json
编译属性覆盖载荷
*_OverrideDefinitions.json
覆盖定义载荷
*_ParentKeys.json
父键关联
对于规格产品(非捆绑包)请求,仅需生成DataPack、AttributeAssignments、PricebookEntries和PriceListEntries文件。
如果任何文件生成失败,请立即停止。列出所有已成功生成的文件,并指示用户在重试完整捆绑包前删除部分文件集——部分捆绑包会导致DataPack导入时出现GlobalKey不匹配问题。在用户确认已删除部分文件集并可开始全新尝试前,请勿生成剩余文件。

Gotchas

常见问题

IssueResolution
Attribute default not in valid values listEnsure the default value exists inside the
values[]
array — cart will reject invalid defaults at runtime
Root ProductChildItem row missingOffer bundle traversal breaks without
IsRootProductChildItem=true
— always create the root row first
Mixed namespace convention in one payloadPick one namespace style (
%vlocity_namespace%
vs
vlocity_cmt
) and apply it consistently across all files in the bundle
Duplicate display sequences in same attribute categoryUI ordering conflict — use spaced values (10, 20, 30) to allow future inserts without collisions
ProductCode
contains environment suffix
Breaks cross-org references — remove
_DEV
,
_UAT
,
_PROD
suffixes
Companion files generated with different offer namesKey mismatches break DataPack import — generate all companion files from the same baseline offer name and GlobalKey
DataPack import fails with
Key not found
error
A lookup object reference points to a GlobalKey absent in the target org — verify GlobalKey alignment across all companion files before import
DataPack import rolls back silentlyAdd
--verbose
during deployment and inspect the log for the specific record and field that triggered the rollback
Namespace mismatch between files in same bundleMixed
%vlocity_namespace%
and
vlocity_cmt
styles in one payload cause field resolution failures — enforce a single namespace style throughout

问题解决方案
属性默认值不在有效值列表中确保默认值存在于
values[]
数组中——运行时购物车会拒绝无效默认值
缺少根ProductChildItem行没有
IsRootProductChildItem=true
会导致报价包遍历失败——始终先创建根行
同一载荷中混合命名空间约定选择一种命名空间风格(
%vlocity_namespace%
vlocity_cmt
)并在捆绑包的所有文件中一致应用
同一属性类别中存在重复显示顺序会导致UI排序冲突——使用间隔值(10、20、30),以便未来插入时无需修改现有值
ProductCode
包含环境后缀
会破坏跨组织引用——移除
_DEV
_UAT
_PROD
后缀
配套文件使用不同的报价名称生成键值不匹配会导致DataPack导入失败——从同一基线报价名称和GlobalKey生成所有配套文件
DataPack导入时出现
Key not found
错误
查找对象引用指向目标组织中不存在的GlobalKey——导入前验证所有配套文件的GlobalKey对齐情况
DataPack导入静默回滚部署时添加
--verbose
参数并检查日志,找出触发回滚的具体记录和字段
同一捆绑包的文件中命名空间不匹配同一载荷中混合
%vlocity_namespace%
vlocity_cmt
风格会导致字段解析失败——在整个捆绑包中强制使用单一命名空间风格

Generation Guardrails (Mandatory)

生成约束(强制)

If any anti-pattern appears, stop and ask for confirmation before proceeding.
Anti-patternWhy it failsRequired correction
Missing
ProductCode
or unstable code values
Breaks quote/cart references and package diffsUse deterministic code convention
Hardcoded org-specific IDs in relationshipsFails across orgs/environmentsUse lookup objects with matching keys/global keys
Offer bundle without root PCI rowRuntime bundle traversal issuesAdd root
%vlocity_namespace%__ProductChildItem__c
Attribute defaults not present in valid valuesInvalid cart configuration defaultsEnsure default exists in allowed value set
Duplicate display sequences in same attribute categoryUI ordering conflictEnforce unique and spaced sequence values
Offer marked active with incomplete child referencesBroken bundle at runtimeComplete and validate child link set before activation
Mixed naming styles (
snake_case
, ad hoc abbreviations)
Reduces maintainability and discoverabilityEnforce naming convention from references doc

如果出现任何反模式,请停止操作并要求用户确认后再继续。
反模式失败原因必要修正
缺少
ProductCode
或代码值不稳定
会破坏报价/购物车引用和包差异对比使用确定性代码约定
关联关系中硬编码组织特定ID在跨组织/环境中会失败使用带有匹配键/全局键的查找对象
报价包没有根PCI行运行时捆绑包遍历会出现问题添加根
%vlocity_namespace%__ProductChildItem__c
属性默认值不在有效值中会导致无效的购物车配置默认值确保默认值存在于允许值集合中
同一属性类别中存在重复显示顺序会导致UI排序冲突强制使用唯一且间隔的顺序值
报价标记为活跃但子引用不完整运行时捆绑包会损坏激活前完成并验证子链接集
混合命名风格(
snake_case
、临时缩写)
降低可维护性和可发现性遵循参考文档中的命名约定

Scoring Model (120 Points)

评分模型(120分)

Read
references/scoring-model.md
for the full 6-category rubric and per-category criteria.
CategoryPoints
Catalog Identity and Naming20
EPC Product Structure20
Attribute Modeling25
Offer Bundle Composition25
DataPack Integrity15
Documentation and Handoff15
Total120

阅读
references/scoring-model.md
获取完整的6类别评估标准和每个类别的具体要求。
类别分值
目录标识与命名20
EPC产品结构20
属性建模25
报价包组成25
DataPack完整性15
文档与交付15
总分120

CLI and Validation Commands

CLI与验证命令

Read
scripts/cli-validation-commands.sh
for sf CLI queries to inspect and validate EPC artifacts in your org. Replace
<org>
with your authenticated org alias before running.

阅读
scripts/cli-validation-commands.sh
获取用于在组织中检查和验证EPC工件的sf CLI查询。运行前请将
<org>
替换为已认证的组织别名。

Sample Skill Invocation Commands

技能调用示例命令

Read
scripts/sample-invocations.sh
for example invocations covering common EPC modeling tasks. Replace
cursor-agent
with your local agent command wrapper if different.

阅读
scripts/sample-invocations.sh
获取涵盖常见EPC建模任务的调用示例。如果本地代理命令包装器不同,请将
cursor-agent
替换为对应的命令。

Reference File Index

参考文件索引

FileWhen to read
assets/product2-offer-template.json
Phase 2 — baseline structure for every new Product2 offer record
assets/attribute-assignment-template.json
Phase 3 — attribute assignment structure
assets/product-child-item-template.json
Phase 4 — root and child PCI row structure
assets/pricebook-entries-template.json
Phase 4B — pricebook entry companion file
assets/price-list-entries-template.json
Phase 4B — price list entry companion file
assets/object-field-attributes-template.json
Phase 4B — object field mapping companion file
assets/orchestration-scenarios-template.json
Phase 4B — orchestration scenarios companion file
assets/decomposition-relationships-template.json
Phase 4B — decomposition relationships companion file
assets/compiled-attribute-overrides-template.json
Phase 4B — compiled attribute overrides companion file
assets/override-definitions-template.json
Phase 4B — override definitions companion file
assets/parent-keys-template.json
Phase 4B — parent keys companion file
assets/completion-block-template.txt
Phase 5 — handoff summary block template
assets/examples/samsung-galaxy-s22-bundle/
Phase 4 — bundle offer example; load
*_DataPack.json
and
*_ProductChildItems.json
first, then companion files as needed
assets/examples/business-internet-premium-fttc-simple-offer/
Phase 4 — simple offer (FTTC) example; load
*_DataPack.json
and
*_AttributeAssignments.json
first
assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json
Phase 4 — FTTC offer rule assignment example; load when modeling rule-based attribute constraints
assets/examples/business-internet-pro-vpl-simple-offer/
Phase 4 — simple offer (Pro VPL) example; load
*_DataPack.json
and
*_AttributeAssignments.json
first
assets/examples/static-ip-simple-offer/
Phase 4 — simple offer (Static IP) example; load
*_DataPack.json
and
*_AttributeAssignments.json
first
examples/business-internet-plus-bundle/
Phase 4 — generated bundle example with step-by-step transcript; load
TRANSCRIPT.md
first, then specific JSON files referenced in it
references/epc-field-guide.md
Phase 2 & 3 — EPC field-level guidance and common pitfalls
references/naming-conventions.md
Phase 2 & 3 — naming and keying conventions
references/scoring-model.md
Phase 5 — full 6-category scoring rubric with per-category criteria
scripts/cli-validation-commands.sh
Phase 5 — sf CLI queries for validating EPC artifacts in org
scripts/sample-invocations.sh
On Start — reference example invocations for common EPC tasks

文件阅读时机
assets/product2-offer-template.json
阶段2 — 每个新Product2报价记录的基线结构
assets/attribute-assignment-template.json
阶段3 — 属性分配结构
assets/product-child-item-template.json
阶段4 — 根级和子级PCI行结构
assets/pricebook-entries-template.json
阶段4B — 价目表条目配套文件
assets/price-list-entries-template.json
阶段4B — 价格列表条目配套文件
assets/object-field-attributes-template.json
阶段4B — 对象字段映射配套文件
assets/orchestration-scenarios-template.json
阶段4B — 编排场景配套文件
assets/decomposition-relationships-template.json
阶段4B — 分解关联关系配套文件
assets/compiled-attribute-overrides-template.json
阶段4B — 编译属性覆盖配套文件
assets/override-definitions-template.json
阶段4B — 覆盖定义配套文件
assets/parent-keys-template.json
阶段4B — 父键配套文件
assets/completion-block-template.txt
阶段5 — 交付总结块模板
assets/examples/samsung-galaxy-s22-bundle/
阶段4 — 捆绑报价示例;先加载
*_DataPack.json
*_ProductChildItems.json
,再按需加载配套文件
assets/examples/business-internet-premium-fttc-simple-offer/
阶段4 — 简单报价(FTTC)示例;先加载
*_DataPack.json
*_AttributeAssignments.json
assets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.json
阶段4 — FTTC报价规则分配示例;建模基于规则的属性约束时加载
assets/examples/business-internet-pro-vpl-simple-offer/
阶段4 — 简单报价(Pro VPL)示例;先加载
*_DataPack.json
*_AttributeAssignments.json
assets/examples/static-ip-simple-offer/
阶段4 — 简单报价(静态IP)示例;先加载
*_DataPack.json
*_AttributeAssignments.json
examples/business-internet-plus-bundle/
阶段4 — 带分步操作记录的生成捆绑包示例;先加载
TRANSCRIPT.md
,再加载其中引用的特定JSON文件
references/epc-field-guide.md
阶段2 & 3 — EPC字段级指南和常见陷阱
references/naming-conventions.md
阶段2 & 3 — 命名和键值约定
references/scoring-model.md
阶段5 — 完整的6类别评分标准,含每个类别的具体要求
scripts/cli-validation-commands.sh
阶段5 — 用于在组织中验证EPC工件的sf CLI查询
scripts/sample-invocations.sh
开始阶段 — 常见EPC任务的参考调用示例

Cross-Skill Integration

跨技能集成

From SkillTo
modeling-omnistudio-epc-catalog
When
analyzing-omnistudio-dependencies-> modeling-omnistudio-epc-catalogNeed current dependency and namespace inventory first
generating-custom-object / generating-custom-field-> modeling-omnistudio-epc-catalogNeed object or field readiness before EPC modeling
querying-soql-> modeling-omnistudio-epc-catalogNeed existing catalog query analysis
From
modeling-omnistudio-epc-catalog
To SkillWhen
modeling-omnistudio-epc-catalog-> building-omnistudio-omniscriptConfigure guided selling UX using the modeled catalog
modeling-omnistudio-epc-catalog-> building-omnistudio-integration-procedureBuild server-side orchestration over product and pricing payloads
modeling-omnistudio-epc-catalog-> deploying-metadataDeploy validated catalog metadata

来源技能目标
modeling-omnistudio-epc-catalog
时机
analyzing-omnistudio-dependencies-> modeling-omnistudio-epc-catalog需要先获取当前依赖和命名空间清单
generating-custom-object / generating-custom-field-> modeling-omnistudio-epc-catalog需要先确保对象或字段就绪,再进行EPC建模
querying-soql-> modeling-omnistudio-epc-catalog需要先分析现有目录查询结果
来源
modeling-omnistudio-epc-catalog
目标技能时机
modeling-omnistudio-epc-catalog-> building-omnistudio-omniscript使用已建模的目录配置引导式销售UX
modeling-omnistudio-epc-catalog-> building-omnistudio-integration-procedure基于产品和定价载荷构建服务端编排
modeling-omnistudio-epc-catalog-> deploying-metadata部署已验证的目录元数据

External References

外部参考

Local references:
  • references/epc-field-guide.md — EPC field-level guidance and minimum required fields
  • references/naming-conventions.md — Naming and keying conventions for products, attributes, and bundles

本地参考:
  • references/epc-field-guide.md — EPC字段级指南和必填字段最小值要求
  • references/naming-conventions.md — 产品、属性和捆绑包的命名与键值约定

Notes

注意事项

  • This skill is intentionally DataPack-first and optimized for
    vlocity/Product2/...
    artifact authoring.
  • Keep
    %vlocity_namespace%
    placeholders intact in templates to preserve portability.
  • Prefer creating reusable spec products first, then assemble offers via child relationships.

  • 本技能专为DataPack优先设计,针对
    vlocity/Product2/...
    工件编写进行优化。
  • 请保持模板中的
    %vlocity_namespace%
    占位符不变,以保留可移植性。
  • 优先创建可复用的规格产品,然后通过子关联关系组装报价。