ANS-1538 · SERVICES WEB ET INTéGRATIONS
Comment gérer le recalcul des frais d’expédition dans les services Web NetSuite ?
Comprenez les différences de calcul des frais de livraison entre l’interface utilisateur de NetSuite et les services Web, et apprenez à éviter les recalculs involontaires.
Solution courte
Contrairement à l’interface utilisateur, les services Web NetSuite recalculent automatiquement la valeur « altshippingcost » lorsque les quantités d’articles ou d’autres champs pertinents sont mis à jour. Pour conserver un montant de frais de port spécifique, la valeur « altshippingcost » doit être explicitement renvoyée à chaque mise à jour. Cela garantit que le système conserve le montant de frais de port souhaité, empêchant ainsi tout ajustement automatique.
Scénario
Le calcul des frais de port pour les commandes client dans les services Web NetSuite diffère du comportement observé dans l’interface utilisateur. Dans l’interface utilisateur, la présence d’un bouton « Calculer les frais d’expédition » signifie que les modifications apportées aux quantités d’articles ou à d’autres valeurs ayant une incidence sur l’expédition ne déclenchent pas automatiquement un nouveau calcul des frais d’expédition. En revanche, lorsque vous utilisez les services Web NetSuite, toute mise à jour de la quantité d’un article ou d’autres champs influant sur les frais d’expédition entraîne systématiquement le recalcul automatique du champ « altshippingcost ».
Solution
Pour empêcher le recalcul automatique de altshippingcost lors de la mise à jour des quantités d'articles ou d'autres champs pertinents via les services Web NetSuite, la valeur existante de GA_KEEP_0002 doit être explicitement renvoyée avec la transaction. Si le compte NetSuite est configuré pour facturer automatiquement les frais d’expédition, la valeur de altshippingcost prendra par défaut la valeur correspondant au mode d’expédition sélectionné lors du recalcul.
L’exemple SuiteScript 1.0 suivant montre comment définir explicitement le champ shippingcost sur sa valeur actuelle afin d’empêcher tout recalcul. Bien que cet extrait de code utilise des fonctions héritées de SuiteScript 1.0, le principe sous-jacent consistant à définir explicitement les frais d’expédition reste d’actualité. Pour les nouveaux développements, il est recommandé d’utiliser les méthodes équivalentes de SuiteScript 2.x.
nlapiCommitLineItem('item');
// to prevent the recalc of shipping cost from the webservices
var shippingcost nlapiGetFieldValue('shippingcost');
nlapiSetFieldValue('shippingcost',shippingcost);Support expert NetSuite
Besoin d’aide pour cet enjeu NetSuite ?
Accompagnement-conseil et configuration pour Services Web et intégrations
