URL ReturnItemAdd
Cette URL ajoute des produits à une autorisation de retour de marchandise (RMA).
Structure de l'adresse URL
- http:// host_name/path/
- Nom hôte entièrement qualifié de votre serveur HCL Commerce Server et du chemin de configuration.
Valeurs des paramètres
- forUser
- ID de connexion de l'utilisateur pour lequel l'adresse URL sera exécutée.
- forUserId
- Identique à forUser, mais identifiant l'utilisateur par son ID interne, répertorié dans la table USERS.
- creditAdjustment_ i
- Montant auquel ajuster le montant du crédit du produit. Le format de ce nombre doit s'adapter aux règles d'un objet java.math.BigDecimal. Le nombre doit utiliser un point comme pour séparateur de décimale. Ce montant est placé dans la colonne AJUSTEMENT de la table RMAITEM. Ce paramètre est facultatif et uniquement valide si le paramètre forUserId est spécifié.
- langId
- Définit ou redéfinit la langue préférée pour la durée de la session. Les langues prises en charge pour un magasin sont répertoriées dans la table STORELANG.
- storeId
- Obligatoire : Numéro de référence du magasin.
- orderItemId_ i
- Obligatoire : ID OrderItem, si disponible. Pour retourner un composant qui ne fait pas partie d'un kit dynamique ou statique, ou l'ensemble du kit à partir d'un OrderItem, une valeur doit être spécifiée pour ce paramètre. Pour retourner une partie d'un kit dynamique ou statique qui possède un OrderItem, une valeur doit être spécifiée pour ce paramètre et le paramètre catEntryId_ i.
- catEntryId_ i
- Obligatoire : Entrée de catalogue en cours de retour. Cette valeur doit être un produit ou un article. Les autres valeurs d'entrée de catalogue ne sont pas prises en charge et appellent 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 d'un kit dynamique ou statique qui a un OrderItem, une valeur doit être spécifiée pour ce paramètre et le paramètre orderItem_ i.
- attrName_ i
- N'importe quel attribut distinct défini pour le produit.
- attrValue_ i
- Valeur de l'attribut produit.
- RMAId
- Obligatoire : Identificateur d'une RMA existante à laquelle des articles de retour sont ajoutés. Pour créer une RMA, utilisez "**" comme valeur. Si une valeur n'est pas spécifiée pour ce paramètre, la valeur par défaut est "**".
- quantity_ i
- Obligatoire : La quantité retournée.
- UOM_ i
- Unité de mesure pour quantity_i. Cette valeur doit correspondre à l'une des clés primaires du tableau QTYUNIT. Lorsqu'elle n'est pas spécifiée, la valeur de la colonne QUANTITYMEASURE du tableau CATENTSHIP pour la ligne ayant la même CATENTRY_ID que l'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 le tableau CATENTSHIP.
- comment_ i
- Un commentaire sur l'article en cours de retour.
- reason_ i
- Obligatoire : Le motif de retour, tel que fourni par l'acheteur. Cette valeur se trouve dans la colonne CODE du tableau RTNREASON avec le type de motif 'B' ou 'C'.
- outRMAName
- Nom à utiliser pour la paire nom-valeur qui sera transmise à l'URL redirigée. Ce paramètre est utile pour les commandes de chaînage. Si ce paramètre n'est pas spécifié, la valeur RMAId est utilisée.
- URL
- Obligatoire : Adresse URL à appeler une fois que la commande a abouti.
Exemple
L'exemple suivant ajoute 5 unités de l'article 15 à une nouvelle RMA. Le code de motif de retour est DEFECT. Une fois la RMA créée, elle s'affiche.
http://myhostname/webapp/wcs/stores/servlet/ ReturnItemAdd?;orderItemId_1=15&quantity_1=5&reason_1=DEFECT&RMAId=**&storeId=1;&URL=ReturnDisplay
Comportement
- Si RMAId est défini sur "**", créez une nouvelle RMA. La devise de la nouvelle RMA est définie sur la devise de l'un des articles de retour qui est basé sur un article de commande. S'il n'y a pas d'article de commande retourné (c'est-à-dire que seules les entrées de catalogue sont retournées), la devise est définie sur la devise d'achat de l'appelant. L'ID commercial de la nouvelle RMA est défini sur l'ID commercial de l'un des articles de commande retournés. Si aucun article de commande n'est retourné, le premier ID commercial trouvé dans le contexte de commande (méthode getCurrentTradingAgreements()) est utilisé. Le memberId de la RMA est défini sur l'ID utilisateur dans le contexte de commande.
- Si le RMAId n'est pas défini sur "**", ouvrez la RMA existante et vérifiez qu'elle appartient au magasin actuel.
- Le drapeau PREPARED de la RMA est défini sur 'N'.
- Si le paramètre forUser ou forUserId est spécifié, la RMA doit commencer avec le statut 'EDT', 'PND', 'APP' et le statut est défini sur 'EDT'. Dans le cas contraire, la RMA doit commencer avec le statut "PRC" et le statut est changé en "PRC".
- La commande peut être appelée avec une liste d'OrderItems et d'entrées de catalogue. Le traitement sera réalisé de la manière suivante :
- Si l'OrderItem doit être ajouté à la RMA, ce qui suit se produit :
- Appelle l'instruction de tâche CheckReturnItemInCorrectStateCmd pour vérifier que l'article de commande est dans un état compatible avec un retour.
- Vérifie que la devise de l'OrderItem est la même que la devise de la RMA.
- Vérifie que l'ID commercial de l'article de commande est le même que l'ID commercial de la RMA.
- Vérifie qu'il existe des modalités de retour pour cet article de commande.
- Vérifie que les modalités associées à l'ID commercial et à l'ID membre de l'article de commande sont compatibles avec les modalités associées à la RMA (doivent être identiques). Les modalités associées à la RMA sont calculées à l'aide de l'ID commercial de la RMA et du memberId d'un article de commande retourné ou du memberId de la RMA (si tous les articles retournés existants sont des entrées de catalogue).
- Si catEntryId est spécifié (un retour de kit partiel), appelez l'instruction de tâche ResolveSkuCmd pour résoudre l'ID d'entrée de catalogue et l'ID de spécification de l'article.
- S'il s'agit d'un retour de kit partiel, appelez l'instruction de tâche CalculateReturnItemCreditForCatEntryCmd, sinon appelez l'instruction de tâche CalculateReturnItemCreditCmd.
- Ajoute un article à la RMA et explose l'article de RMA dans les composants d'article RMA. S'il s'agit d'un kit, créez les enregistrements de composants à partir du tableau OICOMPLIST associé à l'article de commande. Sinon, un composant est créé pour l'article retourné.
- Si l'entrée de catégorie doit être ajoutée à la RMA, ce qui suit se produit :
- Appelle l'instruction de tâches ResolveSkuCmd pour résoudre l'ID d'entrée de catalogue et l'id de spécification de l'article.
- La devise de l'article retourné est définie sur la devise de la RMA.
- Appelle l'instruction de tâche CalculateReturnItemCreditForCatEntryCmd pour calculer les montants de crédit.
- Si l'OrderItem doit être ajouté à la RMA, ce qui suit se produit :
- Pour tous les articles, l'instruction de tâche AutoApproveReturnItemCmd est appelée pour voir si l'article peut être automatiquement approuvé. L'article retourné sera défini sur le statut 'PND' ou 'APP' sur la base de l'approbation automatique.
- Les unités de mesure sont gérées de la même manière que la commande OrderItemAdd. La quantité avec les unités de mesure spécifiées sera convertie en une quantité normalisée qui est un multiple de la quantité nominale spécifiée dans la table CATENTSHIP.
- Pour renvoyer un composant qui ne fait pas partie d'un kit dynamique ou statique, ou l'ensemble du kit à partir d'un OrderItem, la commande prend la valeur pour le paramètre orderItemId_ i et ajoute une entrée au tableau RMAITEM et ajoute plusieurs entrées au tableau RMAITEMCMP, pour un kit ou une entrée au tableau RMAITEMCMP. Lorsque les composants d'un kit sont ajoutés au tableau RMAITEMCMP, les composants marqués comme facultatifs (colonne REQUIRED du tableau OICOMPLIST définie sur 'N') ne sont pas enregistrés.
- Pour renvoyer une partie d'un kit dynamique ou statique qui a un OrderItem, la commande prend les valeurs du paramètre orderItemId_ i et du paramètre catEntryId_ i et ajoute une entrée au tableau RMAITEM et une entrée au tableau RMAITEMCMP.
- Pour renvoyer un composant qui n'est pas un OrderItem, la commande prend les valeurs du paramètre catEntryId_ i et ajoute une entrée au tableau RMAITEM et une entrée au tableau RMAITEMCMP.
- Seules les entrées de catalogue qui sont des produits ou des articles peuvent être retournées.
- Une fois l'opération terminée, appelle l'adresse URL indiquée.
- Appelez l'instruction de tâche ExtendReturnItemAddCmd.
Conditions d'exception
- Si la devise de l'article de commande n'est pas la même que la devise de la RMA, une ECApplicationException est générée avec le message _ERR_ITEM_RMA_CURRENCY_MISMATCH.
- Si l'article de commande n'est pas dans l'état correct, déterminé par l'instruction de tâche CheckReturnItemInCorrectStateCmd, une ECApplicationException est générée avec le message _ERR_ORD_ITEM_NOT_RETURNABLE.
- Une ECApplicationException est levée avec le message _ERR_RMA_ININVALID_STATE_FOR_COMMAND dans les circonstances suivantes :
- Si les paramètres forUser et forUserId ne sont pas spécifiés, et que le statut de la RMA n'est pas défini sur 'PRC'
- Si l'un ou l'autre paramètre (forUser ou forUserId) est spécifié et que le statut de la RMA n'est pas défini sur 'EDT', 'PND' ou 'APP'.
- Si l'ID commercial de l'article de commande n'est pas le même que l'ID commercial de la RMA, une ECApplicationException est générée avec le message _ERR_ITEM_RMA_TRADING_MISMATCH.
- S'il n'y a pas de modalités de retour pour cet article de commande, une ECApplicationException est générée 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, une ECApplicationException est générée avec le message _ERR_ITEM_RMA_TERMS_MISMATCH.