From jaganpro-sf-skills-7
Models Salesforce Industries CME EPC products with Product2 records, configures attributes and defaults, builds offer bundles via Product Child Items, and reviews DataPack JSON metadata.
npx claudepluginhub jaganpro/sf-skillsThis skill uses the workspace's default tool permissions.
Expert Salesforce Industries CME EPC modeler for creating Product2-based catalog entries, assigning configurable attributes, and building offer bundles through Product Child Item relationships.
CREDITS.mdLICENSEREADME.mdassets/attribute-assignment-template.jsonassets/compiled-attribute-overrides-template.jsonassets/decomposition-relationships-template.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_AttributeAssignments.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_CompiledAttributeOverrides.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DataPack.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_DecompositionRelationships.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ObjectFieldAttributes.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OrchestrationScenarios.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_OverrideDefinitions.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ParentKeys.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PriceListEntries.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_PricebookEntries.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_ProductChildItems.jsonassets/examples/business-internet-premium-fttc-simple-offer/Business-Internet-Premium-FTTC_RuleAssignments.jsonassets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_AttributeAssignments.jsonassets/examples/business-internet-pro-vpl-simple-offer/Business-Internet-Pro-VPL_DataPack.jsonDesigns Saleor product catalogs: product types, attributes, variants, categories, collections. Guides product vs. variant attributes, SKU planning, and structure decisions.
Manages Salesforce Commerce catalogs: B2C (Business Manager catalogs, categories, products, pricing books, promotions, search indexes) and B2B (Product2, Pricebook2, PricebookEntry, volume discounts, entitlements). Use for product data tasks.
Defines custom attributes on products/orders/customers, creates custom object types, and sets site preferences in Salesforce B2C Commerce via metadata XML. Use for site imports, archives, and Business Manager data model configs.
Share bugs, ideas, or general feedback.
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.jsonassets/attribute-assignment-template.jsonassets/product-child-item-template.jsonassets/pricebook-entries-template.jsonassets/price-list-entries-template.jsonassets/object-field-attributes-template.jsonassets/orchestration-scenarios-template.jsonassets/decomposition-relationships-template.jsonassets/compiled-attribute-overrides-template.jsonassets/override-definitions-template.jsonassets/parent-keys-template.jsonAdditional packaged examples are available under assets/examples/ with one folder per bundle/simple-offer sample.
The root assets/ folder contains the canonical baseline template set for bundle authoring.
Product2 (EPC product and offer records)%vlocity_namespace%__AttributeMetadata__c, %vlocity_namespace%__AttributeDefaultValues__c, and %vlocity_namespace%__AttributeAssignment__c%vlocity_namespace%__ProductChildItem__c%vlocity_namespace%__SpecificationType__c = "Offer" and %vlocity_namespace%__SpecificationSubType__c = "Bundle"Scoring: 120 points across 6 categories.
Thresholds: >= 95 Deploy-ready | 70-94 Needs review | < 70 Block and fix.
Use the root assets/ templates when creating a bundle payload:
product2-offer-template.jsonattribute-assignment-template.jsonproduct-child-item-template.jsonpricebook-entries-template.jsonprice-list-entries-template.jsonobject-field-attributes-template.jsonorchestration-scenarios-template.jsondecomposition-relationships-template.jsoncompiled-attribute-overrides-template.jsonoverride-definitions-template.jsonparent-keys-template.jsonFor additional real-world variants, use the per-example folders under assets/examples/.
%vlocity_namespace%__ProductChildItem__c records and clear quantity rules.Route to this skill whenever the prompt intent matches either of these:
Create a product bundle:
Score or review an existing product bundle:
Instruction priority: treat these two intents as direct triggers for sf-industry-cme-epc-model, even if the prompt is brief and does not mention EPC by name.
Ask for:
%vlocity_namespace%, vlocity_cmt, or CoreBefore generating a new offer bundle payload, ask clarifying questions until all required inputs are known.
Required clarification checklist:
ProductCode?SpecificationType=Offer and SpecificationSubType=Bundle be set now?EffectiveDate and SellingStartDate?IsActive and %vlocity_namespace%__IsOrderable__c be true at creation time?MinQuantity, MaxQuantity, and default Quantity?%vlocity_namespace%__MinMaxDefaultQty__c be enforced for each line?%vlocity_namespace%, vlocity_cmt, or Core)?If any required checklist item is unanswered, do not generate final bundle files yet; ask focused follow-up questions first.
For every new EPC record, define:
NameProductCode (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__cUse assets/product2-offer-template.json as baseline structure.
When attributes are required:
%vlocity_namespace%__AttributeMetadata__c category and productAttributes records.%vlocity_namespace%__AttributeDefaultValues__c with attribute code to default value mapping.%vlocity_namespace%__AttributeAssignment__c records with:
Use assets/attribute-assignment-template.json as the assignment baseline.
For offers:
Product2 record as offer (SpecificationType=Offer, SpecificationSubType=Bundle).%vlocity_namespace%__ProductChildItem__c row (IsRootProductChildItem=true).MinMaxDefaultQty, MinQuantity, MaxQuantity, Quantity)Use assets/product-child-item-template.json for child relationship structure.
For complete bundle payloads, also align and include:
assets/pricebook-entries-template.jsonassets/price-list-entries-template.jsonassets/object-field-attributes-template.jsonassets/orchestration-scenarios-template.jsonassets/decomposition-relationships-template.jsonassets/compiled-attribute-overrides-template.jsonassets/override-definitions-template.jsonassets/parent-keys-template.jsonWhen the user asks to generate a bundle, generate/update all companion files together as one coherent set:
pricebook-entries-template.json and price-list-entries-template.json
object-field-attributes-template.json
orchestration-scenarios-template.json and decomposition-relationships-template.json
compiled-attribute-overrides-template.json and override-definitions-template.json
parent-keys-template.json
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.
Provide a completion block:
EPC Model Complete: <Name>
Type: <Spec Product|Offer Bundle>
ProductCode: <code>
Attributes: <count>
Bundle Children: <count>
Companion Metadata Files: <count generated>
Validation Score: <score>/120
Risks: <none|list>
If any anti-pattern appears, stop and ask for confirmation before proceeding.
| Anti-pattern | Why it fails | Required correction |
|---|---|---|
Missing ProductCode or unstable code values | Breaks quote/cart references and package diffs | Use deterministic code convention |
| Hardcoded org-specific IDs in relationships | Fails across orgs/environments | Use lookup objects with matching keys/global keys |
| Offer bundle without root PCI row | Runtime bundle traversal issues | Add root %vlocity_namespace%__ProductChildItem__c |
| Attribute defaults not present in valid values | Invalid cart configuration defaults | Ensure default exists in allowed value set |
| Duplicate display sequences in same attribute category | UI ordering conflict | Enforce unique and spaced sequence values |
| Offer marked active with incomplete child references | Broken bundle at runtime | Complete and validate child link set before activation |
Mixed naming styles (snake_case, ad hoc abbreviations) | Reduces maintainability and discoverability | Enforce naming convention from references doc |
ProductCode convention qualityGlobalKey, source key integrity)# Query candidate EPC products
sf data query -q "SELECT Id,Name,ProductCode,Family,IsActive FROM Product2 ORDER BY LastModifiedDate DESC" -o <org>
# Query Product Child Items for an offer
sf data query -q "SELECT Id,Name,%vlocity_namespace%__ParentProductName__c,%vlocity_namespace%__ChildProductName__c,%vlocity_namespace%__MinMaxDefaultQty__c FROM %vlocity_namespace%__ProductChildItem__c WHERE %vlocity_namespace%__ParentProductName__c='<Offer Name>'" -o <org>
# Retrieve Product2 metadata package members (as applicable to project format)
sf project retrieve start -m Product2:<DeveloperNameOrName> -o <org>
# Validate deployment in dry-run mode
sf project deploy start -x manifest/package.xml --dry-run -o <org>
Use these examples to invoke this skill from your agent/CLI workflow:
# Create a new EPC offer bundle with full companion metadata
cursor-agent "Create a Product2 offer bundle named Business Internet Plus with ProductCode BIZ-INT-PLUS-01, 3 child products, and generate all companion DataPack JSON files from the assets templates."
# Add configurable attributes to an existing EPC Product2 record
cursor-agent "Update Product2 Business Internet Essential with attribute metadata/defaults/assignments for Bandwidth, ContractTerm, and StaticIPCount, including valid values and defaults."
# Build ProductChildItem relationships for an offer
cursor-agent "Create root and child %vlocity_namespace%__ProductChildItem__c records for offer Business Internet Essential VPL with min/max/default quantity rules."
# Review an existing DataPack for EPC modeling quality
cursor-agent "Review the Product2 bundle JSON files under skills/sf-industry-cme-epc-model/examples/business-internet-plus-bundle/, score against the 120-point rubric, and return risks plus required fixes."
# Convert a spec product into a bundle-ready offer payload
cursor-agent "Transform Product2 Dedicated Fiber 1G from spec product to offer bundle (SpecificationType=Offer, SpecificationSubType=Bundle) and generate aligned PCI + pricing artifacts."
If your environment uses a different command wrapper, keep the quoted instruction text and replace cursor-agent with your local agent command.
| From Skill | To sf-industry-cme-epc-model | When |
|---|---|---|
| sf-industry-commoncore-omnistudio-analyze | -> sf-industry-cme-epc-model | Need current dependency and namespace inventory first |
| sf-metadata | -> sf-industry-cme-epc-model | Need object or field readiness before EPC modeling |
| sf-soql | -> sf-industry-cme-epc-model | Need existing catalog query analysis |
From sf-industry-cme-epc-model | To Skill | When |
|---|---|---|
| sf-industry-cme-epc-model | -> sf-industry-commoncore-omniscript | Configure guided selling UX using the modeled catalog |
| sf-industry-cme-epc-model | -> sf-industry-commoncore-integration-procedure | Build server-side orchestration over product and pricing payloads |
| sf-industry-cme-epc-model | -> sf-deploy | Deploy validated catalog metadata |
Additional local references:
vlocity/Product2/... artifact authoring.%vlocity_namespace% placeholders intact in templates to preserve portability.MIT License.