Differences

This shows you the differences between two versions of the page.

adminhelp:event_pipeline:add_parent-child_product [2019/03/05 07:22] (current)
mnikolic created
Line 1: Line 1:
 +====== Add Parent-child Product ======
 +User adds parent-child product from Catalog.
  
 +None of the parent product attributes should be propagated on child products (container rows)
 +
 +Parent product's container attribute has setting "Triggers Execution of Rules" set to TRUE (default).
 +
 +  * Configure
 +    * Load product configuration
 +      * Apply rules
 +        * Apply rules – parent product
 +          * **OnProductRuleExecutionStart**
 +          * **OnProductRuleExecutionEnd**
 +          * Container transfer execute (if parent product attribute changed and should be propagated to child item, it is propagated here and all container columns are recalculated anyway)
 +            * [if any container changed(TRUE here) Apply rules - parent product]
 +              * **OnProductRuleExecutionStart**
 +              * **OnProductRuleExecutionEnd**
 +      * **OnProductLoaded**
 +    * Execute AddItem action in workflow -executing AddItem Pre-actions
 +  * User selects parent product attribute values
 +    * [ for each attribute value] Apply rules - parent product
 +      * **OnProductRuleExecutionStart**
 +      * **OnProductRuleExecutionEnd**
 +  * User adds container row
 +    * Load product configuration for container ref product
 +      * Apply rules for container ref product
 +        * **OnProductRuleExecutionStart**
 +        * **OnProductRuleExecutionEnd**
 +      * **OnProductLoaded**
 +    * AddContainerRow
 +      * Create row
 +      * Transfer changed parent attributes that should be transferred to container columns
 +      * Calculate container to item mappings (container properties used when creating a new cart item) 
 +      * [if container attribute Triggers Execution of Rules(TRUE)] Apply rules for parent product
 +        * Apply rules – parent product
 +          * **OnProductRuleExecutionStart**
 +          * **OnProductRuleExecutionEnd**
 +          * Container transfer execute (if parent product attribute changed and should be propagated to child item, it is propagated here and all container columns are recalculated anyway)
 +            * [if any container changed(TRUE here) Apply rules - parent product]
 +              * **OnProductRuleExecutionStart**
 +              * **OnProductRuleExecutionEnd**
 +      * [if container attribute Triggers Execution of Rules(TRUE)]  Apply rules for parent product
 +          * **OnProductRuleExecutionStart**
 +          * **OnProductRuleExecutionEnd**
 +        * **OnContainerRowAdded**
 +  * User selects child product attribute values
 +    * [ for each attribute value] Apply rules - child product
 +      * **OnProductRuleExecutionStart**
 +      * **OnProductRuleExecutionEnd**
 +  * User saves container row’s configuration
 +    * Exit nested product
 +      * Transfer changed parent attributes that should be transferred to container columns
 +      * Calculate container to item mappings (container properties used when creating a new cart item)
 +      * [if Triggers Execution of Rules(TRUE)] Apply rules – parent product
 +        * **OnProductRuleExecutionStart**
 +        * **OnProductRuleExecutionEnd**
 +  * User clicks Add to Quote
 +    * **OnProductBeforeAddToQuote**
 +    * [if quote does not exist]
 +      * Create empty
 +        * Calculate quote custom fields
 +          * **OnBeforeCustomFieldCalculation**
 +          * for each quote custom field that changed and if not FIRE_SCPARAM_CHANGE_ONLY_ON_USER_ACTION(TRUE): **OnCustomFieldChanged**
 +          * **OnAfterCustomFieldCalculation**
 +      * Set user's default market and pricebook
 +      * SAVE QUOTE
 +        * **OnQuoteCreated**
 +      * **OnCustomerMappings** (crm)
 +      * **OnQuoteFieldsMappings** (crm)
 +    * Execute AddItem action in workflow -executing AddItem Post actions
 +    * AddItem
 +      * Fill item standard fields( quantity, description, base price, product, attributes, unit of measure)
 +      * Create line items
 +        * [for each container row] Create main item from mappings
 +          * Create item
 +          * Execute main item mappings
 +            * Fill item standard fields( quantity, description, base price, product, attributes, unit of measure)
 +            * Create line items
 +            * **OnItemAdded** (main item - child product)
 +            * [ for each line item] **OnItemAdded**
 +      * **OnItemAdded** (main item - parent product)
 +      * Calculate key attributes
 +    * Add item finalize
 +      * Calculate main editable group (calculate QICF values, runs mathematics for Items, Product Types and Cart Totals)
 +      * SAVE QUOTE
 +        * Get prepared cart (prices in selected market, rounded values...)
 +          * Fix rounding error
 +            * calculate cart totals (mathematics for Product Types and Cart Totals)
 +      * Calculate Aggregates
 +      * Calculate quote custom fields
 +        * **OnBeforeCustomFieldCalculation**
 +        * for each quote custom field that changed and if not FIRE_SCPARAM_CHANGE_ONLY_ON_USER_ACTION(TRUE): **OnCustomFieldChanged**
 +        * **OnAfterCustomFieldCalculation**
 +      * Save quote custom fields
 +      * [If quote custom fields changed] **OnEveryTimeQuoteChanged**
 +      * **OnUserOnQuotationTab**
 +      * **OnCustomerMappings** (crm)
 +      * **OnQuoteFieldsMappings** (crm)
 +      * Check discount rules
 +      * Check margin health
 +      * [if standard (not editable) shipping used] Calculate shipping cost
 +        * calculate main editatable group (calculate QICF values, runs Items, Product Types and Cart Totals mathematics)
 +        * SAVE QUOTE MODEL - do not calculate quote custom fields
 +          * SAVE QUOTE
 +            * Get prepared cart (prices in selected market, rounded values...)
 +              * Fix rounding error
 +                * calls calculate Cart Totals and Product Types
 +          * Calculate aggregates
 +          * Save quote custom fields
 +          * [if quote changed (items added/removed, customers, total)] -> **OnEveryTimeQuoteChanged**
 +          * **OnUserOnQuotationTab**
 +       * Load cart actions (checks action conditions such as APPROVALREQUIRED)
 +       * **OnProductAddedToQuote**
 +  * Execute AddItem action in workflow – Post actions
 +  * Loading quote
 +    * **OnUserOnQuotationTab**
 +    * Get items
 +      * Get prepared cart  (prices in selected market, rounded values...)
 +        * Fix rounding error 
 +          * calculate cart totals (mathematics for Product Types and Cart Totals)
 +    * **BeforeQuoteRendering**
You are here: SAP Sales Cloud CPQ Online HelpAdmin Page HelpEvent PipelineAdd Parent-child Product