Instruction ReturnItemAdd
Cette instruction ajoute des articles à une autorisation de retour de marchandise (RMA).

Valeurs 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.
- creditAdjustment_i
- Montant par lequel ajuster le crédit du produit. Le format de ce nombre doit suivre les règles de l'objet
java.math.BigDecimal. La décimale doit être marquée par un point. Ce montant se trouve dans la colonne ADJUSTMENT de la table
RMAITEM. Ce paramètre est optionnel et correct lorsque le paramètre
forUserId est spécifié uniquement.
- 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.
- storeId
- (Obligatoire) Référence du magasin.
- orderItemId_i
- (Obligatoire) ID de l'OrderItem, s'il est disponible. Pour retourner un composant qui ne fait pas partie du kit dynamique, ou du kit complet issu d'OrderItem, une valeur doit être spécifiée pour ce paramètre. Pour retourner la partie du kit dynamique disposant d'un OrderItem, une valeur doit être spécifiée pour ce paramètre et pour
catEntryId_i.
- catEntryId_i
- (Obligatoire) Entrée de catalogue retournée. Il doit s'agir d'un produit ou d'un article. D'autres valeurs d'entrée de catalogue ne sont pas prises en charge et vont lancer une exception BAD_MISSING_CMD_PARAMETER. Pour retourner un composant qui n'est pas un OrderItem, une valeur doit être spécifiée pour ce paramètre. Pour retourner une partie du kit dynamique qui dispose d'un OrderItem, une valeur doit être spécifiée pour ce paramètre et orderItem_i.
- attrName_i
- Tout attribut distinct défini pour l'article.
- attrValue_i
- Valeur de l'attribut du produit.
- ID RMA
- L'identificateur d'un RMA existant et dont on doit y ajouter les articles retours. Pour créer un nouveau RMA, utilisez "**" comme valeur. Si aucune valeur n'est spécifiée pour ce paramètre, ** est utilisé par défaut.
- quantity_i
- (Obligatoire) Quantité retournée.
- 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, alors la valeur de la colonne
QUANTITYMEASURE de la table CATENTSHIP pour la rangée avec la même CATENTRY_ID que celle utilisée par OrderItem,
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.
- comment_i
- Commentaire concernant l'article retourné.
- reason_i
- (Obligatoire) Raison du retour, telle qu'elle est donnée par l'acheteur. Cette valeur est disponible dans la colonne CODE de la table RTNREASON avec le type de raison 'B' ou 'C'.
- outRMAName
- Nom à utiliser pour la paire nom-valeur transmise à l'URL de réacheminement. Ce paramètre est utile pour les instructions de chaînage. Si ce paramètre n'est pas spécifié, la valeur du paramètre RMAId est utilisée.
- URL
- (Obligatoire) URL devant être lancée lorsque l'instruction aboutit.
- forUserId
- ID de connexion de l'utilisateur au nom duquel l'instruction est exécutée. Seule une personne jouant le
rôle de représentant du service clientèle peut spécifier ce paramètre. L'utilisateur est identifié par un ID utilisateur interne, tel qu'il se présente dans la table
USERS.
Exemple
L'exemple suivant ajoute 5 unités aux 15 articles de commande à une nouvelle RMA. Le code de cause du retour
est DEFECT. Une fois la RMA créée, elle s'affiche.
http://myhostname/webapp/wcs/stores/servlet/ReturnItemAdd?
orderItemId_1=15&quantité_1=5&cause_1=DEFECT&RMAId=**&storeId=1
&URL=ReturnDisplay
Comportement
- Si RMAId est sur "**", créez une nouvelle RMA. La devise de la nouvelle RMA est définie selon la devise
de l'un des articles retournés de la commande. Si aucun article de la commande n'a été retourné (si, par exemple,
seules des entrées de catalogue ont été retournées), alors la devise est déterminée en fonction de celle du magasin du
demandeur. L'ID commercial de la nouvelle RMA est définie selon l'ID commercial de l'un des articles de la commande
retournée. Si aucun article de la commande n'a été retourné, alors on utilise le premier ID commercial trouvé dans
le cadre de cette commande (méthode getCurrentTradingAgreements()). Le memberId de la RMA correspond à
l'ID de l'utilisateur dans le cadre de l'instruction.
- Si la RMAId n'est pas définie sur "**", ouvrez la RMA existant et vérifiez qu'elle appartienne au magasin
dont il est question.
- L'indicateur PREPARED de la RMA est réglée sur 'N'.
- Si le paramètre forUser ou forUserId est spécifié, la RMA doit démarré avec les états 'EDT', 'PND', 'APP'
et l'état est réglé sur 'EDT'. Autrement, la RMA doit démarré avec l'état 'PRC' et l'état devient 'PRC'.
- L'instruction peut être appelée avec une liste d'OrderItems et d'entrées de catalogue. Chacune d'elles va être traitée de la manière suivante :
- Si l'OrderItem à ajouter au RMA, alors :
- Appelez la commande d'exécution
CheckReturnItemInCorrectStateCmd pour vérifier que l'article de commande est en état d'être retourné.
- Vérifiez que la devise de l'OrderItem est identique à celle de la RMA.
- Vérifiez que l'ID commercial de l'article de commande est identique à l'ID commercial de la RMA.
- Vérifiez qu'il existe des modalités de retour pour ce article de commande.
- Vérifiez que les modalités liées à l'ID commercial et au member Id de l'article de commande
soient compatibles avec les modalités de la RMA (modalités identiques). Les modalités de la RMA sont calculées
en fonction de l'Id commercial de la RMA et du memberId d'un article de commande retourné existant ou le memberId de la
RMA (si tous les articles retournés existants sont dans les entrées de catalogue).
- Si catEntryId est indiqué (retour de kit partiel) alors appelez la commande d'exécution
ResolveSkuCmd pour trouver l'ID de l'entrée de catalogue et l'ID de l'article indiqué.
- S'il s'agit d'un retour de kit partiel alors appelez la commande d'exécution
CalculateReturnItemCreditForCatEntryCmd ou la commande
CalculateReturnItemCreditCmd.
- Ajouter un article à la RMA et isoler cet article dans l'ensemble des composants de la RMA. Si c'est un kit, alors créez les
enregistrements du composant à partir de la table OICOMPLIST
associée à l'article de la commande. Autrement un composant est créé pour l'article retourné.
- Si l'entrée de catégorie doit être ajoutée à la RMA, alors :
- Appelez la commande d'exécution ResolveSkuCmd pour trouver l'ID de l'entrée de catalogue et l'ID de
l'article indiqué.
- La devise de l'article retourné est définie d'après celle de la RMA.
- Appelez la commande d'exécution Calls the CalculateReturnItemCreditForCatEntryCmd
pour calculer les montants du crédit.
- Pour tous les articles, la commande d'exécution
AutoApproveReturnItemCmd
est appelée pour voir si l'article peut être automatiquement accepté. L'article retourné sera défini avec les états
'PND' ou 'APP' selon l'approbation automatique.
- Des unités de mesure sont indiquées de la même manière que l'instruction OrderItemAdd. La quantité accompagnée des unités de mesure précisées va être convertie en quantité normalisée, multiple de la quantité nominale spécifiée dans la table CATENTSHIP.
- Pour retourner un composant qui ne fait pas partie du kit dynamique, ou du kit complet issu d'un OrderItem,
l'instruction prend la valeur du paramètre orderItemId_i puis ajoute une entrée à la table
RMAITEM et ajoute des entrées multiples à la table
RMAITEMCMP pour un kit, ou alors une entrée à la table RMAITEMCMP. Lorsque les composants d'un kit sont ajoutés à la table RMAITEMCMP, ces composants définis comme facultatifs
(colonne REQUIRED de la table OICOMPLIST positionnée sur 'N') ne sont pas enregistrés.
- Pour retourner une partie d'un kit dynamique qui a un OrderItem, l'instruction prend les valeurs
du paramètre i de l'OrderItemId_ et du paramètre i du catEntryId_, puis ajoute une
entrée à la table RMAITEM et une entrée à la table RMAITEMCMP.
- Pour retourner un composant qui n'est pas un OrderItem, l'instruction prend les valeurs du paramètre
catEntryId_i puis ajoute une entrée aux tables RMAITEM et RMAITEMCMP.
- Seules des entrées de catalogue de produits ou d'articles peuvent être retournées.
- A la fin de l'exécution, réachemine jusqu'à l'URL indiquée.
- Appel de l'instruction d'activité ExtendReturnItemAddCmd.
Conditions d'exception
- Si la devise de l'article de commande est identique à celle de la RMA, un
ECApplicationException se déclenche avec le message _ERR_ITEM_RMA_CURRENCY_MISMATCH.
- Si l'article de commande n'est pas dans le bon état, déterminé par l'instruction d'activité
CheckReturnItemInCorrectStateCmd, alors une ECApplicationException se déclenche
avec le message _ERR_ORD_ITEM_NOT_RETURNABLE.
- Si l'état de la RMA n'est pas défini sur 'PRC' (si les paramètres forUser ou forUserId ne sont pas
utilisés) ou n'est pas défini sur 'EDT', 'PND', 'APP' (si les paramètrese forUser ou forUserId ne sont pas
utilisés), alors se déclenche une ECApplicationException avec le message
_ERR_RMA_IN_INVALID_STATE_FOR_COMMAND.
- Si l'Id commercial de l'article de commande est identique à celui de la RMA, un
ECApplicationException se déclenche avec le message _ERR_ITEM_RMA_TRADING_MISMATCH.
- S'il n'existe aucune modalité de retour pour cet article de commande, alors se déclenche une
ECApplicationException avec le message _ERR_NO_RETURN_TERMCOND.
- Si les modalités de l'article de commande sont différentes des modalités associées à la
RMA, alors se déclenche une ECApplicationException avec le message _ERR_ITEM_RMA_TERMS_MISMATCH.