Transient order tracking is handled by the component /atg/commerce/order/abandoned/AbandonedOrderEventListener. This component has two purposes.

When a session is destroyed (either because the user logs out or the session times out), the AbandonedOrderEventListener checks whether a profile was associated with the session, and whether that profile is transient. If so, it then checks whether a non-empty shopping cart is also associated with the session, and whether that shopping cart’s total value is at least as great as the AbandonedOrderEventListener.minimumAmount property. By default, the minimumAmount property of the AbandonedOrderEventListener points to the minimumAmount property in AbandonedOrderService. If the order meets the criteria, then a new TransientOrderEvent is created, and populated with the orderId and amount, and the value 0 is placed in the event’s submitted property. Then, the event is sent out on the messaging system.

The AbandonedOrderEventListener also registers as a listener for SubmitOrder events. When a SubmitOrder event is received, the AbandonedOrderEventListener checks whether the profile associated with the order is transient. If so, then it also creates a new TransientOrderEvent, this time populating the submitted property in the event with the value 100. We populate the submitted property with this value so that we can calculate the percentage of transient orders by averaging the values of the submitted property.

loading table of contents...