Loading
Insurance
Une procédure de tarification par produit pour priceProduct

Une procédure de tarification par produit pour priceProduct

Mettre en forme les InsProductService:repriceProduct userInputs des produits qui utilisent une procédure de tarification unique par produit racine.

Remarque
Remarque

Pour la plupart des produits qui utilisent plusieurs procédures de tarification dans la hiérarchie des produits ou plusieurs spécifications à n'importe quel niveau de la hiérarchie, vous formatez différemment le JSON d'entrée. Consultez Procédures de tarification multiples par produit ou Spécifications multiples à tout niveau pour repriceProduct.

Les produits configurés avant la version Winter '23 version 240.22 peuvent avoir plusieurs spécifications enfants à un niveau donné de la hiérarchie, aucune spécification petit-enfant et une seule procédure de tarification au niveau racine. Pour ces produits, utilisez le même format de userInputs que dans les versions antérieures.

Pour éviter les erreurs, exécutez le service avec un seul type de format de userInputs à la fois.

À compter de la version Summer '20, le JSON d'entrée accepte un nœud additionalInputs. Utilisez ce nœud pour définir stage en tant qu'entrée supplémentaire afin que le système évalue correctement l'étape lors de l'exécution du service.

Remarque
Remarque

Les règles d'éligibilité ne sont pas prises en charge.

Pour n'importe quel produit, le format cible de l'objet userInputs peut être obtenu à partir de la liste de services sous l'onglet API de la vue du produit. Les clés d'objet se présentent sous la forme "<ProductCode>.<AttributeCode>" où le ProductCode est le code du produit ou le code produit des spécifications de couverture associées, des spécifications d'articles assurés ou des faits de tarification.

Le <productCode>.isSelected de la couverture peut également être utilisé dans l'ensemble d'expressions ou la procédure de calcul.

Remarque
Remarque

Ce service prend en charge un seul objet dans son tableau d'enregistrements.

{
  "selectedProduct": {
    "records": [{
      "rootProductId": "01t1I000002fuBoQAI",
      "rootProductCode": "AUTOROOT",
      "timestamp": 1533948385704,
      "hasInstanceKeys": true,
      "childProductsCount": 8,
      "instanceKeyChildren": 2,
      "pathFromChild": "[0]",
      "pathFromRoot": "[0]",
      "attributeCategories": {
        ...
      }
      "childProducts": {
        ...
      }
      "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": [{
          "aggregationResults": {},
          "calculationResults": [{
              "ID": "0",
              "comprehensiveTotal": 500,
              "rentalTotal": 40,
              "medicalTotal": 10,
              "roadsideTotal": 10,
              "dedWaiverTotal": 10,
              "uninsuredMotoristPDTotal": 0,
              "uninsuredMotoristBITotal": 100,
              "AUTO.instanceKey": "2015 Lexus LX250",
              "DRIVER.FN": "Joan",
              "DRIVER.LN": "Smith"
            },
            {
              ...
            }
          ]
        },
        {
          "aggregationResults": {},
          "calculationResults": [{
              "ID": "4",
              "comprehensiveTotal": 500,
              "rentalTotal": 40,
              "medicalTotal": 10,
              "roadsideTotal": 10,
              "dedWaiverTotal": 10,
              "uninsuredMotoristPDTotal": 0,
              "uninsuredMotoristBITotal": 100,
              "AUTO.instanceKey": "2006 Honda Odyssey",
              "DRIVER.FN": "Joan",
              "DRIVER.LN": "Smith"
            },
            {
              ...
            }
          ]
        }
      ],
      "CalculatedPriceData": {
        "2006 Honda Odyssey": {
          "ID": "4",
          "comprehensiveTotal": 500,
          "rentalTotal": 40,
          "medicalTotal": 10,
          "roadsideTotal": 10,
          "dedWaiverTotal": 10,
          "uninsuredMotoristPDTotal": 0,
          "uninsuredMotoristBITotal": 100,
          "AUTO.instanceKey": "2006 Honda Odyssey",
          "DRIVER.FN": "Joan",
          "DRIVER.LN": "Smith"
        },
        "2015 Lexus LX250": {
          "ID": "0",
          "comprehensiveTotal": 500,
          "rentalTotal": 40,
          "medicalTotal": 10,
          "roadsideTotal": 10,
          "dedWaiverTotal": 10,
          "uninsuredMotoristPDTotal": 0,
          "uninsuredMotoristBITotal": 100,
          "AUTO.instanceKey": "2015 Lexus LX250",
          "DRIVER.FN": "Joan",
          "DRIVER.LN": "Smith"
        }
      },
      "displaySequence": -1
    }]
  }
}
Remarque
Remarque

Une autre approche consiste à définir une transformation Omnistudio Data Mapper qui mappe les données transmises dans le JSON d'entrée sous le format dont le service a besoin. Le JSON de sortie de ce Mappeur de données est le nœud selectedProducts requis par repriceProduct et le JSON userInputs défini sous l'onglet API de vue du produit. Pour configurer l'utilisation du Mappeur de données par le service, définissez l'option preTransformBundle sur le nom du Mappeur de données.

 
Chargement
Salesforce Help | Article