Comando OrderItemAdd
Questo comando consente di aggiungere articoli o prodotti all'elenco di articoli che devono essere spediti.

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.
- langId
- Imposta o reimposta la lingua prescelta per la durata della sessione; le lingue supportate per un negozio si trovano nella tabella STORELANG
- URL
- (Obbligatorio) L'URL da richiamare quando il comando viene eseguito correttamente.
- storeId
- (Obbligatorio) Il numero di riferimento negozio, che è obbligatorio perché non è possibile acquistare da un centro commerciale
- catEntryId_i
- (Obbligatorio) Il numero di riferimento degli articoli da inserire nell'ordine
- partNumber_i
- Se specificato, il parametro catEntryId viene ignorato. I parametri partNumber e memberId vengono utilizzati per determinare un catentry_id selezionando PARTNUMBER e MEMBER_ID nella tabella CATENTRY e quindi questo comando si comporta come numero di riferimento specificato come valore per catEntryId.
- memberId_i
- L'identificativo per il membro proprietario del catalogo in cui verrà effettuato l'ordine.
- attrName_i
- Qualsiasi attributo definito per l'articolo.
- attrValue_i
- Il valore dell'attributo in attrName.
- quantity_i
- (Obbligatorio) La quantità dell'articolo da aggiungere all'ordine.
- UOM_i
- L'unità di misura per quantity_i. Tale valore dovrebbe corrispondere alle chiavi principali nella tabella
QTYUNIT. Quando non viene specificato, allora il valore della colonna QUANTITYMEASURE della tabella
CATENTSHIP per la riga con lo stesso CATENTRY_ID, viene utilizzato come OrderItem,
e il valore del parametro di quantity_i viene moltiplicato tramite la colonnaNOMINALQUANTITY della stessa riga nella tabella CATENTSHIP.
- addressId_i
- Il numero di riferimento dell'indirizzo a cui vengono spediti prodotti e articoli.
- shipModeId_i
- Il numero di riferimento della modalità di spedizione utilizzata per il prodotto o l'articolo.
- comment_i
- Un commento da includere negli articoli dell'ordine creati o aggiornati.
- contractId_i
- L'identificativo del contratto che regola l'ordine a cui vanno aggiunti gli articoli; esiste un contratto predefinito per ciascun negozio ma è possibile impostarne altri
- field1_i
- Un valore intero riservato al negozio.
- field2_i
- Un valore di testo riservato al negozio. Questo parametro accetta fino a
254 caratteri.
- offerId_i
- L'identificativo dell'offerta che regola l'ordine a cui va aggiunto l'articolo
- orderId
- L'identificativo dell'ordine al quale viene aggiunto l'articolo.
- outOrderName
- Specifica i nomi dei numeri di riferimento degli ordini creati o aggiornati, da aggiungere all'URL di reindirizzamento. Utilizzare questo parametro e outOrderItemName per collegare i comandi.
- outOrderItemName
- I nomi dei numeri di riferimento degli articoli dell'ordine creati o aggiornati da aggiungere all'URL di reindirizzamento.
- listId
- L'ID dell'elenco articoli di interesse. Quando viene specificato questo parametro, il comando OrderItemAdd crea un nuovo ordine che contiene tutti gli articoli presenti nell'elenco.
- orderDesc
- Specifica la descrizione dell'ordine per un nuovo ordine creato da questo comando.
- remerge
- Un elenco di OrderItems che devono essere unificati con altri OrderItems nello stesso ordine e con lo stesso attributo correlationGroup, se possibile. OrderItems non sono unificati a meno che InventoryStatus sia "NALC", o non sono specificati da uno o più assegnazioni, backorder e parametri inversi.
- merge
- Un elenco di OrderItems che devono essere unificati con altri OrderItems nello stesso ordine, indipendentemente dall'attributo correlationGroup. OrderItems non sono unificati a meno che InventoryStatus sia "NALC", o non sono specificati da uno o più assegnazioni, backorder e parametri inversi.
- check
- Un elenco di OrderItems che devono essere verificati con il comando di attività CheckInventory.
- allocate
- Un elenco di OrderItems che devono essere assegnati dall'inventario esistente
tramite il comando AllocateExistingInventory.
- backorder
- Un elenco di OrderItems che devono essere messi in backorder, tramite il comando di attività AllocateExpectedInventory. Se viene specificato lo stesso OrderItem tramite sia i parametri di allocate che quelli di backorder,
non viene messo in backorder se non può essere allocato.
- reverse
- Un elenco di OrderItems le cui assegnazioni devono essere rilasciate (ovvero, deve essere annulata l'assegnazione dell'inventario esistente o atteso) richiamando il comando DeallocateExistingInventory
o i comandi di attività DeallocateExpectedInventory.
- configurationId_i
- Se l'OrderItem rappresenta un Kit dinamico configurato, questo è l'ID di configurazione.
Nota:
I parametri remerge, merge, check, allocate, backorder e reverse sono applicabili soltanto se viene abilitato l'inventario ATP (consultare la colonna ALLOCATIONGOODFOR nella tabella STORE). Essi rappresentano l'elenco degli OrderItem che saranno trasferiti al comando di attività AllocateInventory, che richiama i comandi di attività CheckInventoryAvailability,
AllocateExistingInventory, AllocateExpectedInventory, DeallocateExistingInventory e
DeallocateExpectedInventory, come specificato di seguito. Inoltre, questi parametri accettano le abbreviazioni di OrderItem, che sono descritte minuziosamente nella guida ai Comandi del sottosistema dell'ordine.
I valori del parametro ATP predefiniti sono i seguenti:
- remerge=*n
- merge=*n
- check=***
- allocate=*n
- backorder=*n
- reverse=*n
Esempio 1
Il seguente esempio aggiunge tre unità del prodotto con numero di riferimento 24 a tutti gli ordini correnti in sospeso del cliente (solo gli ordini correnti in sospeso creati nel negozio con voce di catalogo 24), indicando che queste verranno spedite all'indirizzo corrispondente al numero di riferimento dell'indirizzo 2, quindi richiama il comando OrderItemDisplay.
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?addressId=2
&URL=/webapp/wcs/stores/servlet/OrderItemDisplay&catEntryId=24&quantity=3
Esempio 2
Questo esempio aggiunge dieci unità della voce di catalogo con numero di riferimento 2 al nuovo ordine del cliente corrente. Il parametro orderId viene aggiunto all'URL di reindirizzamento; il valore corrisponde al numero di riferimento dell'ordine creato e viene richiamato il comando OrderItemDisplay.
http://myhostname/webapp/wcs/stores/servlet/OrderItemAdd?catEntryId=2&quantity=10
&orderId=**&outOrderName=orderId&URL=/webapp/wcs/stores/servlet/OrderItemDisplay
Esempio 3
Il seguente esempio aggiunge una raccolta costituita da:
Articolo 312200001
Articolo 312200301
Prodotto 312200200 con attributo 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
Esempio 4
Il seguente esempio aggiunge due prodotti con più attributi ad un carrello degli acquisti, dove la prima voce di catalogo dispone di due attributi e la seconda di tre:
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
Azione
- Il comando richiama il ResolveOrdersCmd con il parametro di immissione orderId per ottenere un elenco di ordini. Se non viene specificato il parametroorderId, quello predefinito è relativo agli ordini al momento in sospesi.
- Per ciascun gruppo di enumerazione 'i' di parametri, il comando esegue i seguenti passi:
- Se viene specificato il parametro orderItemId_i, sono ignorati i parametri partNumber_i e
catEntryId_i. Il comando cerca di aggiornare l'articolo dell'ordine.
- Se viene specificato il parametro partNumber_i, il parametro catEntryId_i è ignorato. Il comando utilizza
partNumber_i con il parametro facoltativo memberId_i per trovare la voce di catalogo. Se non viene specificato memberId_i, l'ID del membro predefinito è l'Id del membro del proprio negozio.
- Se non viene specificato il parametro orderItemId_i e vengono specificati o il parametro partNumber_i o
quello catEntryId_i, il comando cerca di creare un nuovo articolo ordine e lo inserisce
in tutti gli ordini eseguiti. Se l'elenco degli ordini eseguiti è vuoto, sarà creato un nuovo ordine in sospeso.
- Quando viene creato un nuovo ordine, l'ID del membro rappresenta l'utente attuale nel contesto comando e la valuta viene estratta da quella presente nel contesto comando.
- Quando viene creato un nuovo articolo ordine, viene richiesto il parametro quantity_i e deve essere un numero positivo. L'ID del membro dell'articolo ordine viene preso dall'ID del membro nell'ordine.
Il storeId è anche obbligatorio.
- Se gli stessi gruppi di enumerazione 'i' vengono specificati più di una volta, soltanto uno è valido, gli altri vengono ignorati.
- Entrambi gli articoli ordine esistenti di aggiornamento quando viene specificato orderItemId_i o creato un nuovo articolo ordine, vengono specificati partNumber_i o catEntryId_i, ed il comando utilizza il resto dei parametri per aggiornare l'articolo ordine.
- Se il parametro addressId_i non viene specificato, per l'utente registrato, il valore predefinito sarà quello di addressId nella tabella ADDRESS (dove la colonna STATUS ha un valore P ed il valore nella colonna NICKNAME è l'ID di collegamento dell'utente ottenuto dalla colonna LOGONID column nella tabella USERREG). Se non c'è l'indirizzo nella tabella ADDRESS, l'address_id sarà NULL per l'articolo ordine nella tabella ORDERITEMS.
- Se il parametro quantity_i è zero, l'articolo ordine viene rimosso dagli ordini.
- Se non viene specificato il parametro shipModeId_i, il valore predefinito viene preso dalla tabella STOREDEF.
- Richiama il comando di attività GetContractUnitPriceCmd per ottenere il prezzo del contratto del prodotto
o dell'articolo utilizzando gli accordi commerciali specificati (contratti) o gli accordi commerciali idonei (contratti), ad eccezione degli articoli dell'ordine generati o i cui prezzi sono stati immessi manualmente (sovrascritti dal responsabile). Tutti gli accordi commerciali di immissione (contratti) da utilizzare saranno verificati se vengono applicati i metodi di pagamento compatibili. La valuta corrisponde alla valuta
dell'ordine.
- Per ogni ordine in cui uno o più articoli ordine sono stati aggiornati o inseriti, gli ordini vengono sbloccati e i campi lastUpdate vengono aggiornati con la data/ora corrente.
- Dopo che tutti i gruppi di enumerazione sono elaborati, il comando esegue un aggiornamento dell'adempimento ordini e la verifica inventario per tutti gli articoli ordine modificati o creati. Se viene abilitato l'ATP, viene richiamato
AllocateInventoryCmd. Altrimenti vene richiamato il comando ResolveFulfillmentCenterCmd che è compatibile
con quelli descritti precedentemente.
- Richiama il comando di attività ExtendOrderItemProcessCmd per eseguire un ulteriore elaborazione che soddisfi
tutti i requisiti univoci.
- Imposta una RedirectView che sarà rispedita all'URL che viene specificato.
Condizioni di eccezione
- Vengono richiamate attività di eccezione diverse a seconda dell'errore.
- Se i valori del parametro non sono validi, il comando genera un ECApplicationException con il messaggio:_ERR_INVALID_INPUT e la visualizzazione dell'errore : InvalidInputErrorView.
- Se viene specificato il partNumber e non è possibile trovarlo, il comando genera
un ECApplicationException con il messaggio: _ERR_PROD_NOT_EXISTING e la visualizzazione dell'errore : badPartNumberErrorView.
- ECApplicationException verrà generato anche se si presentano i seguenti errori:
- Gli accordi commerciali di immissione (contratti) non sono validi o idonei per essere utilizzati.
- Gli accordi commerciali (contratti) essendo utilizzati nell'ordine applicano metodi di pagamento incompatibili.
- I listini prezzi non possono essere richiamati
- Se ATP non è abilitato, il comando di attività ResolveFulfillmentCenterCmd potrebbe generare
ECApplicationException con il messaggio: _API_BAD_INV e la visualizzazione dell'errore:
ResolveFulfillmentCenterErrorView.