我想根据商店ID显示Magento现有的内置付款方式。我有两家商店,想要在一家商店出示货到付款并付款,并且不希望这些付款方式在另一家商店。请帮助
答案 0 :(得分:1)
在决定向Magento展示哪些付款方式时,会发出一个事件。您可以注册该事件的观察者并按商店ID过滤付款清单。这是怎么做的。
为观察者创建新模块。在config.xml中注册观察者:
<confg>
...
<frontend>
...
<events>
<payment_method_is_active>
<observers>
<company_module>
<type>singleton</type>
<class>Company_Module_Model_Observer</class>
<method>frontendPaymentMethods</method>
</company_module>
</observers>
</payment_method_is_active>
</events>
</frontend>
</config>
然后使用frontendPaymentMethods函数为观察者类Model / Observer.php创建模型:
<?php
class Company_Module_Model_Observer {
public function frontendPaymentMethods($observer) {
$quote = $observer->getData('quote');
$result = $observer->getData('result');
$method = $observer->getData('method_instance');
if($method->getCode() == 'banktransfer' && Mage::app()->getStore() == 5) {
$result->isAvailable = false;
}
}
}
这将禁用ID为5的商店的银行转账付款方式。
答案 1 :(得分:0)
您可以在系统&gt;下的Magento配置中执行此操作组态。从配置页面左上角的下拉列表中选择一个商店。并禁用货到付款和paypal付款方式。这将是特定于商店的配置,这意味着这些付款方式将仅在该商店中禁用,并在其他商店中可用。
http://www.magentocommerce.com/knowledge-base/entry/overview-how-multiple-websites-stores-work/