Abandoned Order Service

Abandoned Order Service

Abandoned Order:

就是顾客创建或者添加了items,但是在一个特定的时间内一直没有checkout.

Abandoned Order Service 特征:

  • 检测abandoned orders
  • 响应abandoned orders
  • 报告相关的order abandonedment 以及相关的变化状态

能使你更好理解顾客创建的什么类型的order是abandoning.好让你鼓动用户去再次去完成这个订单。增加order的转化率和收益。

如以下图示,可能会发一封邮件到你的电子邮箱:




 

How does it work?

  1. 当一个item放进shopping cart,order的abandonmentInfo 的 orderLastUpdated属性被更新,伴随着用户修改order的日期的改变
  2. 晚上,AbandonedOrderService schedular service会被调用,会去check看是否date是一个配置的过去的天数,然后标记这个order abandoned,和触发这个order abandoned 事件。
  3. The scenario engine receives this event and sends an email to the customer.
  4. 当顾客被鼓舞然后convert the order,其他的一些事件也被触发
  5. 被转换后,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:


 

猜你喜欢

转载自nicky19870612.iteye.com/blog/2186649