URL OrderItemUpdate
L'URL OrderItemUpdate met à jour les articles de commande d'une commande existante..
URL
OrderItemUpdate
Commande de contrôleur
com.ibm.commerce.orderitems.commands.OrderItemUpdateCmd
Classe d'implémentation
com.ibm.commerce.orderitems.commands.OrderItemUpdateCmdImpl
Commandes appelées

Structure de l'adresse URL
- http:// host_name/ path/
- Nom entièrement qualifié de votre Transaction server et du chemin de configuration.
Valeurs des paramètres
Les paramètres qui ne sont pas marqués comme nécessaires sont facultatifs. Les paramètres facultatifs servent à la personnalisation.
- forUser
- ID de connexion de l'utilisateur pour lequel l'adresse URL sera exécutée. Seul un utilisateur habilité à traiter les commandes peut indiquer ce paramètre.
- forUserId
- Identique à forUser, mais identifiant l'utilisateur par son ID interne, répertorié dans la table USERS.
- langId
- Définit ou redéfinit la langue préférée pour la durée de la session ; les langues prises en charge dans le magasin sont répertoriées dans le tableau .STORELANG
- URL
- Obligatoire : Adresse URL à appeler une fois que la commande a abouti.
- orderItemId_ i
- Identificateur de l'OrderItem à mettre à jour. Si spécifiés, les paramètres catEntryId_i et partNumber_i (pour la même valeur de i) sont ignorés.
- storeId
- Identificateur du magasin, qui n'est obligatoire que si vous souhaitez ajouter des produits ou des articles aux commandes. Le storeId est tenu de vérifier si l'article est disponible dans le magasin. Si vous avez spécifié le storeId une fois, il est mis en cache pour une utilisation future.
- catEntryId_ i
- Identificateur d'une entrée de catalogue à utiliser pour créer un nouvel OrderItem.
- partNumber_ i
- Si le numéro de référence est défini, le paramètre catEntryId_i est ignoré. Lorsque les paramètres partNumber_i et memberId_i sont spécifiés, ils déterminent une entrée de catalogue en sélectionnant les colonnes PARTNUMBER et MEMBER_ID dans la table CATENTRY. Cette commande se comporte comme si l'identificateur de cette entrée de catalogue était spécifié comme valeur pour catEntryId_i.
- expandConfigurationId_ i
- S'il est spécifié, ajoutez un OrderItem pour chaque composant identifié par ce paramètre dont l'attribut orderItemId est nul.
- memberId_ i
- Identificateur du membre propriétaire du catalogue où la commande sera passée. Pour atteindre la compatibilité avec les versions précédentes de HCL Commerce, définissez memberID sur *storeOwner. Cette action spécifie le memberID du propriétaire de l'objet Store actuel.
- attrName_ i
- Tout attribut distinct défini pour l'article. Ce paramètre peut être utilisé plusieurs fois.
- attrValue_ i
- Valeur de l'attribut dans attrName. Ce paramètre peut être utilisé plusieurs fois.
- quantity_ i
- Quantité de l'article à ajouter à la commande. Ce paramètre est requis lorsque catEntryId_i ou partNumber_id sont spécifiés. Il est facultatif lorsque OrderItemId_i est spécifié.
- UOM_ i
- Unité de mesure pour quantity_i. Cette valeur doit correspondre à l'une des clés primaires de la table QTYUNIT. Lorsqu'il n'est pas spécifié, la valeur de la colonne QUANTITYMEASURE de la table CATENTSHIP pour la ligne ayant la même CATENTRY_ID que l'objet OrderItem est utilisée, et la valeur du paramètre quantity_i est multipliée par la colonne NOMINALQUANTITY de la même ligne dans la table CATENTSHIP.
- ADDRESS_ID i
- Identificateur de l'adresse à laquelle les produits et les articles sont expédiés.
- SHIPMODE_ID i
- Numéro de référence du mode d'expédition à utiliser pour le produit ou l'article.
- comment_ i
- Commentaire à inclure dans les articles de commande créés ou mis à jour.
- contractId_ i
- ID du contrat associé à la commande. Ce paramètre peut être utilisé plusieurs fois.
- Zone1 i
- Valeur d'entier réservée au magasin.
- Field2 i
- Valeur de texte réservée au magasin. Ce paramètre admet jusqu'à 254 caractères.
- offerId_ i
- ID de l'offre associée à la commande. Ce paramètre peut être utilisé plusieurs fois.
- orderId
- Il s'agit d'un identificateur généré en interne qui spécifie zéro ou plusieurs commandes à mettre à jour, à l'aide des numéros de référence de commande ou de l'une des abréviations spéciales "**", ".", "*", ".t", "*t". Voir Abréviations de commande pour obtenir une description de ces abréviations. S'il n'existe pas de commandes en attente pour un magasin particulier, une nouvelle commande en attente sera créée. Si plusieurs commandes en attente sont spécifiées, les entrées d'article de commande seront créées ou mises à jour pour chacune des commandes spécifiées.
- outOrderName
- Définit les noms des paires nom-valeur à ajouter à l'URL de redirection. Les valeurs des paires nom-valeur ajoutées sont les numéros de référence des commandes créées ou mises à jour.
- outOrderItemName
- Définit les noms des paires nom-valeur à ajouter à l'URL de redirection. Les valeurs des paires nom-valeur ajoutées sont les numéros de référence des articles de commande créés ou mis à jour
- listId
- ID de liste d'articles présélectionnés. Lorsque vous spécifiez ce paramètre, l'instruction OrderItemUpdate crée une nouvelle commande qui contient tous les articles de la liste. Vous pouvez utiliser l'une des abréviations spéciales "." et "*". Voir abréviations du catalogue pour obtenir une description.
- orderDesc
- Spécifie la description de la nouvelle commande créée par cette instruction.
- continue
- Contrôle si la mise à jour de l'article de commande se poursuit lorsqu'un ou plusieurs articles ne peuvent pas être créés ou mis à jour. La valeur 0 termine et annule l'exécution de la commande si un article ne peut pas être créé ou mis à jour dans la commande cible ; la valeur 1 ignore l'opération de création ou de mise à jour de cet article et poursuit l'exécution. La valeur par défaut est 0.
- orderComment
- Définit le commentaire de la commande, s'il est indiqué.
- remerge
- Liste d'articles d'une commande à fusionner avec d'autres articles de la même commande, dotés, si possible, du même attribut correlationGroup. Les OrderItems ne sont pas fusionnés à moins que leur InventoryStatus soit "NALC", ou qu'ils ne soient spécifiés par un ou plusieurs paramètres d'attribution, de commande en amont and d'annulation. Ce paramètre peut être utilisé plusieurs fois.
- merge
- Liste des articles d'une commande à fusionner avec d'autres articles de la même commande, quels que soient leurs attributs correlationGroup. Ce paramètre peut être utilisé plusieurs fois.
- vérification
- Liste des OrderItems à vérifier à l'aide de l'instruction de tâche CheckInventoryAvailability. Ce paramètre peut être utilisé plusieurs fois.
- allocate
- Liste des OrderItems à allouer à partir du stock existant. Ce paramètre peut être utilisé plusieurs fois.
- backorder
- Liste des OrderItems qui doivent être attribués à partir du stock prévu s'ils ne sont pas attribués à partir du stock existant. Ce paramètre peut être utilisé plusieurs fois.
- reverse
- Liste des OrderItems dont l'attribution doit être annulée (c'est-à-dire qui ne doivent plus être attribués à partir du stock existant ou prévu). Ce paramètre peut être utilisé plusieurs fois.
- configurationId_ i
- Si l'OrderItem représente un kit dynamique configuré, il s'agit de l'ID de configuration. Ce paramètre peut être utilisé plusieurs fois.
- continue
- Si un OrderItem ne peut pas être créé, - 0 termine et annule l'exécution ; 1 ignore l'opération de création ou de mise à jour de cet article de commande et poursuit l'exécution.
- expandConfigurationId_ i
- Ajoutez plusieurs OrderItems, un par composant identifié par expandConfigurationId_ i dont l'attribut orderItemId est null.
- isExpedited_i
- La valeur par défaut de ce paramètre est N. S'il s'agit de Y, l'article de commande sera marqué comme EXPEDIE.
- calculateOrder
- La valeur par défaut de ce paramètre est 0. S'il s'agit de 1, OrderCalculateCmd sera appelé pour calculer les frais de la commande.
- requestedShipDate_ i
- Marque la date d'expédition demandée pour un orderitem.
- shipInstructions_ i
- Spécifie les instructions d'expédition pour un mode d'expédition.
- shipChargTypeId_ i
- Donne lieu à la stratégie de frais d'expédition, les frais par transporteur ou les frais par commerçant.
- shipCarrAccntNum_ i
- Numéro de compte de transporteur.
- externalId_i
- Identificateur externe unique de la liste de cadeaux.
- giftMessage_ i
- Message fourni par le donateur de cadeaux à la personne inscrite.
- shipToRegistrant_ i
- Spécifie où les cadeaux doivent être livrés. Une valeur de 1 indique que les cadeaux doivent être expédiés directement au déclarant, en utilisant l'adresse fournie lors de la création du profil de la litste de cadeaux.
- doPrice
- Spécifie si la commande doit effectuer les sous-tâches de calcul des prix. Définissez sur effectuer les tâches de prix (Y) ou non (N). Le fait de désactiver de ces tâches peut entraîner de meilleures performances, mais les clients peuvent ne pas obtenir le prix le plus à jour, ou l'autorisation du produit, lorsque des changements se produisent.
- doInventory
- Spécifie si la commande doit effectuer des sous-tâches de calcul de stock. Définissez sur effectuer les tâches de prix (Y) ou non (N). Le fait de désactiver de ces tâches peut entraîner de meilleures performances, mais les clients peuvent ne pas obtenir le niveau de stock le plus à jour lorsque des changements se produisent.
remerge, merge, check, allocate, backorder, et reverse ne sont applicables que si le stock ATP est activé (voir la colonne INVENTORYSYSTEM dans la table STORE). Ils représentent les listes d'OrderItems qui seront transmises à DoInventoryActionCmd, qui appelle l'instruction de tâche AllocateInventory, qui appelle les instructions de tâche CheckInventoryAvailability, AllocateExistingInventory, AllocateExpectedInventory, DeallocateExistingInventory, et DeallocateExpectedInventory comme indiqué ci-dessus. Ces paramètres acceptent les abréviations OrderItem, détaillées dans l'aide relative aux adresses URL de sous-système de gestion de commande.Les valeurs de paramètre ATP par défaut sont les suivantes :
remerge=*nmerge=*ncheck=***allocate=*nbackorder=*nreverse=*n
Exemple 1
L'exemple suivant crée un enregistrement d'expédition pour une unité d'une entrée de catalogue avec le numéro de référence 18 et a un attribut de monogramme CJK. Cet enregistrement d'expédition est ajouté aux commandes en attente actuelles du client. Lorsque l'instruction se termine, l'instruction OrderItemDisplay est appelée.
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 d'entrée de catalogue numéro 2 à toutes les commandes en attente actuelles du client. Lorsque l'instruction se termine, l'instruction OrderItemDisplay est appelée.
http://myhostname/webapp/wcs/stores/servlet/OrderItemUpdate?catEntryId=2
&quantity=10&orderId=*&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
Exemple 3
L'exemple suivant 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
Vérifiez si la commande est verrouillée par le CSR en cours. Si la commande n'est pas verrouillée et appelée par un CSR, verrouillée par un autre CSR, une exception est émise.
- Mettez à jour l'article de commande existant avec l'une des informations suivantes transmises à : requestedShipDate, isExpedited, tieCode, quantity, correlationGroup, itemSpecId, comments, description, field1, field2
- Enregistrez le nouvel article de commande touché
- Si la quantité est 0, supprimez l'article de commande et appelez DoInventoryActionCmd pour inverser la mise à jour du stock
- Si l'article de commande est un kit ou un package, appelez AddOrderItemComponentsCmd pour mettre à jour les listes de composants
- Mettez à jour les informations d'expédition au niveau de la commande :
- Pour tous les articles de commande de la commande :
- Mettez à jour la requestedShipDate si elle est transmise pour l'article de commande
- Enregistrez le nouvel article de commande touchéNotes :
- Lorsque shipModeId et addressId sont transmis, le shipModeId n'est mis à jour que si l'addressId transmis est identique à l'addressId existant de l'article de commande. Si les valeurs addressId ne sont pas identiques, le shipModeId n'est pas mis à jour.
- Lorsqu'un seul shipModeId ou addressId est transmis, ce shipModeId ou cet addressId est mis à jour en conséquence.
- Pour tous les articles de commande de la commande :
Copiez les articles de la liste d'envies spécifiée pour commander les articles
Mettez à jour les valeurs comments, description, et shipAsComplete de la commande
- Appelez ResolveOrderItemPriceCmd pour calculer le meilleur prix et mettre à jour le total de la commande.
- Transmettez le paramètre doPrice à ResolveOrderItemPriceCmd pour contrôler si les articles de commande peuvent passer à nouveau les prix.
- Appelez UpdateShippingAddressCmd pour mettre à jour l'adresse d'expédition
- Mettre à jour le mode d'expédition
- Appelez ValidateTradingPaymentCmd pour valider le mode de paiement compatible avec l'accord commercial
- Si doInventory = Y, appelez DoInventoryActionCmd pour mettre à jour les centres de distribution et vérifier le stock disponible
- Appelez UpdateShipInfoCmd pour mettre à jour les instructions d'expédition, le numéro de compte d'expédition et le type de frais d'expédition
- Appelez RaiseOrderEventCmd pour déclencher un ORDERITEM_CREATION_EVENT ou ORDERITEM_UPDATE_EVENT
- Si l'indicateur calculateOrder est défini :
- Appelez OrderCalculateCmd pour effectuer des calculs en fonction des calUsageIds transmis
- Appelez ExtendOrderItemProcessCmd pour exécuter n'importe quelle logique de personnalisation
Conditions d'exception
Différentes tâches d'exception sont appelées en fonction de l'erreur.
- Si une valeur de paramètre est incorrecte, la commande émet une ECApplicationException avec le message : _ERR_INVALID_INPUT et la vue d'erreur : InvalidInputErrorView.
- Si le partNumber est spécifié mais qu'il ne peut pas être trouvé dans le catalogue, l'instruction émet une ECApplicationException avec le message : _ERR_PROD_NOT_EXISTING et la vue d'erreur : badPartNumberErrorView.
- L'exception ECApplicationException est également émise si les erreurs suivantes sont rencontrées :
- Les accords commerciaux d'entrée ne sont pas valides ou admissibles à l'utilisation.
- Les accords commerciaux utilisés dans la commande appliquent des modes de paiement incompatibles.
- Les listes de prix ne peuvent pas être récupérées
- Lors de la vérification du stock d'un magasin non ATP, si un stock suffisant est disponible, la vérification des stocks aboutit. Sinon, la vérification échoue. Si la vérification échoue, ECApplicationException est émise à partir de ResolveFulfillmentCenterCmd avec le message : _API_CANT_RESOLVE_FFMCENTER et la vue d'erreur : ResolveFulfillmentCenterErrorView, à moins que le paramètre continu ne soit spécifié comme 1.
Lors de la vérification du stock d'un magasin ATP, la vérification du stock aboutit si le stock actuel ou le stock prévu est suffisant. Dans les cas où les deux sont insuffisants et où l'article de base ne peut pas être commandé de nouveau dans ce magasin (voir la table STOREITEM), ou si la spécification de l'article a été abandonnée (voir la table ITEMSPC), la vérification du stock échoue et l'ECApplicationException est émise depuis l'instruction CheckInventoryAvailabilityCmd avec le message : _API_BAD_INV et la vue d'erreur : CheckInventoryErrorView.
- S'il y a plus d'un tel objet CatalogEntry, le numéro de référence est ambigu. L'exception ECApplicationException est émise en spécifiant le message d'erreur ERR_PROD_NOT_EXISTING. Transmettez les paires d'erreur nom-valeur comme suit :
- multiplePartNumberList spécifie les numéros de référence ambigus
- multiplePartNumberQuantityList spécifie les quantités demandées correspondantes, une pour chaque numéro de référence ambigu
- multiplePartPartNumberCatalogEntriesList spécifie les vecteurs des identificateurs CatalogEntry, un pour chaque numéro de référence ambigu. Chaque vecteur contient une liste d'identificateurs CatalogEntry des objets CatalogEntry ayant un numéro de référence ambigu
- Si un orderitem n'est pas associé à une liste de cadeaux et que shipToRegistrant_ i est défini sur 1, une exception est émise.