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: