ANS-1283 · SERVICES WEB ET INTéGRATIONS

Comment récupérer les exécutions de commandes NetSuite par site à l’aide des services Web

Lorsque la fonctionnalité « multi-sites » est activée, NetSuite génère des traitements de commande distincts pour les articles provenant de sites différents, auxquels il est possible d’accéder via les services Web à l’aide des identifiants de groupe d’expédition.

Solution courte

Pour récupérer les livraisons d’articles spécifiques par site via les services Web, utilisez l’appel d’initialisation sur « Item Fulfillments ». Indiquez l’identifiant de la commande client et l’identifiant du groupe d’expédition concerné en tant que « auxReference » de type « shippingGroup ». NetSuite attribue automatiquement des identifiants de groupe d’expédition aux articles provenant du même site sur une commande client.

Scénario

Lorsque la gestion des stocks multi-sites est activée sur une commande client NetSuite, il n’est pas possible de créer une seule exécution de commande contenant des articles provenant de sites différents. À la place, NetSuite génère automatiquement plusieurs exécutions de commande, chacune regroupant les articles provenant d’un seul site. Ce comportement est observé lors de l’exécution de la commande directement depuis l’interface utilisateur de NetSuite.

Solution

Pour reproduire ce comportement et récupérer les livraisons d’articles spécifiques par site via les services Web, vous devez utiliser l’appel d’initialisation sur les livraisons d’articles. Cet appel nécessite deux paramètres : la commande client à référencer et l’identifiant du groupe d’expédition correspondant à la livraison souhaitée.

Les groupes d’expédition sont générés automatiquement par NetSuite lors de la création de la commande client, un identifiant unique étant attribué à chaque groupe d’articles provenant d’un site différent. Par exemple, tous les articles provenant du site A partageront un même identifiant de groupe d’expédition, tandis que ceux provenant du site B auront un identifiant de groupe d’expédition différent.

Vous trouverez ci-dessous un exemple d’extrait de code Ruby illustrant l’appel « initialize » :

ruby
aux_reference = {
  aux_reference: {
    internal_id: ship_group,
    type: "shippingGroup"
  }
}

fulfillment = NetSuite::Records::ItemFulfillment.initialize(@sales_order, aux_reference)

La structure d’appel SOAP correspondante à cette opération est la suivante :

xml
<initialize xmlns="urn:messages_2017_1.platform.webservices.netsuite.com">
  <initializeRecord>
   <type xmlns="urn:core_2017_1.platform.webservices.netsuite.com">itemFulfillment</type>
   <reference type="salesOrder" internalId="997"
  xmlns="urn:core_2017_1.platform.webservices.netsuite.com" />
   <auxReference type="shippingGroup" internalId="1"
  xmlns="urn:core_2017_1.platform.webservices.netsuite.com" />
  </initializeRecord>
</initialize>

En résumé, pour récupérer un traitement de commande spécifique, l’identifiant de la commande client et l’identifiant du groupe d’expédition correspondant sont requis. Ces informations doivent être transmises dans l’appel « initialize » en spécifiant une auxReference dont le type est défini sur « shippingGroup ».

Support expert NetSuite

Besoin d’aide pour cet enjeu NetSuite ?

Accompagnement-conseil et configuration pour Services Web et intégrations

Parler à un consultant