Magento——利用購物車促銷規則(Shopping Cart Price Rules)實現自己的功能第一章: 添加新的動作(Actions)
Magento的促銷規則引擎,可以用一個詞,叫很好很強大,不過雖然可以在Magento後台可以設置很複雜的各種條件(Conditions),但條件對應的動作(Actions)卻很少,而且全部都是隻針對價格做文章。如下圖:
其實利用這個引擎可以開發自己的各種需求功能,一些收費的插件就是這麼在做的,包括幾個積分插件,都是用這個引擎來設置積分獲取和使用的規則。今天講下我在利用促銷引擎上的一些體會,第一篇講的是如何添加新的動作(Actions),這個是針對Shopping Cart Price Rules的。
在模塊的config.xml添加事件監聽,監聽adminhtml_block_salesrule_actions_prepareform事件:
<events> <!--按促銷規則送優惠券 --> <adminhtml_block_salesrule_actions_prepareform> <observers> <coupon_present_action> <type>model</type> <class>Shuishui_Coupon_Helper_Data</class> <method>presentCoupon</method> </coupon_present_action> </observers> </adminhtml_block_salesrule_actions_prepareform> </events>
在對應的Data.php文件裏編寫監聽該事件的函數presentCoupon
//按促銷規則送優惠券 public function presentCoupon($observer){ $form = $observer->getForm(); $fieldset=$form->getElement('action_fieldset'); $options = ''; foreach ($fieldset->getElements() as $element) { if($element->getName() == 'simple_action'){ $options = $element->getOptions(); } } //送優惠券 $options['present_coupon'] = '送X張Y類型優惠券(優惠金額為Y)'; $fieldset->removeField('simple_action'); $fieldset->addField('simple_action', 'select', array( 'label' => Mage::helper('salesrule')->__('Apply'), 'name' => 'simple_action', 'options' => $options, ),'^'); }
效果如下:
現在,你就可以像設置自帶的促銷規則那樣,設置自己想要在符合某種條件時所想要的操作,我這裏以符合
某種條件時送優惠券為例(該優惠券功能是另外開發的,不在本文的討論範圍)。
比如,購物滿500送一張優惠券等等。條件設置為
操作選擇自己剛剛添加的那個,其他設置與一般的規則設置一致。
這樣,第一步添加新的動作(Actions)就完成了,至於如何在購物車頁麵驗證這條自己新增的規則,下一篇文章再講
PS:以上的代碼隻是例子,每個人可以在規則引擎的基礎上按需求開發出自己需求的功能。
最後更新:2017-04-02 22:16:01
上一篇:
asp.net頁麵刷新後樣式發生改變
下一篇:
CSDN精選Android開發博客
《數據結構與抽象:Java語言描述(原書第4版)》一P.4 選擇類
決戰雙11之巔 阿裏安全治理黑灰產之技術圖譜曝光
"0x00a1bdb3" 指令引用的 "0x00000001" 內存。該內存不能為 "read"。
Android開發13——內容提供者ContentProvider的基本使用
w3c係列CSS之路(五):詳解visual formatting model
《JVM故障診斷指南》之2 —— 調整合適的Java堆大小的技巧
Java線程範圍變量——ThreadLocal的模擬和解釋
Oracle 查詢表中各列名稱、表中列數
第九章 關係映射 一對一關係 共享主鍵方式實現一對一
Oracle Partition 分區詳細總結