Instruction OrderItemUpdate
Cette instruction peut effectuer toutes les opérations réalisées par OrderItemAdd (en d'autres termes, ajouter des produits et des articles dans une ou plusieurs commandes de la liste). Elle peut également mettre à jour les articles (OrderItems) d'une commande existante.

Valeur des paramètres
- http://host_name/path/
- (Obligatoire) Nom qualifié complet de votre serveur WebSphere Commerce Server et chemin de configuration
- forUser
- ID de connexion de l'utilisateur au nom duquel l'instruction est exécutée. Seule une personne disposant des droits de traitement des commandes peut spécifier ce paramètre.
- forUserId
- Identique à forUser, mais identifie l'utilisateur par l'ID d'utilisateur interne, tel qu'il est indiqué dans la table USERS.
- langId
- Définit ou restaure la langue préférée pour la durée de la session ; les langues prises en charge pour un
magasin figurent dans la table STORELANG.
- URL
- (Obligatoire) URL devant être lancée lorsque l'instruction aboutit.
- orderItemId_i
- Identificateur de l'article de commande à mettre à jour. S'il est spécifié, alors les paramètres catEntryId_i et
partNumber_i (pour la même valeur de i) sont ignorés.
- storeId
- Le numéro de référence de magasin, obligatoire uniquement si vous souhaitez ajouter des produits ou des articles aux commandes. Le paramètre storeId est obligatoire pour vérifier si l'article est disponible en magasin. Une fois que vous avez spécifié le paramètre storeId, il est placé dans la mémoire pour une utilisation ultérieure.
- catEntryId_i
- Identificateur d'une entrée de catalogue à utiliser pour créer un nouvel article de commande.
- partNumber_i
- Si ce paramètre est précisé, catEntryId_i est ignoré. Si les paramètres partNumber_i et
memberId_i sont précisés, ils déterminent une entrée de catalogue en sélectionnant les colonnes
PARTNUMBER et MEMBER_ID dans la table CATENTRY. Cette instruction fonctionne comme si l'identificateur de l'entrée de
catalogue était considéré comme la valeur de catEntryId_i.
- memberId_i
- Identificateur du membre qui possède le catalogue concerné par la commande.
- attrName_i
- Tout attribut distinct défini pour l'article.
- attrValue_i
- Valeur de l'attribut dans attrName.
- quantity_i
- Quantité de l'article à ajouter à la commande. Ce paramètre est obligatoire lorsque sont spécifiés les paramètres
catEntryId_i ou partNumber_id. Il est facultatif lorsque OrderItemId_i est spécifié.
- UOM_i
- Unité de mesure pour quantity_i. Cette valeur doit correspondre à une des clés principales de la table QTYUNIT. Lorsqu'elle n'est pas précisée, c'est la valeur de la colonne QUANTITYMEASURE de la table CATENTSHIP pour la rangée ayant
la même valeur CATENTRY_ID que l'OrderItem qui est utilisée, et la valeur du paramètre quantity_i est multipliée par la
colonne NOMINALQUANTITY de la même rangée dans la table CATENTSHIP.
- addressId_i
- Identificateur de l'adresse d'expédition des produits et articles.
- shipModeId_i
- Numéro de référence du mode d'expédition utilisé pour le produit ou l'article.
- comment_i
- Commentaire à associer aux articles de commande créés ou mis à jour.
- contractId_i
- ID du contrat associé à la commande.
- field1_i
- Valeur entière réservée au magasin.
- field2_i
- Valeur de type texte réservée au magasin. Ce paramètre peut contenir 254 caractères au maximum.
- offerId_i
- ID d'offre associée à la commande.
- orderId
- Identificateur généré de manière interne qui spécifie zéro ou plusieurs articles pour une mise à jour, à l'aide des références de commande ou de
l'une des abréviations "**", ".", "*", ".t", "*t". Reportez-vous à la
rubrique Abréviations de commande pour obtenir une description de ces abréviations.
Une nouvelle commande en attente est créée s'il n'en existe pas pour un magasin particulier. Si plusieurs commandes
en attente sont spécifiées, les entrées d'article sont créées ou mises à jour pour chacune des commandes spécifiées.
- outOrderName
- Indique les noms des combinaisons nom-valeur à ajouter à l'URL de réacheminement. Les valeurs des combinaisons nom-valeur sont les références des commandes
créées ou mises à jour.
- outOrderItemName
- Indique les noms des combinaisons nom-valeur à ajouter à l'URL de réacheminement. Les valeurs des combinaisons nom-valeur ajoutées sont les références des
articles créés ou mis à jour.
- listId
- ID de la liste d'articles. Lorsque vous spécifiez ce paramètre, l'instruction OrderItemUpdate crée une
nouvelle commande contenant tous les articles de la liste. Vous pouvez utiliser l'une de ces abréviations
spéciales : ".t", et "*". Reportez-vous à la rubrique Abréviations de
commande pour obtenir une description.
- orderDesc
- Spécifie la description de la nouvelle commande créée par cette instruction.
- remerge
- Liste des OrderItems qui doivent être fusionnés avec d'autres OrderItems de la même commande et avec le même
attribut correlationGroup, si cela est possible. Les OrderItems ne fusionnent pas, à moins que leur InventoryStatus ne soit "NALC", ou qu'ils soient spécifiés par un ou plusieurs paramètres tels que allocate, backorder et reverse.
- merge
- Liste des OrderItems qui doivent être fusionnés avec d'autres OrderItems de la même commande si possible, sans distinction d'attributs correlationGroup.
- check
- Liste des OrderItems qui doivent être contrôlés par l'instruction d'activité CheckInventoryAvailability.
- allocate
- Liste des OrderItems qui doivent être attribués à partir d'un stock existant.
- backorder
- Liste des OrderItems qui doivent être attribués à partir d'un stock prévu lorsqu'ils ne sont pas attribués à partir
d'un stock existant.
- reverse
- Liste des OrderItems dont les attributions doivent être préparées (en d'autres termes, les attributions doivent être retirées du stock existant ou prévu concerné).
- configurationId_i
- Si l'OrderItem représente un kit dynamique configuré, c'est l'ID de configuration.
Remarque :
les paramètres remerge, merge, check, allocate, backorder et reverse sont applicables uniquement si le stock ATP est activé (voir la colonne ALLOCATIONGOODFOR dans la table STORE). Ils
représentent les listes d'articles de commande (OrderItems) qui seront transmises à l'instruction AllocateInventory, qui
appelle les instructions CheckInventoryAvailability, AllocateExistingInventory, AllocateExpectedInventory,
DeallocateExistingInventory et DeallocateExpectedInventory, comme indiqué ci-après. Ces paramètres acceptent également les
abréviations d'OrderItem, qui sont présentées en détails dans la rubrique d'aide Instructions du
sous-système commandes.
Les valeurs par défaut des paramètres ATP sont les suivantes :
- remerge=*n
- merge=*n
- check=***
- allocate=*n
- backorder=*n
- reverse=*n
Exemple 1
L'exemple ci-après crée un enregistrement pour l'expédition d'un exemplaire
d'une entrée de catalogue portant le numéro de référence 18 et un attribut de monogramme
CJK. Cet enregistrement de livraison s'ajoute aux commandes courantes en attente du client. L'instruction OrderItemDisplay est appelée lorsque cette instruction aboutit.
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?addressId=2
&catEntryId=18&attrName=monogram&attrValue=CJK&quantity=1&shipModeId=4
&URL=OrderItemDisplay
Exemple 2
L'exemple suivant ajoute dix unités du produit portant le numéro de référence 2
à toutes les commandes du client actuellement en attente. L'instruction OrderItemDisplay est appelée lorsque cette instruction aboutit.
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?catEntryId=2
&quantity=10&orderId=*&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
Exemple 3
L'exemple ci-après met à jour trois ID d'OrderItem.
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?URL=OrderItemDisplay
&quantity_1=2&quantity_2=7&orderItemId_1=117&orderItemId_2=118
&orderItemId_3=113&quantity_3=2
Comportement
- L'instruction appelle ResolveOrdersCmd avec le paramètre d'entrée orderId afin d'obtenir une liste des commandes. Si l'orderId n'est pas précisé,
la valeur par défaut est "." (les commandes actuellement en attente).
- L'instruction s'exécute de la façon suivante pour chaque groupe d'énumération 'i' des paramètres :
- Si le paramètre orderItemId_i est précisé, les paramètres partNumber_i et
catEntryId_i sont ignorés. L'instruction essaie de mettre à jour l'article commandé.
- Si le paramètre partNumber_i est précisé, le paramètre catEntryId_i est ignoré. L'instruction utilise partNumber_i avec le paramètre en option memberId_i pour chercher l'entrée du catalogue. Si le memberId_i n'est pas précisé, le member ID par défaut est le member ID du propriétaire du magasin.
- Si le paramètre orderItemId_i n'est pas précisé et que ni le paramètrepartNumber_i ni le paramètre catEntryId_i ne le sont, l'instruction tente de créer un nouvel article commandé et de l'insérer dans toutes les commandes résolues. Si la liste des commandes résolues est vide, une nouvelle commande en attente sera créée.
- Lorsqu'une nouvelle commande est créée, le member ID de la nouvelle commande est attribué à l'utilisateur courant
dans le contexte de l'instruction et la devise est également choisie parmi celle du contexte d'instruction.
- Lorsqu'il crée un nouvel article commandé, le paramètre quantity_i est exigé et doit être un numéro positif. Le member ID et la devise de l'article commandé sont programmés pour être les mêmes que les member ID et devise de la commande.
Le storeId est également exigé.
- Si le même groupe d'énumération 'i' est spécifié plus d'une fois, un seul sera efficace, les autres seront ignorés.
- L'instruction utilise le reste des paramètres pour mettre à jour l'article commandé, qu'elle mette à jour l'article de commande existant lorsque orderItemId_i est spécifié, ou qu'elle crée de nouveaux articles de commandes lorsque partNumber_i ou catEntryId_i sont spécifiés.
- Si le paramètre addressId_i n'est pas précisé pour les utilisateurs inscrits, la valeur par défaut sera l'addressId dans la table ADDRESS (où la colonne d'ETAT possède une valeur P et la valeur dans la colonne SURNOM est le login ID de l'utilisateur à partir de la colonne LOGONID dans la table USERREG). Si l'adresse ne peut être trouvée dans la table d'ADDRESS, l'address_id sera NULL pour l'article commandé dans la table ORDERITEMS.
- Si la quantity_i est zéro, l'article commandé est supprimé des commandes.
- Si le paramètre shipModeId_i n'est pas indiqué, la valeur par défaut est prise à partir de la table STOREDEF.
- L'instruction d'activité GetContractUnitPriceCmd est appelée afin d'obtenir le prix contractuel du produit ou de
l'article en utilisant les accords commerciaux (contrats) précisés ou tous ceux pouvant être utilisés par le
membre qui passe la commande, sauf pour les articles commandés qui ont été générés ou dont le prix a été
entré manuellement (remplacé par l'administrateur ; reportez-vous à la colonne PREPAREFLAGS de la table
ORDERITEMS pour plus de détails). Tous les accords commerciaux d'entrée (contrats) à utiliser seront contrôlés pour vérifier qu'ils appliquent des modes de paiement compatibles.
La devise est toujours la même que celle de la commande.
- Chaque commande dans laquelle un ou plusieurs articles commandés ont été remis à jour ou insérés est déverrouillée et les zones lastUpdate sont mises à jour avec l'actuel horodatage.
- Après que tous les groupes d'énumération ont été exécutés, l'instruction détermine un centre de
distribution et vérifie le stock disponible pour tous les articles commandés modifiés ou créés. Si le stock ATP est activé, elle appelle AllocateInventoryCmd. Sinon, elle appelle ResolveFulfillmentCenterCmd, qui est compatible en amont.
- L'instruction d'activité ExtendOrderItemProcessCmd est appelée pour exécuter d'autres traitements afin de répondre à
toute demande unique.
- Un RedirectView est défini, qui sera redirigé vers l'URL spécifiée.
Conditions d'exception
- Selon l'erreur, différentes tâches d'exception sont appelées.
- Si une valeur de paramètre est non valide, l'instruction lance ECApplicationException avec un message:_ERR_INVALID_INPUT et un message d'erreur: RLInvalidInputErrorView.
- Si le partNumber est précisé et qu'il n'est pas disponible dans le catalogue, l'instruction lance ECApplicationException avec un message:_ERR_PROD_NOT_EXISTING et un message d'erreur: RLBadPartNumberErrorView
- ECApplicationException sera également lancée si les erreurs suivantes se produisent :
- Les accords commerciaux d'entrée (contrats) sont non valides ou non admissibles pour l'utilisation.
- Les accords commerciaux (contrats) en cours d'utilisation dans la commande appliquent des modes de paiement incompatibles.
- Les listes de prix ne peuvent pas être extraites.
- Si ATP n'est pas activé, l'instruction ResolveFulfillmentCenterCmd doit lancer ECApplicationException avec un message : _API_BAD_INV et une fenêtre d'erreur :
ResolveFulfillmentCenterErrorView.