Deprecated feature

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.

Ce diagramme affiche la structure de l'adresse URL OrderItemAdd.

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.

ATP inventory : Les paramètres 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.
Valeurs de paramètre ATP par défaut :
  • 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

L'exemple suivant ajoute une offre groupée dont les constituants sont les suivants :
  • 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

L'exemple suivant ajoute deux produits avec plusieurs attributs à un panier. La première entrée de catalogue comporte deux attributs et la deuxième entrée de catalogue comporte trois attributs :

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

Pour tous les nouveaux articles :
  • 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
Remarque : Si vous prévoyez d'intégrer HCL Commerce et le service de gestion des commandes d'IBM, vous devez utiliser le modèle de stock DOM. Si votre affectation de stock utilise un stock non ATP et que votre intégration utilise le service de gestion des commandes d'IBM, votre affectation de stock peut être modifiée en stock DOM dans HCL Commerce dans le cadre de la configuration de l'intégration. Lorsque ce changement se produit, les clients peuvent de nouveau ajouter des articles en rupture de stock à leur panier. Toutefois, avec l'intégration, les clients ne peuvent pas soumettre leur panier en vue du traitement de la commande avant que l'affectation de stock pour l'article en rupture de stock ne soit émise par le service de gestion des commandes d'IBM.

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 :
    1. Les accords commerciaux d'entrée ne sont pas valides ou admissibles à l'utilisation.
    2. Les accords commerciaux utilisés dans la commande appliquent des modes de paiement incompatibles.
    3. 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.