---
sourceDocument: Australie Gestion de la relation client pour les ventes
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/order-management

 Release :

    - australia

ft:locale :

    - fr-FR

ft:publication_title :

    - Australie Gestion de la relation client pour les ventes

ft:clusterId :

    - omgmt

bundleId :

    - omgmt

workflow :

    - Customer and Industry


---

# Extension de la liste déroulante Enrichissement de la tarification

# Extension de la liste déroulante Enrichissement de la tarification {#ariaid-title1}

* Rversion finale: Australia
* 
* Mis à jour 12 mars 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes de lecture

Utilisez l'enrichissement de la tarification d'extension de la liste déroulante pour ajuster la tarification en fonction de l'emplacement ou d'autres facteurs.

L'enrichissement de la tarification d'extension de la liste déroulante peut être utilisé pour modifier dynamiquement la tarification des options de champ dans les champs d'extension de liste déroulante désignés.

## Prérequis {#picklist-extension-pricing-scripts__section_klw_wkm_dhc}

Soumettez un ticket de support via le site de CPQ support ou en envoyant un e-mail [support@logik.io](mailto:support@logik.io) en demandant que l'enrichissement soit activé pour votre environnement. Veuillez fournir un cas d'utilisation de l'enrichissement.

Les champs d'extension de la liste déroulante doivent avoir le bouton bascule \<\< Activer pour l'enrichissement \>\> activé pour être affectés par l'enrichissement.

L'onglet Enrichissements s'affiche lors de la navigation vers un plan dans l'administration CPQ .

Regardez cette démonstration de l'enrichissement de la tarification d'extension de la liste déroulante en action.

[Démo du script d'enrichissement PLE](https://www.youtube.com/watch?v=deoQkQaPnX8)

## Script de démonstration {#picklist-extension-pricing-scripts__section_rfl_3lm_dhc}

Le script suivant a été utilisé dans la vidéo de démonstration.

    let sourcesArr = [];
    let componentArr = [];
    let accessoryArr = [];

    pleRequest.forEach(o => {
        if(o.fieldVariableName == "alternateEnergySources") {
            sourcesArr.push(o.optionValue);
            //o.price = "1000";
        }
        if(o.fieldVariableName == "alternateEnergyComponents") {
            componentArr.push(o.optionValue);
            //o.price = "900";
        }
        if(o.fieldVariableName == "alternateEnergyAccessory") {
            accessoryArr.push(o.optionValue);
            //o.price = "800";
        }
    });

    var sourceMap = new Map();
    if(sourcesArr != null && sourcesArr.length != 0) {
        var sourceRows = lookup("Select Energy, BasePrice from AlternateEnergyPricing where Zip = :zip and Energy IN (:value)", { "zip": cfg.zipCode, "value": sourcesArr });
        for (var row of sourceRows) {
            sourceMap.set(row.get("Energy"), row.get("BasePrice"));
        }
    } else {    //source PLE not part of request. So populate this map for other PLEs 
        console.log("Entered non PLE in request case");
        sourcesArr = ["Solar", "Wind", "Nuclear"];
        var sourceRows = lookup("Select Energy, BasePrice from AlternateEnergyPricing where Zip = :zip and Energy IN (:value)", { "zip": cfg.zipCode, "value": sourcesArr });
        for (var row of sourceRows) {
            sourceMap.set(row.get("Energy"), row.get("BasePrice")); 
        }
        console.log(sourcesArr);
        console.log(sourceMap);
    }

    var multiplierMap = new Map();
    if(cfg.alternateEnergySources != "") {
        var multiplierRows = lookup("Select Group, Factor from AlternateEnergyMultiplier where Zip = :zip and Energy = :energyVal", { "zip": cfg.zipCode, "energyVal": cfg.alternateEnergySources });
        for (var row of multiplierRows) {
            multiplierMap.set(row.get("Group"), row.get("Factor"));
        }
    }
    let sourcePrice = sourceMap.get(cfg.alternateEnergySources);
    if(sourcePrice != null) {
            pleRequest.forEach(o => {
            if(o.fieldVariableName == "alternateEnergySources") {
                o.price = sourceMap.get(o.optionValue);
            }
            if(o.fieldVariableName == "alternateEnergyComponents") {
                let compPrice = multiplierMap.get("Component");
                if(compPrice != null) {
                    o.price = sourcePrice*compPrice;
                }
            }
            if(o.fieldVariableName == "alternateEnergyAccessory") {
                let multA = multiplierMap.get("Accessory");
                if(multA != null) {
                    o.price = sourcePrice*multA;
                }
            }
        });
    }

    console.log(sourcesArr);
    console.log(componentArr);
    console.log(accessoryArr);
    console.log(sourceMap);
    console.log(multiplierMap);

    return pleRequest;

## Exemples de plans, de cas d'utilisation et d'éléments pleRequest {#picklist-extension-pricing-scripts__section_qdv_xlm_dhc}

Exemple de conception de script d'enrichissement :

1. Parcourez les options de la liste déroulante et stockez-les pour référence ultérieure (pleRequest.forEach())
2. Obtenir les prix des options et les stocker (soit via la recherche par table, soit dans la fonction elle-même)
3. Définissez le prix de la bonne option (pleRequest.forEach())

{#picklist-extension-pricing-scripts__ol_txf_bmm_dhc}

Cas d'utilisation :

* Code postal tarification dépendante
* Multiplicateurs de prix et remises
* Tarification delta
* Soustraction de la tarification du composant indépendant

{#picklist-extension-pricing-scripts__ul_chb_2mm_dhc}

Éléments pleRequest :

* pleRequest.fieldVariableName : nom de variable du champ de la liste déroulante
* pleRequest.optionValue : options de liste déroulante définies dans le champ
* pleRequest.productId : ID du produit dans le mappage PLE
* pleRequest.price : prix à définir dans l'extension

{#picklist-extension-pricing-scripts__ul_ih1_hmm_dhc}

Le référencement d'éléments dans l'objet `pleRequest` est similaire au référencement d'objets tels que `ProductList`, `cfg` et `cfgRequest`. Si une variable est substituée dans `pleRequest` (soit dans une boucle `for` , soit à l'aide de la fonction `forEach` ), l'élément est toujours référencé après la variable, suivi d'un point.
**Référence associée**   

* [CPQ Référence du langage de script](https://servicenow-prod.fluidtopics.net/EDO4s4nA2jRw5KZZKjHnRQ "Affichez les opérateurs, les objets et les mots-clés pris en CPQ charge, ainsi que des informations sur la conversion de type, la vérification de type, les scripts alternatifs pour les opérations non prises en charge et l’accès aux propriétés des objets.")

