Abandoned Order Service
Abandoned Order:
就是顾客创建或者添加了items,但是在一个特定的时间内一直没有checkout.
Abandoned Order Service 特征:
- 检测abandoned orders
- 响应abandoned orders
- 报告相关的order abandonedment 以及相关的变化状态
能使你更好理解顾客创建的什么类型的order是abandoning.好让你鼓动用户去再次去完成这个订单。增加order的转化率和收益。
如以下图示,可能会发一封邮件到你的电子邮箱:
How does it work?
- 当一个item放进shopping cart,order的abandonmentInfo 的 orderLastUpdated属性被更新,伴随着用户修改order的日期的改变
- 晚上,AbandonedOrderService schedular service会被调用,会去check看是否date是一个配置的过去的天数,然后标记这个order abandoned,和触发这个order abandoned 事件。
- The scenario engine receives this event and sends an email to the customer.
- 当顾客被鼓舞然后convert the order,其他的一些事件也被触发
- 被转换后,the order 会被scenario engine标记,并且会打到转换的日志里。
Abandoned Order States:
- ABANDONED:未完成的订单,即没有被checkout.
- REANIMATED:以前abandoned orders 已经被用户修改过
- CONVERTED:以前abandoned orders已经被checkout.
- LOST: 以前abandoned orders 已经被放弃,以后也不会再回复到
reanimated状态
Core Components:
/atg/commerce/order/abandoned/AbandonedOrderService
- Storing the criteria to identify abandoned and lost orders.
- Querying the order repository to identify orders as abandoned or lost
scheduler=/atg/dynamo/service/Scheduler genericEmailSender=/com/email/GenericEmailSender profileRepository=/atg/userprofiling/ProfileAdapterRepository idleDaysUntilAbandoned=2 idleDaysUntilLost=120 minimumAmount=0 sendEmails=true numberOfDaysToConsider=2 maxItemsPerTransaction=100 sendEmailPerDays=30 sendEmailMaxNum=1 useSQLQueryInsteadOfRQL=true sqlQueryForAbandonedOrders=\ select do.order_id from dcspp_order do \ left outer join dcspp_ord_abandon da \ ON do.order_id=da.order_id \ where do.last_modified_date > sysdate - ? \ and da.ord_last_updated < sysdate - ? \ and do.state = 'INCOMPLETE' \ and (da.ord_last_updated is null OR da.abandon_state='REANIMATED' OR da.abandon_state is null) \ order by do.last_modified_date sqlQueryForLostOrders=\ select do.order_id from dcspp_order do \ left outer join dcspp_ord_abandon da \ ON do.order_id=da.order_id \ where do.last_modified_date > sysdate - ? \ and da.ord_last_updated < sysdate - ? \ and do.state = 'INCOMPLETE' \ and (da.ord_last_updated is null OR da.abandon_state <> 'LOST' OR da.abandon_state is null)
- idleDaysUntilAbandoned:order在变成abandoned 状态之前的配置的天数
- idleDaysUntilLost:order在变成lost 状态之前的配置的天数
- minimumAmount:被考虑成abandoned或者lost orders的最小金额
AbandonedOrderService detects both abandoned and lost orders: