Overall shopping flow diagram
A diagram showing various scenarios including the service calls, optional commands, controller commands and views.
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.
- 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.
- 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.