Vous êtes ici :
InsProductService:repriceProduct
Utilisez ce service pour calculer le prix d'un produit en utilisant la procédure de tarification jointe à ce produit. Ce service est généralement appelé lorsqu'un utilisateur sélectionne un produit et personnalise sa couverture.
Méthode : repriceProduct
Le service prend un objet produit dans son JSON d'entrée et renvoie le produit avec la tarification totale et la somme totale assurée. Il renvoie également le JSON de résultat complet de la procédure de tarification.
Ce service fonctionne pour une ou plusieurs parties assurées (personnes couvertes par le produit de police) et un ou plusieurs éléments assurés (voitures multiples sur une police automobile, par exemple).
Ce service n'exécute pas les règles de couverture facultative Éligibilité, Obligatoire et Par défaut lors de la modification d'un devis.
Fonctionnement
-
Le service recherche la clé de produit sélectionnée dans le JSON d'entrée, puis récupère sa valeur. Cet objet contient un objet produit.
-
En utilisant les données du produit pour rechercher dans Salesforce, le service recherche le produit et récupère la procédure de tarification.
-
Le service évalue le produit avec la structure JSON du produit.
-
Le service renvoie les objets produit avec le prix total et la somme totale assurée. Le JSON de sortie inclut le JSON de résultat analysé de la procédure de tarification en tant que valeur de
CalculatedPriceData. Le service définit également le prix et latotalSumInsuredsi les formules sont définies sur le produit.
Options distantes
Option |
Description |
|---|---|
|
Lorsque Par exemple, un devis ou une police d'assurance automobile a plusieurs conducteurs joints à chaque automobile assurée. L'auto assurée a un |
|
Définissez cette option sur Oubliez cette option pour les produits qui ne remplissent pas tous ces critères. Pour mettre en forme les |
|
ou %OmniScriptDataElement% Valeur par défaut de la date du jour. |
|
Si cette option = |
|
Le nom du mappeur de données Omnistudio que ce service utilise pour récupérer les informations de la stratégie (actif). Si vous utilisez Salesforce FSC, vous devez spécifier cette option ou |
|
Le nom de la classe personnalisée que ce service utilise pour récupérer les informations de la politique (actif). Si vous utilisez Salesforce FSC, vous devez spécifier cette option ou |
|
Une chaîne de paires clé/valeur séparées par une virgule que le service transmet dans et hors de la procédure de calcul. Ces paires clé/valeur sont incluses dans l'objet produit de sortie de l'objet Seules les clés d'entrée utilisées par la procédure de calcul ont une valeur dans les résultats. |
|
Par défaut Inclut les résultats complets de la procédure de calcul dans la clé de |
|
Défini sur |
|
Facultatif
Défini sur Si vous utilisez Salesforce FSC et que vous définissez cette option sur |
|
Liste restreinte d'ID Utilisé conjointement avec l'option Calcule uniquement les taxes et les frais associés aux juridictions fournies. |
taxAndFeeEffectiveDate
|
La date effective que ce service utilise pour calculer les taxes et les frais. Cette option est séparée de l'option Si une valeur est fournie, le service utilise cette valeur. Si aucune valeur n'est fournie et que le JSON du produit n'est pas une stratégie, le service est défini par défaut sur la date du jour. Si la valeur n'est pas fournie et que le JSON du produit est une stratégie, le service utilise la date d'entrée en vigueur de la version d'origine de la stratégie. |
withTaxFeeRounding
|
Facultatif Si vrai, les montants de taxe et de frais calculés sont arrondis à deux décimales en utilisant la méthode de l'arrondi à moitié pair. La La valeur par défaut est false. |
JSON d'entrée
InsProductService: repriceProduct recherche un objet produit dans la clé selectedProduct de son JSON d'entrée. Cet objet contient les entrées requises par la procédure de tarification telles que mappées dans les attributs du produit, y compris ses spécifications de couverture associées, ses spécifications d'articles assurés, ses spécifications de partie assurée et ses spécifications de fait de tarification. Cet objet peut être créé par d'autres services tels que getRatedProducts. Il comprend le produit racine, les produits enfants et les produits petits-enfants. Le service analyse la structure du produit et transmet les données dans l'ensemble d'expressions ou la procédure de calcul. Si les attributs mappés pour l'évaluation ne sont pas inclus dans l'objet, le service utilise les paramètres par défaut définis par l'administrateur produit.
Ce service recherche également une clé de userInputs dans le JSON d'entrée. Il peut ainsi trouver tous les facteurs d'évaluation qui ne sont pas inclus dans le nœud selectedProduct. Utilisez le format de userInputs approprié en fonction de la définition du produit et de la configuration du prix. Le service accepte un seul type de format de userInputs à la fois.
JSON de sortie
Le service renvoie la même structure JSON que celle du nœud selectedProduct avec des informations de tarification mises à jour. Pour plus d'informations sur le contenu et la structure de cet objet, consultez Modèle de structure JSON Produit.
Si des services de taxe et de frais sont utilisés, la sortie JSON est conservée dans l'enregistrement JSON, de la même façon que getRatedProducts écrit dans le JSON.
Pour chaque produit, le JSON de sortie du calcul de la procédure de tarification est ajouté au produit avec la clé de CaculatedPriceData. Si la formule de tarification est définie sur le produit, la valeur de price est définie sur sa valeur calculée. Si la formule totale assurée est définie sur le produit, la valeur de TotalInsured est définie sur sa valeur calculée.
La structure sous CalculatedPriceData inclut la prise en charge de l'instance. Les métriques de prix sont regroupées sous le niveau de l'instance.
Le JSON de sortie inclut un nœud priceDiff au niveau racine qui totalise les prix au niveau de l'instance. Il inclut également le champ totalPremiumForTermDiff au niveau racine. Cette valeur correspond à la différence entre la prime totale d'origine pour durée et la somme entre la prime totale pour durée de la nouvelle version de police et la prime mise à jour pour durée de l'ancienne version de police.
Dans cet exemple, la formule de tarification est définie sur le produit, mais pas la formule du total assuré. Le service ajoute la CalculatedPriceData aux résultats de la procédure de tarification. Le service calcule le prix en fonction de la formule. La formule totale assurée n'est pas définie dans le produit et n'est pas affichée dans les données (TotalInsured non plus).
"totalSize": null,
"records": [{
"displaySequence": -1,
"rootProductId": "01t1I000002fuBoQAI",
"rootProductCode": "AUTOROOT",
"timestamp": 1533948385704,
"hasInstanceKeys": true,
"childProductsCount": 8,
"instanceKeyChildren": 2,
"pathFromChild": "[0]",
"pathFromRoot": "[0]",
"Price": 80,
"productId": "01t1I000002fuBoQAI",
"Term__c": "Semi-Annual",
"PricingFormula__c": "SUM(AutoPremium__autoPremium + rentalTotal + medicalTotal + roadsideTotal + dedWaiverTotal + uninsuredMotoristPDTotal + uninsuredMotoristBITotal)",
"IsConfigurable__c": true,
"RecordTypeName__c": "Product",
"IsRecommended__c": false,
"ProductCode": "AUTOROOT",
"Name": "Auto Root",
"Id": "01t1I000002fuBoQAI",
"RawPriceData": [{
"calculationResults": [{
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2015 Lexus LX250",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "0"
}],
"aggregationResults": {}
},
{
"calculationResults": [{
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2006 Honda Odyssey",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "1"
}],
"aggregationResults": {}
}
],
"CalculatedPriceData": {
"2015 Lexus LX250": {
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2015 Lexus LX250",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "0"
},
"2006 Honda Odyssey": {
"DRIVER.LN": null,
"DRIVER.FN": null,
"AUTO.instanceKey": "2006 Honda Odyssey",
"uninsuredMotoristBITotal": 100,
"uninsuredMotoristPDTotal": 0,
"dedWaiverTotal": 10,
"roadsideTotal": 10,
"medicalTotal": 10,
"rentalTotal": 40,
"comprehensiveTotal": 500,
"ID": "1"
}
},
"priceDiff": 0,
"totalPremiumForTermDiff": 0,
"attributeCategories": {
"totalSize": 1,
"records": [{
"displaySequence": 5,
"id": "a1V1I0000007xJSUAY",
"Name": "Alan Health Attributes",
"Code__c": "AHA",
"productAttributes": {
"totalSize": 1,
"records": [{
"code": "ALANDEDUCTIBLE",
"dataType": "text",
"inputType": "text",
"required": false,
"readonly": false,
"disabled": false,
"filterable": true,
"attributeId": "a1W1I000000Bu1jUAC",
"label": "Deductible",
"displaySequence": 2,
"hasRules": false,
"hidden": false,
"values": [{
"readonly": false,
"disabled": false
}],
"userValues": "test",
"parentProductId": "01t1I000002fuBoQAI",
"parentProductCode": "AUTOROOT",
"pathFromChild": "attributeCategories.records[0].productAttributes.records[0]",
"pathFromRoot": "attributeCategories.records[0].productAttributes.records[0]"
}]
}
}]
},
"childProducts": {
...
}- Une procédure de tarification par produit pour priceProduct
Mettre en forme lesInsProductService:repriceProduct userInputsdes produits qui utilisent une procédure de tarification unique par produit racine. - Procédures de tarification multiples par produit ou spécifications multiples à tout niveau pour priceProduct
Mettre en forme lesInsProductService:repriceProduct userInputsde produits qui utilisent plusieurs procédures de tarification dans la hiérarchie des produits ou plusieurs spécifications enfants à n'importe quel niveau de la hiérarchie.
