Nopcommerce商城添加【滿XX減XX優惠券】功能

公司的電商網站要作個優惠券的功能,nop框架,但我接觸nop時間很少,最後仍是爲了功能而完成了。這中間確定有不少小問題。ajax

Nopcommerce自帶的促銷功能感受不是很好,首先優惠券功能放在購物車頁面的,若是直接下單就用不了優惠。其次nop的優惠還必需要輸入優惠券碼很麻煩,最後不知足如今電商主流的單筆訂單滿XX減XX優惠券功能。可是nop提供了不少基礎的方法,咱們只要稍做更改就能夠達到咱們想要的。app

優惠券首先須要和用戶掛鉤,用戶能夠領取和查看本身的優惠券。優惠券的功能nop基本已經實現了,可是沒把優惠券和用戶掛鉤。框架

 

【第一步】咱們添加一張表,將優惠券和用戶映射。標結構很簡單,很少說了。網站

 添加一張表,底層還要添加不少東西,慢慢添加。插件

【第二步】編寫滿xx減xx的插件,說實話我接觸nop時間不長,插件更不會用。可是nop有個自帶的促銷插件是商城客戶總的訂單知足xx就可使用優惠的,拿過來改造一下就能夠了。3d

 

【第三步】將Service下的幾個方法改造blog

IDscountService下的IsDiscountValid這個方法主要是判斷當前用戶以及當前優惠券是否知足使用條件,可是他用了一個優惠券碼判斷,爲了使nop代碼最小改動,這裏咱們註釋掉就能夠了。io

 

接着在OrderTotalCalculationService下重載一個GetShoppingCartTotal方法電商

原來的方法優惠券和優惠金額都是nop本身選一個最佳的優惠方案而後返回這個優惠券和優惠的金額後臺

(hasDiscount那個參數是我加上去的,由於購物車頁面也會調用該方法,當顯然購物車不該該使用優惠券,因此我加了個參數,在購物車的是爲false,不計算優惠信息)

 

而我但願是本身傳一個優惠券而後改價,因此咱們得重載一個

appliedDiscount就是咱們須要傳過去優惠券,而後計算價格,能夠爲空的,用戶可能沒有優惠券或者優惠券沒使用優惠券

 

【第四步】優惠券領取裏面 供用戶領取

把全部使用期限未過時的優惠券都賽選出來

 

用戶領取優惠券 ajax調用  

 

 

 

 

 

【第五步】 訂單確認頁面,把本訂單全部知足的優惠券都賽選出來,而且默認選中最佳優惠

  這塊我感受我寫的有問題,主要仍是想偷懶使用nop的方法

  先把商城全部知足條件的優惠券選出來,再根據以前建立的表映射,找到用戶擁有的未使用的交集優惠便是可擁的優惠券...

 

 

【第六步】修改OrderProcessingService方法

SelDiscount新增一個屬性,表示當前這個order選擇的discount,給orderDiscountAmount賦這個discount折扣的金額,用於在後臺訂單展示訂單折扣的金額

 

 順帶在用戶後臺的訂單詳情頁加上優惠信息

 

 

完工。。。第一次寫這麼長的,確定好多問題。一邊學一邊改。

相關文章
相關標籤/搜索