View or modify cart details
A store associate can view the cart and modify the details of the order or individual products in the order.
View cart details
getCompleteOrderLineList
and
getCompleteOrderDetails
APIs. The
getCompleteOrderLineList
API is called to retrieve the order line
details. The getCompleteOrderDetails
API is called to retrieve order
details, including order totals and any coupons that are applied. The API also retrieves
customer details, including the customer's first and last names. On the View
Cart screen, the store associate can view the following information: - A list of all products added to the cart.
- Details for each product, including size, color, fulfillment method, quantity, and so on.
- Options to perform additional tasks such as identifying the customer, overriding the price, applying gift options, coupons, adding shipping addresses for individual products, and so on.
- The store associate can scan carry-out products on the View Cart screen.
- When the store associate scans a product, the
getCompleteItemList
API is called to fetch product details. - The default quantity when a product is scanned is 1.
- The
modifyFulfillmentOptions
API is called to add the product to the cart. - If the same product is scanned twice, two order lines are added with quantity as 1 for each order line.
- The
getCompleteOrderDetails
API is called to retrieve the updated order details and refresh the screen on update of order or any orderline. For example, when a new product is scanned.
- When the store associate scans a product, the
Add or modify cart products
When the store associate attempts to modify a certain quantity of a product, the
getItemAvailabilityForStore
API is called with the
ComputeRealTimeAvailability
attribute set to "Y"
to retrieve
real-time product availability. The quantity cannot be changed, if it is not available.
If the getItemAvailabilityForStore
API returns availability for the product, the
quantity can be changed, in which case, the modifyFulfillmentOptions
API is called
to update the quantity. However, modifying the quantity of a product can affect other order lines or
the order at header level. The modifyFulfillmentOptions
API is called to update the
quantity of an order line and the API returns all the order lines that are modified.
The modifyFulfillmentOptions
API can return the updated quantity but certain
additional attributes that are required by the UI are not returned. Therefore, the
getCompleteOrderDetails
API is called to retrieve the additional attributes. After
all the details are obtained, the View Cart screen is updated with the
information.
Add or modify shipping address
- From the View Cart screen, a store associate can add a shipping
address for products that are being shipped. If the delivery method is ship to the
customer, the store associate can click Add Shipping Address. The
Add Shipping Address window opens and the store associate can add the
information in the appropriate fields. When the store associate enters any of the address
details, the following logic is executed:
- If the region schema is defined for an organization, the city and state fields are automatically populated on entering zip code.
- When the store associate clicks OK, the
verifyAddress
API is called. If theYCDVerifyAddressWithAVSUE
user exit is configured, then the address is validated. - If the address is not valid, or there are multiple addresses found that match the input address, then the user is prompted to either modify the invalid address or select the correct address from the list of matching addresses.
- If the address is valid, then the
modifyFulfillmentOptions
API is called to update the order with the address. If an address is updated on an orderline and there is no shipping address associated with the order, the address of the orderline becomes the shipping address for the entire order.
- If the address exists, then the Name, City, and State from shipping address are shown and the
address is displayed as a link. The store associate can modify the address by clicking the link.
When there is no header level address defined and this is the first address that is added to any of
the order lines, then it is stamped as default
ShipTo
address for the order. When an address is modified, thegetItemAvailabilityForStore
API is called to check the availability of the product for the new address. If the product is available, only then themodifyFulfillmentOptions
API is called to update the orderline with the new shipping address.
Change delivery method
getItemAvailabilityForStore
API is called to
fetch the product availability for all the three delivery methods. If a delivery method is
not available for a product, then the delivery method tab displays a "Not Available"
message and the OK button is disabled. The delivery method that was
set initially on the order line is displayed. - If the delivery method is SHP and if a shipping address is not associated with the
order, the store associate must enter the shipping address. The
getCarrierServiceOptionsForOrdering
API is called to retrieve the list of carrier services in the Ship tab. When a delivery method is ship, the current region is not taken into consideration for product availability. - If the delivery method is PICK, then the same logic as store selection window is applicable for the Pickup tab. See Alternate store selection.
- When the delivery method of a product is changed to In-Store, the
modifyFulfillmentOptions
API is called to change theDeliveryMethod
attribute toCARRY
andShipNode
attribute to the current store. - When the delivery method of a product is changed to Ship, the
modifyFulfillmentOptions
API is called to add the shipping address to the order, if the order does not already have a shipping address, theDeliveryMethod
attribute is changed toSHP
, and theCarrierServiceCode
attribute is changed based on the selected carrier service option, if applicable. - When the delivery method of a product is changed to Pickup, the
modifyFulfillmentOptions
API is called to change theDeliveryMethod
attribute toPICK
andShipNode
attribute to the selected store.- A pickup recipient cannot be provided if the delivery method is changed to pickup. The name on the order is the customer who is purchasing the products.
Add carry-out products to a cart
A store associate can add carry-out products to a cart for a customer. When the store
associate scans a product, the getCompleteItemList
API is called to get
the product details. The modifyFulfillmentOptions
API is called to add
the product to the cart with the delivery method as "CARRY". The default quantity for a
scanned product is 1. If the same product is scanned twice, two order lines are added with
quantity as 1 for each order line.
Identify customer
- Existing Customer
- Existing consumer customers can be searched by first or last name, email, or phone number. The
getCompleteCustomerList
API is called to search for all existing customers. - For existing customers, if there are any associated addresses such as "Bill to" and "Sold to" created through channels other than Order Capture, such addresses are displayed when the store associate searches the customer. However, a customer created through Order Capture can only have a shipping address, which can also be used as billing address.
- After the store associate finds the correct customer and clicks OK, the
modifyFulfillmentOptions
API is called to add the customer details to the order. If an address is associated with the customer account, that address is automatically made the shipping address for the order. If the store associate edits the address, the change is made only to the order and not saved to the customer account.
- Existing consumer customers can be searched by first or last name, email, or phone number. The
- New Customer
- If no record is found for a customer or if a customer is new, the store associate can select the New Customer tab to create a consumer customer.
- When the store associate enters any of the address details for the customer and tabs out, the
following logic is executed:
- If the region schema is defined for an organization, the city and state fields are automatically populated on entering zip code.
- Once the store associate clicks OK, the
verifyAddress
API is called. If theYCDVerifyAddressWithAVSUE
user exit is configured, then the address is validated. If the address is not valid, or there are multiple addresses found that match the input address, then the user is prompted to either modify the invalid address or select the correct address from the list of matching addresses. - Once a valid address is selected, the
manageCustomer
API is called to create the customer. - The
modifyFulfillmentOptions
API is called to add the customer details to the order.
To change the customer information, the store associate can click the Change
Customer in the customer panel, and the API calls are similar to that of creating a new
customer. The store associate can also modify the address that is selected for the order by clicking
the Edit icon. The Edit Shipping Address pop-up is
displayed, the store associate enters the address, and clicks OK. The
modifyFulfillmentOptions
API is called to update the address on the order.
Apply or modify gift options
- Apply gift at the line level: If a customer wants a product in an order to be a gift,
the store associate can click Make this product a gift on the
View Cart screen. The Gift Options window is
displayed. In the window, the store associate can enter the gift recipient's name and a
personalized gift message. If gift wrapping is allowed, a checkbox is displayed.
Otherwise, checkbox is not displayed. When the store associate clicks
OK to save the changes, the
GiftFlag
andGiftWrap
attributes are set to the appropriate values, gift messages is added in theInstruction
element withInstructionType
asGift
, and passed at the order line level to thechangeOrder
API to save the changes. - Apply gift at header level: If a customer needs an entire order as a gift, the store
associate clicks Gift Options on the View Cart
screen, the Gift Options window is displayed. In the window, the
store associate can enter the gift recipient's name and a personalized gift message. If
gift wrapping is allowed, a checkbox is displayed. When the store associate clicks
OK, the
changeOrder
API is called to apply the gift options to each product in the order with theGiftWrap
andGiftFlag
attributes set to the appropriate values. - The gift options for an individual product are overridden when the store associate makes the entire order as a gift.
- To delete the gift options at the line level, the store associate can click the
This product is a gift link and then Remove
Gift. Alternatively to remove gift options at the header level, the store
associate can click Remove in the Gift options
panel. When the store associate clicks Remove, a message tells the
store associate that the gift will be removed for all lines and asks whether to continue
or not. Once the store associate confirms, the
changeOrder
API is called to set theGiftFlag
andGiftWrap
attributes toN
.
Apply coupons
translateBarCode
API is called to identify the
coupon. Once the coupon is identified, the changeOrder
API is called to
apply the coupon to the order. - If the coupon is successfully applied to the order, the
getCompleteOrderDetails
API is called to refresh the order panel with the updated price. If the coupon is not successfully applied, an error message is displayed. - A store associate can delete a coupon by clicking the X icon
next to the coupon. To remove a coupon, the
changeOrder
API is called with theACTION
attribute set toREMOVE
in thePromotion
element. ThegetCompleteOrderDetails
API is called to refresh the page with the updated information.
Remove products from the cart
The store associate can remove a product from the cart by clicking the X
icon next to each product. The modifyFulfillmentOptions
API is called to delete the
order lines. The modifyFulfillmentOptions
API is called to update the order with
deleted order lines. The getCompleteOrderDetails
API is called to retrieve the
additional attributes at line level and header level. After all the details are obtained, the
View Cart screen is updated with the information.
Reserve availability
- The
Reserve Product During Order Entry and Order Modification
rule is used to determine whether reservation is required for an order. - The
Check availability on cart details if number of order lines is less than
rule provides the threshold number of order lines to identify an order as a large order and skip the availability check and reservation.
reserveOrder
API is called to check availability and reserve
inventory for the order. Otherwise, if reservation is not required and the order is not a
large order, then availability check is done for shipping and pickup order lines as
real-time inventory information is available for pickup and ship products by calling the
getOrderFulfillmentDetails
API. If inventory is not available for the
order lines, then the store associate cannot proceed to the payment page. If products are
deleted from an order and the order is no more a large order, the products are reserved.
However, if products are added to an order that already has reserved products and then the
large order condition is met, reservations are not made for newly added products and the
order remains partially reserved.