Comando ReturnItemAdd
Questo comando aggiunge prodotti a una RMA (return merchandise authorization).

Valori dei parametri
- http://nome_host/percorso/
- (Obbligatorio) Il nome completo del WebSphere Commerce Server e il percorso di configurazione.
- forUser
- L'ID di collegamento dell'utente per conto del quale viene eseguito il comando; solo una persona con l'autorizzazione per elaborare ordini può specificare questo parametro.
- forUserId
- Come per forUser, ma con identificazione dell'utente mediante
l'ID utente interno,
come rilevato nella tabella
USERS.
- creditAdjustment_i
- La quantità mediante la quale rettificare il credito totale del prodotto. Il formato di questo numero deve adattarsi alle regole per un oggetto java.math.BigDecimal. Come separatore decimale per il numero, deve essere utilizzato un punto. Tale quantità è inserita nella colonna ADJUSTMENT della tabella RMAITEM. Tale parametro è facoltativo ed è valido soltanto se viene specificato il parametro forUserId.
- langId
- Imposta o reimposta la lingua prescelta per la durata della sessione; le lingue supportate per un negozio si trovano nella tabella STORELANG
- storeId
- (Obbligatorio) Il numero di riferimento del negozio.
- orderItemId_i
- (Obbligatorio) L'ID dell'OrderItem, se disponibile. Per restituire un componente che non fa parte di un kit dinamico oppure per restituire l'intero kit da un OrderItem, è necessario specificare un valore per questo parametro. Per restituire una parte di un kit dinamico che dispone di un OrderItem, è necessario specificare un valore per questo parametro e per il parametro catEntryId_i.
- catEntryId_i
- (Obbligatorio) L'articolo del catalogo da restituire. Questo valore può essere un prodotto o un articolo. Non sono supportati altri valori delle voci di catalogo e verrà richiamata una eccezione BAD_MISSING_CMD_PARAMETER. Per restituire un componente che non è un OrderItem, è necessario specificare un valore per questo parametro. Per restituire una parte di un kit dinamico che dispone di un OrderItem, è necessario specificare un valore per questo parametro e per il parametro orderItem_i.
- attrName_i
- Un attributo distinto definito per il prodotto.
- attrValue_i
- Il valore dell'attributo del prodotto.
- RMAId
- L'identificatore di una RMA esistente a cui aggiungere gli articoli della restituzione. Per creare una nuova RMA, utilizzare "**" come valore. Se non viene specificato alcun valore per questo parametro, per impostazione predefinita, viene utilizzato **.
- quantity_i
- (Obbligatorio) La quantità da restituire.
- UOM_i
- L'unità di misura per quantity_i. Tale valore deve corrispondere ad una delle chiavi principali nella tabella QTYUNIT. Quando
non viene specificato, viene utilizzato il valore della colonna QUANTITYMEASURE della tabella
CATENTSHIP per la riga con lo
stesso CATENTRY_ID di OrderItem
e il valore del parametro di quantity_i viene moltiplicato tramite la
colonnaNOMINALQUANTITY della stessa riga nella tabella CATENTSHIP.
- comment_i
- Un commento relativo all'articolo restituito.
- reason_i
- (Obbligatorio) Il motivo della restituzione come fornito dall'acquirente. Tale valore può essere rilevato nella colonna CODE della tabella RTNREASON il cui tipo di motivo è in 'B' o 'C'.
- outRMAName
- Il nome da utilizzare per la coppia nome-valore che sarà trasferito all'URL di reindirizzamento. Tale parametro è molto utile per i comandi a catena. Se questo parametro non viene specificato, viene utilizzato il valore del parametro RMAId.
- URL
- (Obbligatorio) L'URL da richiamare quando il comando viene eseguito correttamente.
- forUserId
- L'ID di collegamento dell'utente per conto del quale viene eseguito il comando; solo una persona con un ruolo di sicurezza di rappresentante del servizio clienti può specificare questo parametro. L'utente viene identificato mediante un ID utente interno, come rilevato nella tabella USERS.
Esempio
Nel seguente esempio, 5 unità dell'articolo dell'ordine 15 vengono aggiunte in una nuova RMA. Il codice
motivo della restituzione è DEFECT. Dopo avere creato la
RMA, essa viene visualizzata.
http://myhostname/webapp/wcs/stores/servlet/ReturnItemAdd?
orderItemId_1=15&quantity_1=5&reason_1=DEFECT&RMAId=**&storeId=1
&URL=ReturnDisplay
Azione
- Se RMAId è impostato su "**", creare una nuova RMA. La valuta della
nuova RMA è impostata sulla valuta di uno degli articoli restituiti che si basa su
un articolo dell'ordine. Se non viene restituito nessun articolo dell'ordine
(vengono restituite solo le voci di catalogo), la valuta viene impostata
sulla valuta d'acquisto di colui che chiama. L'ID commerciale
della nuova RMA viene impostato sull'ID commerciale di uno degli articoli dell'ordine
restituiti. Se non viene restituito nessun articolo dell'ordine, viene
utilizzato il primo ID commerciale trovato nel contesto comando
(method getCurrentTradingAgreements()). Il valore
memberId della RMA viene impostato sull'ID utente nel contesto comando.
- Se RMAId non è impostato su "**", aprire la
RMA esistente e verificare che appartenga al negozio corrente.
- L'indicatore PREPARED della RMA è impostato su 'N'.
- Se è specificato il parametro forUser o forUserId,
la RMA deve iniziare con stato 'EDT', 'PND', 'APP' e lo stato è impostato su 'EDT'. In caso contrario,
la RMA deve iniziare con stato 'PRC' e lo stato viene modificato in 'PRC'.
- Il comando può essere richiamato con un elenco di OrderItems e voci di catalogo. Ognuno verrà elaborato nel seguente modo:
- Se l'OrderItem deve essere aggiunto alla RMA, si verifica che:
- Richiama il comando attività CheckReturnItemInCorrectStateCmd per verificare che lo stato dell'articolo dell'ordine consenta la restituzione.
- Verifica che la valuta di OrderItem sia la stessa della valuta della RMA.
- Verifica che l'ID commerciale dell'articolo dell'ordine sia lo stesso dell'ID commerciale della RMA.
- Verifica l'esistenza di termini e condizioni di restituzione per questo articolo dell'ordine.
- Verifica che i termini e le condizioni associati all'ID commerciale
e all'ID membro dell'articolo dell'ordine siano compatibili con i termini e le condizioni
associati alla RMA (gli stessi termini e condizioni). I termini e le
condizioni associati alla
RMA vengono calcolati utilizzando l'ID commerciale della
RMA e il valore memberId di un articolo dell'ordine restituito esistente o il
memberId della RMA (se tutti gli articoli esistenti restituiti sono voci di catalogo).
- Se è specificato catEntryId (una restituzione kit parziale)
richiamare il comando attività
ResolveSkuCmd per risolvere l'ID della voce di catalogo e l'ID specifico dell'articolo.
- Se si tratta di una restituzione parziale del kit, richiamare il comando
CalculateReturnItemCreditForCatEntryCmd,
altrimenti richiamare il comando attività
CalculateReturnItemCreditCmd.
- Aggiunge
un articolo alla RMA ed esplode l'articolo della RMA nell'articolo della RMA corrispondente. Se si tratta di
un kit, creare i record del componente dalla tabella
OICOMPLIST associata all'articolo dell'ordine. Altrimenti,
viene creato un componente per l'articolo restituito.
- Se la voce di catalogo deve essere aggiunta alla RMA, si verifica che:
- Richiama il comando attività ResolveSkuCmd per risolvere l'ID della voce di catalogo e l'ID spec dell'articolo.
- La valuta dell'articolo restituito viene impostata sulla valuta della RMA.
- Richiama il comando attività CalculateReturnItemCreditForCatEntryCmd per calcolare l'ammontare del credito.
- Per tutti gli articoli, viene richiamato il comando attività
AutoApproveReturnItemCmd
per verificare se l'articolo può essere approvato automaticamente. Lo stato
dell'articolo restituito verrà impostato su
'PND' o 'APP' in base all'approvazione automatica.
- Le unità di misura vengono gestite allo stesso modo del comando OrderItemAdd. LA quantità specificata con l'unità di misura verrà convertita in una quantità normalizzata che è un multiplo della quantità nominale specificata nella tabella CATENTSHIP.
- Per restituire un componente che non fa parte di un kit dinamico
o l'intero kit da un OrderItem, il comando assume il valore per il parametro
orderItemId_i ed aggiunge una voce nella tabella
RMAITEM, nonché più voci
nella tabella RMAITEMCMP,
per un kit o una voce nella tabella RMAITEMCMP. Quando i componenti di un
kit vengono aggiunti in una tabella
RMAITEMCMP, i componenti facoltativi
(colonna REQUIRED della tabella OICOMPLIST impostata su 'N') non vengono registrati.
- Per restituire una parte di un kit dinamico che presenta un
OrderItem, il comando assume i valori per i parametri
orderItemId_i e catEntryId_i, aggiunge una voce nella tabella
RMAITEM e una voce nella tabella RMAITEMCMP.
- Per restituire un componente che non è un OrderItem, il comando rileva i valori per il parametro catEntryId_i e aggiunge una voce alla tabella RMAITEM e una voce alla tabella RMAITEMCMP.
- Vengono restituite solo le voci di catalogo che sono prodotti o articoli.
- Una volta completato, imposta il nuovo URL da utilizzare.
- Richiama il comando attività ExtendReturnItemAddCmd.
Condizioni di eccezione
- Se la valuta dell'articolo dell'ordine non è lo stesso della valuta della
RMA, viene generata un'eccezione ECApplicationException con messaggio _ERR_ITEM_RMA_CURRENCY_MISMATCH.
- Se l'articolo dell'ordine non è nello stato corretto, determinato dal comando
attività CheckReturnItemInCorrectStateCmd, viene generata un'eccezione
ECApplicationException con messaggio _ERR_ORD_ITEM_NOT_RETURNABLE.
- Se lo stato della RMA non è impostato su 'PRC' (se il parametro forUser o forUserId non è utilizzato)
o non è impostato su 'EDT', 'PND', 'APP' (se il parametro
forUser o forUserId non è utilizzato)
viene rilevata un'eccezione ECApplicationException con messaggio
_ERR_RMA_IN_INVALID_STATE_FOR_COMMAND.
- Se l'ID commerciale dell'articolo dell'ordine non è lo stesso
dell'ID commerciale della
RMA, viene generata un'eccezione con messaggio
ECApplicationException _ERR_ITEM_RMA_TRADING_MISMATCH.
- Se non vi sono termini
e condizioni di restituzione per questo articolo dell'ordine,
viene generata un'eccezione ECApplicationException con messaggio _ERR_NO_RETURN_TERMCOND.
- Se i termini e le condizioni dell'articolo dell'ordine sono diversi
rispetto ai termini e alle condizioni associate alla RMA,
viene generata un'eccezione ECApplicationException con messaggio
_ERR_ITEM_RMA_TERMS_MISMATCH.