We used several servlet beans from ATG Consumer Commerce and one special servlet bean written especially for the bike store to create the order history pages.

The following snippet of JSP, taken from order_history.jsp, demonstrates how the OrderLookup servlet bean renders a customer’s list of open orders. OrderLookup is located at/atg/commerce/order/OrderLookup. Please refer to the Configuring the Order Fulfillment Framework chapter in the ATG Commerce Programming Guide for more information about OrderLookup.

The OrderLookup servlet bean can be used in several ways. In this case, it is passed the user’s profile ID and the requested order state (“open”) and it outputs a list of orders in the result parameter. Then, a ForEach servlet bean renders links to each of those orders in an ordered list.

The OrderStatesDetailed component, which is invoked for each order in the list, asks the fulfillment module for detailed information about the state of an order.

<dsp:droplet name="OrderLookup">
  <dsp:param bean="/atg/userprofiling/Profile.repositoryId" name="userId"/>
  <dsp:param name="state" value="open"/>
<dsp:param name="startIndex" param="openStartIndex"/>
<dsp:param name="numOrders" value="10"/>

<dsp:oparam name="output">
 <dsp:droplet name="IsNull">
  <dsp:param name="value" param="previousIndex"/>
  <dsp:oparam name="false">
  <dsp:droplet name="Compare">
   <dsp:param name="obj1" param="openStartIndex"/>
   <dsp:param name="obj2" value="0"/>
   <dsp:oparam name="greaterthan">
    <dsp:a href="order_history.jsp"><i>Previous orders</i>
    <dsp:param name="openStartIndex" param="previousIndex"/>
    <dsp:param name="closedStartIndex" param="closedStartIndex"/>
    <dsp:param name="cancelledStartIndex" param="cancelledStartIndex"/>
    </dsp:a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   </dsp:oparam>
   </dsp:droplet>
  </dsp:oparam>
 </dsp:droplet>

 <dsp:droplet name="ForEach">
  <dsp:param name="array" param="result"/>
    <dsp:oparam name="outputStart">
  <dsp:droplet name="IsNull">
   <dsp:param name="value" param="nextIndex"/>
   <dsp:oparam name="false">
    <dsp:a href="order_history.jsp"><i>More orders</i>
    <dsp:param name="openStartIndex" param="nextIndex"/>
    <dsp:param name="closedStartIndex" param="closedStartIndex"/>
    <dsp:param name="cancelledStartIndex" param="cancelledStartIndex"/>
    </dsp:a><br>
    </dsp:oparam>
   </dsp:droplet>

     <OL>
    </dsp:oparam>
    <dsp:oparam name="outputEnd">
     </OL>
    </dsp:oparam>
    <dsp:oparam name="empty">
     No open orders.
    </dsp:oparam>
    <dsp:oparam name="output">
     <LI> <dsp:a href="order.jsp">
     <dsp:param name="orderId" param="element.id"/>
     #<dsp:valueof param="element.id">no order number</dsp:valueof></dsp:a>
     <dsp:valueof date="MMMMM d, yyyy" param="element.submittedDate"/>
     &nbsp;&nbsp;
     <dsp:droplet name="/atg/commerce/order/OrderStatesDetailed">
      <dsp:param name="state" param="element.state"/>
      <dsp:oparam name="output"><dsp:valueof param="detailedState"/></dsp:oparam>
     </dsp:droplet>

    </dsp:oparam>
   </dsp:droplet>
  </dsp:oparam>

  <dsp:oparam name="error">
   <span class=profilebig>ERROR:
    <dsp:valueof param="errorMsg">no error message</dsp:valueof>
   </span>
  </dsp:oparam>
</dsp:droplet>
 
loading table of contents...