Overall shopping flow diagram

A diagram showing various scenarios including the service calls, optional commands, controller commands and views.

Overall shopping flow diagram

1. OrderItemDisplay (Optional) is redirected.

2. OrderCalculate can be called by OrderItemAdd or OrderItemUpdate internally by specifying a parameter "calculateOrder=1", and it can also be redirected after OrderItemAdd or OrderItemUpdate through a URL parameter.

3. OrderPrepare is automatically called by OrderDisplay and may also be directly called by store.

4. The storefront invokes OrderFacadeClient.prepareOrder and OrderFacadeClient.addPaymentInstruction from the order billing and the shipping pages.

For the optional commands and services:
  • Unlike web 1.0 storefront pages, the Aurora starter store does not use OrderItemDisplay or OrderDisplay. Instead, the storefront has its own ways to display the shopping cart.
  • If a shopper updates quantity or deletes an item from the shopping cart OrderFacadeClient.updateOrderItem or OrderFacadeClient.deleteOrderItem is invoked. OrderFacadeClient.updatePaymentInstruction and OrderFacadeClient.removePaymentInstruction behave in the same way.

Typical parameters

Typically storefront passes name-value pairs (with values being String[]) to the services for each user action:

For ".", "***", and so on, refer to Order abbreviations for explanations.

