ecshop退款訂單原理分析,最近在深入研究ecshop訂單結構的時候,發現ecshop退款流程還是非常複雜的,也存在一定的漏洞,ecshop的退款覆蓋了退款,退貨,定單設定為退款狀態,但是在ecshop裡面,出現了一個大問題,支付完的訂單,以及發貨了的訂單,存在一個物流的資訊。所以說如果討論ecshop退換貨,必須考慮一個非常複雜的流程。
ecshop發生退款,是有個申請,首先是設定為未付款,那麼就牽涉到餘額的概念,首先必須把錢退給客戶,這個流程就複雜,是退到客戶的餘額裡,還是生成退款申請呢,或者說是誤操作呢這個需要值得討論。
ecshop的訂單在退貨的時候,必須是退款,以及退貨,這個時候不是未付款,未發貨。也就是說ecshop的order_info表裡面的order_status=4,pay_status=0以及shipping_status=0,讓人感覺和迷惑,我們在這個時候,可以對ecshop的退款流程進行改進了。把ecshop退款訂單變成退貨,已退款,未發貨。這樣才是對的。
這個時候為了修改,我們這個時候要考慮給ecshop訂單表增加2個狀態,訂單的退款狀態,以及退貨狀態。把貨狀態設定為7,退款為3,這個時候就需要修改訂單狀態編碼includes/inc_contanst.php以及order.php以及user.php語言包。達到全站統一的效果。
最後修改程式admin/order.php
1:修改訂單的退貨狀態之後,就完成了2個步驟,訂單修改以及金額流動,特別是記錄到order_action表。
2:在退貨完之後,要出現確認以及付款2個操作按扭。