Comando OrderPrepare
Con questo comando è possibile preparare un ordine determinando i prezzi, gli sconti, le tariffe di spedizione e le tasse per un ordine. Se non viene specificato un numero di riferimento ordine, verranno preparati tutti gli ordini in sospeso correnti per il cliente corrente e nel negozio dato.

Valori dei parametri
- http://nome_host/percorso/
- (Obbligatorio) Il nome completo del WebSphere Commerce Server e il percorso di configurazione.
- langId
- Imposta o reimposta la lingua prescelta per la durata della sessione; le lingue supportate per un negozio si trovano nella tabella STORELANG
- 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.
- URL
- (Obbligatorio) L'URL da richiamare quando il comando viene eseguito correttamente.
- storeId
- Il numero di riferimento del negozio per cui viene preparato l'ordine.
- orderId
- Il numero di riferimento dell'ordine da preparare. Se questo parametro è omesso, questo comando assume il valore predefinito per gli ordini correnti in sospeso. Per una descrizione più dettagliata, consultare Abbreviazioni ordini.
- outOrderName
- Specifica i nomi delle coppie nome-valore da aggiungere all'URL di reindirizzamento. Il valore di ogni coppia nome-valore è il numero di riferimento dell'ordine preparato. Se il nome non viene fornito, viene utilizzato l'orderId del nome predefinito.
- 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.
- check
- Un elenco di OrderItems che devono essere verificati con il comando di attività CheckInventory.
- allocate
- Un elenco di OrderItems che devono essere assegnati da un inventario esistente.
- backorder
- Un elenco di OrderItems che devono essere assegnati da un inventario atteso.
- reverse
- Un elenco di OrderItems le cui assegnazioni devono essere rilasciate (ovvero, deve essere annullata l'assegnazione dell'inventario esistente o atteso).
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=*
- merge=*n
- check=*n
- allocate=*
- backorder=*
- reverse=*
Esempio
Nel seguente esempio viene preparato un ordine con il numero di riferimento 1 e viene effettuato il reindirizzamento al comando OrderDisplay per visualizzarlo.
http://myhostname/webapp/wcs/stores/servlet/OrderPrepare?orderId=1
&URL=/webapp/commerce/OrderDisplay
Azione
- Questo comando prepara gli ordini specificati da visualizzare (con il comando OrderDisplay)
oppure da elaborare (con il comando OrderProcess).
Se non viene specificato alcun numero ordine, il comando prepara tutti gli ordini in sospeso
del cliente corrente relativi al negozio specificato.
- Esso opera su ordini con stato 'P', 'I', 'E', 'W', o 'N'.
- Il comando OrderPrepare richiama il comando
di attività PrepareOrder
per eseguire queste operazioni per ognuno degli ordini specificati:
- Cancellare gli articoli dell'ordine generato (fare riferimento alla colonna PREPAREFLAGS nella tabella ORDERITEMS.
- Verificare che sia possibile acquistare tutti gli articoli dell'ordine (fare
riferimento alla colonna BUYABLE nella tabella CATENTRY).
- Se viene abilitata l'allocazione di inventario ATP (fare riferimento alla colonna
ALLOCATIONGOODFOR nella tabella STORE), richiamare
il comando di attività AllocateInventory
per elaborare gli OrderItem identificati tramite i parametri ATP
(merge, remerge, check, allocate, backorder e reverse) ed ottenere
tempi di disponibilità stimati, piani di spedizione e centri
organizzativi per articoli di ordini allocati o precedenti. Gli articoli possono
essere suddivisi o uniti tramite questo comando di attività. L'implementazione predefinita di questo
comando di attività richiama i comandi GetEligibleFulfillmentCenters,
CheckInventoryAvailability,
AllocateExistingInventory,
AllocateExpectedInventory,
DeallocateExistingInventory
e DeallocateExpectedInventory
per eseguire le operazioni specificate tramite i parametri ATP.
Questi comandi di attività RECEIPT, RADETAIL,
e le tabelle associate consentono di stabilire la disponibilità di inventario esistente e
atteso.
- Se l'inventario ATP non è abilitato, richiamare il comando di attività
ResolveFulfillmentCenter
per assegnare un centro organizzativo per ciascun OrderItem, basato sulla
disponibilità di inventario. L'implementazione predefinita di questo comando di attività
richiama il comando di attività CheckInventory
per stabilire la disponibilità di inventario. L'implementazione predefinita
del comando di attività CheckInventory utilizza la tabella INVENTORY.
- Richiamare il comando di attività ValidateDynamicKitConfiguration.
- Ottenere i nuovi prezzi unitari per ciascun articolo, tranne per quelli con prezzi
sostituiti manualmente (fare riferimento alla colonna PREPAREFLAGS della tabella ORDERITEMS),
richiamando il comando di attività GetContractSpecialPrice
oppure, se non è già definito, richiamando il comando di attività GetBaseSpecialPrice.
- Moltiplicare le quantità per ciascun articolo e
archiviarle nella colonna TOTALPRODUCT della tabella ORDERITEMS.
- Ricalcolare le quantità di calcolo identificate dala colonna
USAGEFLAGS nella tabella STENCALUSG. Vengono richiamati prima i metodi identificati dalla colonna CALMETHOD_ID_INI della tabella STENCALUSG e quindi
vengono richiamati tutti i metodi identificate dalla colonna
CALMETHOD_ID_APP. Per la compatibilità verso il basso, se l'indicatore è impostato per utilizzo -1, viene richiamato il comando di attività ApplyOrderAdjustments, se è definito nella tabella CMDREG, invece del metodo identificato dalla colonna CALMETHOD_ID_APP nella tabella STENCALUSG. Per la compatibilità verso il basso, se l'indicatore è impostato per utilizzo -2, viene richiamato il comando di attività ApplyOrderShippingCharges, se è definito nella tabella CMDREG, invece del metodo identificato dalla colonna CALMETHOD_ID_APP. Per la compatibilità verso il basso, se l'indicatore è impostato per utilizzo -3 e per -4, viene richiamato il comando di attività ApplyOrderTaxes, se è definito nella tabella CMDREG, invece dei metodi identificati dalla colonna CALMETHOD_ID_APP nella tabella STENCALUSG.
- Ricreare gli ordini secondari (le righe nella tabella SUBORDERS) per ciascun indirizzo di spedizione e poi riepilogare le informazioni del nuovo calcolo per ciascun ordine secondario richiamando i metodi identificati dalla colonna CALMETHOD_ID_SUM nella tabella STENCALUSG per ogni utilizzo di calcolo identificato dalla colonna CALUSGAEFLAGS.
- Bloccare l'ordine per indicare che è pronto per il comando OrderProcess. Il blocco può essere reimpostato alla scadenza, modificando l'ordine (ad esempio utilizzando il comando OrderItemUpdate) o esplicitamente utilizzando il comando OrderUnlock. Il periodo di scadenza per un blocco è memorizzato nella colonna QUOTEGOODFOR della tabella STORE.
Condizioni di eccezione
- Se nessun ordine corrisponde ai parametri specificati, il comando lancia l'eccezioneECApplicationException
specificando il comando di visualizzazione erroriErrorOrderNoneCmd.
- Se gli articoli ed i prodotti dell'ordine non sono acquistabili, il comando lancia l'eccezione ECApplicationException specificando il comando di visualizzazione errori BadOrderDataErrorView.
Per ulteriori informazioni sulle condizioni di eccezione per gli errori relativi all'ordine, consultare la sezione Codici di errore per la visualizzazione degli errori relativi agli ordini.
- Il comando genera l'eccezione ECApplicationException specificando il comando di visualizzazione dell'erroreRetrievePriceErrorView se si verificano le seguenti condizioni:
- 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 per i prodotti o gli articoli.
- Se un calcolo indicato dalla colonna USAGEFLAGS nella tabella STENCALUSG non riesce a calcolare un valore per ciascun articolo di un ordine e se la colonna USAGEFLAGS nella tabella STENCALUSG indica che un valore deve essere calcolato, viene attivata un'eccezione ECApplicationException.
- Se un ordine non presenta OrderItems, viene attivata un'eccezione ECApplicationException.