Add to shopping cart
catEntryId=[10398], calculationUsage=[-1], orderId=[.], quantity=[1], storeId=[10101], langId=[-1]
(calculateOrder=1 is hardcoded in ChangeOrderSOIBODMapping.xml when OrderItemAdd or OrderItemUpdate is called.) 
catEntryId_i
Required: The reference number of the items to be put into the order. This parameter is required if the customer does not have a shopping cart. It is not required if a customer order exists.
orderId
The identifier of the order to which the item is being added. This parameter can be repeated.
quantity_i
Required: The quantity of the item to be added to the order.
storeId
Required: The store reference number, which is mandatory because you cannot buy from a mall.
langId
Sets or resets the preferred language during the session. The supported languages for a store are found in the STORELANG table.
Update shopping cart (update the quantity)
calculationUsage=[-1], orderId=[.], quantity=[2], storeId=[10101], orderItemId=[10001], langId=[-1]
(calculateOrder=1 is hardcoded in ChangeOrderSOIBODMapping.xml when OrderItemAdd or OrderItemUpdate is called.)   
orderId
The identifier of the order to which the item is being added. This parameter can be repeated.
quantity_i
Required: The quantity of the item to be added to the order.
storeId
Required: The store reference number, which is mandatory because you cannot buy from a mall.
langId
Sets or resets the preferred language during the session. The supported languages for a store are found in the STORELANG table.
Check out
remerge=[***], backorder=[***], allocate=[***], check=[*n], langId=[-1], URL=[
https://localhost/webapp/wcs/stores/servlet/OrderShippingBillingView?shipmentType=single],
errorViewName=[AjaxOrderItemDisplayView], calculationUsage=[-1], orderItemId=[10001], orderId=[.], storeId=[10101]  
(calculateOrder=1 is hardcoded in ChangeOrderSOIBODMapping.xml) 		
remerge
A list of the OrderItems that should be merged with other OrderItems in the same order and with the same correlationGroup attribute, if possible. OrderItems are not merged unless their InventoryStatus is "NALC", or they are specified by one or more of the allocate, backorder, and reverse parameters. This parameter can be repeated.
backorder
A list of OrderItems that should be backordered, by the AllocateExpectedInventory task command. If the same OrderItem is specified by both the allocate and backorder parameters, it is not backordered if it can be allocated. This parameter can be repeated.
allocate
A list of OrderItems that should be allocated from existing inventory by the AllocateExistingInventory task command. This parameter can be repeated.
check
A list of OrderItems that should be checked by the CheckInventory task command. This parameter can be repeated.
langId
Sets or resets the preferred language during the session. The supported languages for a store are found in the STORELANG table.
URL
Required: The URL to be called when the command completes successfully.
orderId
The identifier of the order to which the item is being added. This parameter can be repeated.
storeId
Required: The store reference number, which is mandatory because you cannot buy from a mall.
Input shipping address and method
remerge=[***], backorder=[***], allocate=[***], check=[*n], calculationUsage=[-1,-2,-3,-4,-5,-6,-7], storeId=[10101], orderId=[.], langId=[-1], shipModeId=[10152]
addressId=[11451], ShipAsComplete=[N], shipInstructions=[only day time], requestedShipDate=[2010-02-04T04:00:00.000Z]
(calculateOrder=1 is hardcoded in ChangeOrderSOIBODMapping.xml)
remerge
A list of the OrderItems that should be merged with other OrderItems in the same order and with the same correlationGroup attribute, if possible. OrderItems are not merged unless their InventoryStatus is "NALC", or they are specified by one or more of the allocate, backorder, and reverse parameters. This parameter can be repeated.
backorder
A list of OrderItems that should be backordered, by the AllocateExpectedInventory task command. If the same OrderItem is specified by both the allocate and backorder parameters, it is not backordered if it can be allocated. This parameter can be repeated.
allocate
A list of OrderItems that should be allocated from existing inventory by the AllocateExistingInventory task command. This parameter can be repeated.
check
A list of OrderItems that should be checked by the CheckInventory task command. This parameter can be repeated.
storeId
Required: The store reference number, which is mandatory because you cannot buy from a mall.
orderId
The identifier of the order to which the item is being added. This parameter can be repeated.
langId
Sets or resets the preferred language during the session. The supported languages for a store are found in the STORELANG table.
shipModeId_i
The reference number of the shipping mode to be used for the product or item.
shipInstructions_i
Specifies shipping instructions for one shipmode.
requestedShipDate_i
Marks the requested shipping date for an orderitem.
Input payment information
valueFromProfileOrder=[ ], expire_month=[02], payMethodId=[VISA], cc_brand=[VISA], billing_address_id=[10951], account=[4111111111111111], paymentTCId=[], piAmount=[161.99]
valueFromPaymentTC=[ ], expire_year=[2010], orderId=[.]
valueFromProfileOrder
Optional: The flag to indicate whether the payment protocol data should be extracted from the user's quick checkout profile and ignore any protocol data passed in the request properties. The values are Y or N. The default value is N.
payMethodId
Optional: The payment method name. It is the policy name of the payment business policy table. (Table POLICY with column policytype_id = 'Payment'). If policyId is passed in, this parameter is not required since this command always sets it as the policy name from business policy table via the policyId.
(At least one of the two parameters policyId and payMethodId should be passed in. If both of them are passed in, policyId will have priority over payMethodId.)
billing_address_id
Optional: The billing address identifier.
  • If all of the parameters billto_firstname, billto_lastname, billto_address1, billto_city, billto_stateprovince are passed in, those parameters will be used as the billing address protocol data, and the billing_address_id parameter will not be used. Otherwise, this command will get the billing address protocol data from the address related table(s) in according to billing_address_id.

paymentTCId
Optional: The payment Term&Condition identifier for this payment instruction. This parameter is used by the business customer.
piAmount
Required: The amount in the order currency to be used for this payment method. The format of this number must fit the rules for a java.math.BigDecimal object. The number must use a period for a decimal place.
valueFromPaymentTC
Optional: The flag to indicate whether the payment protocol data should be extracted from the payment Term&Condition identified by paymentTCId parameter and ignore any protocol data passed in the request properties. The values include true and false, the default value is false.
orderId
Required: The identifier of the order to which the payment method is to be added.
Confirm order
storeId=[10101], langId=[-1] 
storeId
The reference number of the store for which the order is to be prepared.
langId
Sets or resets the preferred language for the duration of the session; the supported languages for a store are found in the STORELANG table
Submit order
notifyMerchant=[1], notifyOrderSubmitted=[1], orderId=[14001], purchaseorder_id=[], notifyShopper=[1]
notifyMerchant
Specifies whether the store is notified when the order processing is complete.
notifyOrderSubmitted
Specifies whether the customer is notified when the order is successfully submitted for processing. A value of 1 specifies that the customer is notified; a value of 0 specifies that the customer is not notified. The default is 0.
orderId
Required: Specifies the reference number of the order to be processed. This parameter can be repeated.
purchaseorder_id
Sets the purchase order number for this order for the group i.
notifyShopper
Specifies whether the customer is notified when the order processing is complete. Email notifications are not sent if PrimePaymentCmd fails. A value of 1 specifies that the customer is notified; a value of 0 specifies that the customer is not notified.