Remote Shopping Architecture
Viewed from a high level, the architecture of remote shopping in AFS consists of a trading partner's buyer application switching a customer into the basket page interface of the AFS Solution Site, and upon a signal from the AFS Solution Site, switching them back into the buyer application. After returning to the buyer application, the contents of the customer's basket in the buyer application must reflect any shopping activity that occurred in the AFS Solution Site.
The following figure illustrates the steps involved at the next level of detail. The numbered arrows in the figure correspond to an explanation of the steps following the figure. Note that the figure depicts remote shopping in a generic way, and deviations by either the cXML protocol or the OCI protocol will be explained for each step.
Remote shopping architecture
The steps involved in supporting a remote shopping session, as shown in the previous figure, are:
- The customer interacts with the trading partner's buyer application, and then performs an action, such as clicking a button, that initiates a remote shopping session.
- For cXML, but not for OCI, the buyer application exchanges a pair of messages with the supplier's Web site using a well-known URL (PunchOutSetupRequest and PunchOutSetupResponse). Authentication and basket initialization are performed at this point, and the URL used in step 5 is returned to the buyer application.
- The buyer application uses a standard browser for the customer's remote shopping session. If the buyer application is browser-based, it might just redirect to the appropriate URL, or it might open a new browser window for the remote shopping session. If the buyer application is not browser-based, it must open a browser window for the remote shopping session.
- The customer is now interacting with a browser window that is dedicated to the remote shopping session.
- The remote shopping browser uses the appropriate URL to begin the remote shopping session. For cXML, the URL returned in step 2 is used, which corresponds to the page RemoteBasketNav.asp.
For OCI (xCBL), the URL of the page OCIAccept.asp is used, with the appropriate query string arguments appended. This page then redirects to the page RemoteBasketNav.asp.
- Regardless of the protocol being used, the page RemoteBasketNav.asp is used to dispatch the customer's browser session to the appropriate visible page. For cXML, this can be the basket page or a product page, and will be different versions depending on whether the specified operation allows modifications to be made to the contents of the basket (one of the four pages RemoteBasket.asp, InspectBasket.asp, product.asp, or InspectProduct.asp).
For OCI (xCBL), the user always ends up on the page RemoteBasket.asp, because OCI does not support the concept of a remote shopping session targeted at a specific product or the concept of a read-only remote shopping session.
- Now that the customer is in the remote shopping session, they can, in general, freely navigate the supplier's Web site, and assuming that basket modifications are allowed, perform operations that alter the contents of their basket.
- Eventually, the customer will decide to end the remote shopping session and click the Return to Buyer Application button (or its equivalent). This results in the page FormPostRemoteBasket.asp being run.
- The page FormPostRemoteBasket.asp packages up the contents of the remote shopping basket according to the protocol in use, and posts the corresponding form to the URL provided during the initiation of the session.
- The customer is now back in the trading partner's buyer application, where the basket should reflect changes made during the remote shopping session, if any. Under normal circumstances, the customer will eventually check out, initiating the approval process that will eventually lead to either the rejection of the purchase order, or the sending of the purchase order to the supplier using the process outlined in the previous section "Purchase Order Reception Solution."