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:


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章