URL OrderItemAdd
Ajoutez des articles ou des produits à la liste des articles à expédier.
URL
OrderItemAdd
Commande de contrôleur
com.ibm.commerce.orderitems.commands.OrderItemAddCmd
Classe d'implémentation
com.ibm.commerce.orderitems.commands.OrderItemAddCmdImpl
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
- forUser
- ID de connexion de l'utilisateur pour lequel la commande est exécutée. Seuls les utilisateurs disposant des droits permettant de traiter des commandes peuvent spécifier 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 pendant la session. Les langues prises en charge dans un magasin sont répertoriées dans la table STORELANG.
- URL
- Obligatoire : Adresse URL à appeler une fois que la commande a abouti.
- storeId
- Obligatoire : Numéro de référence du magasin, obligatoire parce que vous ne pouvez pas faire d'achats dans un centre commercial.
- catEntryId_i
- Obligatoire : Numéro de référence des articles à mettre dans la commande. Ce paramètre est requis si le client n'a pas de panier. Il n'est pas nécessaire si une commande client existe.
- partNumber_i
- Si ce paramètre est défini, le paramètre catEntryId est ignoré. Les paramètres partNumber et memberId sont utilisés pour déterminer un catentry_id en sélectionnant PARTNUMBER et MEMBER_ID dans la table CATENTRY. Cette instruction applique le numéro de référence à la valeur de catEntryId.
- expandConfigurationId_ i
- Si ce paramètre est spécifié, ajoutez un article de commande pour chaque composant identifié par ce paramètre dont l'attribut orderItemId est null.
- 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 valeur 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.
- quantité_i
- Obligatoire : Quantité de l'article à ajouter à la commande.
- UOM_i
- Unité de mesure pour quantity_i. Cette valeur doit correspondre à l'une des clés primaires de la table QTYUNIT. Lorsqu'elle n'est pas spécifiée, la valeur de la colonne QUANTITYMEASURE de la table CATENTSHIP pour la ligne ayant le même CATENTRY_ID que l'article de commande est utilisée. La valeur du paramètre quantity_i est multipliée par la colonne NOMINALQUANTITY de la même ligne dans la table CATENTSHIP.
- addressId_i
- Numéro de référence de l'adresse à laquelle les produits et articles sont expédiés.
- shipModeId_i
- Numéro de référence du mode d'expédition à utiliser pour le produit ou l'article.
- comment_i
- Commentaire à inclure avec les articles commandés créés ou mis à jour.
- contractId_i
- Identificateur du contrat qui régit la commande auquel l'article est ajouté. Il existe un contrat par défaut pour chaque magasin, mais vous pouvez en configurer d'autres. Ce paramètre peut être utilisé plusieurs fois.
- field1_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
- Identificateur de l'offre qui régit la commande à laquelle l'article est ajouté. Ce paramètre peut être utilisé plusieurs fois.
- orderId
- Identificateur de la commande à laquelle l'article est ajouté. Ce paramètre peut être utilisé plusieurs fois.
- outOrderName
- Spécifie les noms des numéros de référence des commandes créées ou mises à jour à ajouter à l'URL de redirection. Utilisez ce paramètre et outOrderItemName lors de l'enchaînage des commandes. Ce paramètre peut être utilisé plusieurs fois.
- outOrderItemName
- Noms des numéros de référence des articles de commande créés ou mis à jour à ajouter à l'URL de redirection. Ce paramètre peut être utilisé plusieurs fois.
- listId
- ID de liste d'articles présélectionnés. Lorsque vous spécifiez ce paramètre, l'instruction OrderItemAdd crée une commande qui contient tous les articles de la liste.
- orderDesc
- Spécifie la description d'une nouvelle commande créée par cette commande.
- continue
- Détermine si l'ajout des articles de la commande continue lorsqu'un ou plusieurs articles de la commande ne peuvent pas être créés ou mis à jour. Une valeur de 0 termine et annule l'exécution si un article de la commande ne peut pas être créé ou mis à jour dans la commande cible. Une valeur de 1 ignore l'opération de création ou de mise à jour pour cet article de la commande et continue 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. 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.
- vérification
- Liste des articles d'une commande à vérifier à l'aide de l'instruction de tâche CheckInventory. Ce paramètre peut être utilisé plusieurs fois.
- allocate
- Liste des articles d'une commande qui doivent être attribués à partir de l'inventaire existant par l'instruction de tâche AllocateExistingInventory. Ce paramètre peut être utilisé plusieurs fois.
- backorder
- Liste des articles d'une commande qui doivent être commandés en amont par l'instruction de tâche AllocateExpectedInventory. Si le même article d'une commande est spécifié à la fois par les paramètres d'attribution et de commande en amont, il n'est pas commandé en amont s'il peut être alloué. Ce paramètre peut être utilisé plusieurs fois.
- reverse
- Liste des articles d'une commande dont les attributions doivent être annulées (désattribués à partir du stock existant ou prévu, le cas échéant) en appelant les instructions de tâche DeallocateExistingInventory ou DeallocateExpectedInventory. Ce paramètre peut être utilisé plusieurs fois.
- configurationId_i
- Si l'article de commande est un kit dynamique configuré, la valeur représente l'ID de configuration. Ce paramètre peut être utilisé plusieurs fois.
- correlationGroup_i
- Groupe auquel l'article de commande est associé. Normalement, le paramètre correlationGroup a la même valeur qu'OrderItemID. Les OrderItems dont l'attribut correlationGroup a la même valeur représentent le même objet que celui choisi par le client. La valeur correlationGroup peut être définie et propagée lorsque les articles de la commande sont fractionnés (par centre de distribution, par exemple) lorsque le stock est attribué, ou quand un devis de prix est reçu pour un article de commande. Lorsqu'un article de commande est fractionné au moment de l'allocation du stock, le nouvel article de commande hérite de la valeur correlationGroup de l'article d'origine. Dans le cas d'un devis, l'article de commande hérite de la valeur correlationGroup de l'article correspondant dans la commande mère.
- expandConfigurationId_i
- Ajoutez plusieurs articles de commande, un par composant identifié par expandConfigurationId_ i dont l'attribut orderItemId est null.
- orderComment
- Définit l'attribut de commentaire de la commande.
- isExpedited_i
- La valeur par défaut est N. Si la valeur est définie sur Y, l'orderitem est marqué comme EXPEDITED.
- calculateOrder
- La valeur par défaut est 0. Si la valeur est 1, OrderCalculateCmd est appelé pour calculer les frais de la commande. Si la valeur est 0, les frais de la commande ne sont pas calculés dans cette commande.
- requestedShipDate_i
- Marque la date d'expédition demandée pour un orderitem.
- shipInstructions_i
- Indique les instructions d'expédition pour un shipmode.
- 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 sont expédiés directement à la personne inscrite en utilisant l'adresse qui est fournie pendant la création de profil de liste de cadeaux.
- doPrice
- Spécifie s'il faut ou non effectuer des 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.
Pour plus d'informations sur les instructions de tâche appelées par l'URL OrderItemAdd, voir OrderItemBaseCmdImpl.
remerge, merge, check, allocate, backorder, et reverse ne sont applicables que si le stock ATP est activé (voir la colonne STORE.INVENTORYSYSTEM dans la table STORE). Elles représentent des listes d'articles de commande transmises à l'instruction de tâche DoInventoryAction. Cette commande appelle AllocateInventory, qui appelle CheckInventoryAvailability, AllocateExistingInventory, AllocateExpectedInventory, DeallocateExistingInventory et DeallocateExpectedInventory comme indiqué dans la liste suivante. 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.- remerge=*n
- merge=*n
- check=***
- allocate=*n
- backorder=*n
- reverse=*n
- Si un article de commande n'est pas associé à une liste de cadeaux et que shipToRegistrant_ i est défini sur 1, une exception est émise.
Plusieurs articles lors d'une transaction
La commande peut gérer plusieurs articles lors d'une transaction. Les articles multiples sont spécifiés à l'aide du groupe d'énumérations 'i'. Si vous souhaitez mettre à jour plusieurs articles de commande, vous pouvez spécifier orderItemId_i en tant que paramètres. Par exemple, i peut être 1, 2 ou 3. Pour plus d'informations sur la gestion de plusieurs articles, voir OrderItemAddCmd.
Exemple 1
L'exemple suivant ajoute trois unités du produit portant le numéro de référence 24 à chacune des commandes en attente actuelles du client qui sont créées dans le magasin qui porte l'entrée de catalogue 24. L'exemple indique qu'ils doivent être expédiés à l'adresse portant le numéro de référence 2, puis appelle l'instruction OrderItemDisplay.
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?addressId=2
&URL=/webapp/wcs/stores/servlet/OrderItemDisplay&catEntryId=24&quantity=3
Exemple 2
L'exemple suivant ajoute dix unités de l'entrée de catalogue avec le numéro de référence 2 à la nouvelle commande en cours du client. Le paramètre orderId est ajouté à l'URL de redirection ; sa valeur est le numéro de référence de la commande créée, et l'instruction OrderItemDisplay est appelée.
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=2&quantity=10
&orderId=**&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
Exemple 3
- Article 312200001
- Article 312200301
- Produit 312200200 avec attribut 312200201
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId_1=312200001
&quantity_1=1&shipModeId_1=1&catEntryId_2=312200301&quantity_2=1
&shipModeId_2=1&catEntryId_3=312200200&attrName_3=312200201
&attrValue_3=Value+2200200+1&quantity_3=1&shipModeId_3=1&URL=OrderItemDisplay
Exemple 4
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId_1=111&attrName_1=1
&attrValue_1=a&attrName_1=2&attrValue_1=b&quantity_1=1&catEntryId_2=222&attrName_2=21
&attrValue_2=aa&attrName_2=22&attrValue_2=bb&attrName_2=33&attrValue_2=cc&quantity_2=1
&URL=OrderItemDisplay
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.
Appelez ResolveSkuCmd (commande catalogue) pour résoudre le SKU et vérifiez si l'entrée du catalogue est achetable dans ce magasin.
Appelez ResolveOrdersCmd pour résoudre les ID de commande. Si aucune commande n'est résolue, appelez OrderCreateCmd pour créer une commande.
Créez un article de commande avec les informations si elles sont transmises : catEntryId/partNumber, requestedShipDate, isExpedited, quantity, correlationGroup, comments, orderDesc, field1, field2, et tous les autres paramètres.
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 fait que le mode de paiement est 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
Vous pouvez personnaliser votre processus d'ajout au panier pour empêcher les clients d'ajouter des articles en rupture de stock à leurs paniers lorsque votre magasin utilise un modèle de stock DOM. Le processus d'ajout au panier lorsqu'un modèle de stock DOM est utilisé inclut une commande vide ( DOMValidateInventoryStatusCmd) que vous pouvez utiliser dans une personnalisation pour vérifier le statut de stock d'un article dans la colonne de base de données ORDERITEMS.INVENTORYSTATUS. Si le stock n'est pas affecté (valeur de NALC), l'implémentation de l'instruction émet une exception pour empêcher l'article d'être ajouté au panier.
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 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. Les paires nom-valeur d'erreur sont transmises 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 d'objets CatalogEntry portant le 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.