***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** This Confluence article was automatically generated from Asciidoc. Any changes you make to this document will be overridden! If you want to change the content, consider leaving a comment. You can edit the content directly here: https://gitlab.pricefx.eu/training/pricefx-knowledge-base/-/tree/dev/public/content/docs/concepts/quotes/quotes ***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING **********************
At the end of this lesson you will be able to:
Explain, how to implement the calculation of line items of a Quote.
Explain, how to ask user for inputs (i.e., create input fields).
A document for negotiation of product prices and other conditions.
if (api.isInputGenerationExecution()) { api.userEntry("Quantity") // ❶ api.getParameter("Quantity").setRequired(true) // ❷ } |
❶ During input generation mode, this function builds a definition for an input field.
❷ Retrieves reference to the input field definition and sets it additionally as required.
// All these samples work only in regular execution (i.e., not in input generation mode) input.Quantity input["Quantity"] api.input("Quantity") api.userEntry("Quantity") |
The configuration/implementation of a Quote usually consist of many things. This Handbook focuses only on the simple implementation.
Simple implementation:
Line Item Logic
Quote Type setup
Common implementation also has:
Header Logic
System Configuration Options
Approval Workflow
Price Record Mapping
The Quote Line Item logic typically:
Creates input fields for the line item.
This is done only once, when the new line item is added. The logic will be executed in input generation mode to collect the input fields for the SKU. And the system will store those input fields definitions on the line item.
Calculates the results for the SKU on the line item.
This is called for action each time, when the user re-calculates the Quote.
The Quote Type describes, which logics will be used to perform various operations with the Quote.
You can find the types under
.It sets:
Line Item logic - Which logic will be used for every line of the Quote, to create its input fields, and to calculate its results. The only exception is, if the SKU would have a logic set on the Product level (i.e., in the Product Master table).
Header Logic - Which logic will be used to prepare header input fields and calculate aggregated overall results of the Quote.
Workflow logic - Which logic will prepare the approval steps for the Quote after Submission.