如何根据商店ID设置内置付款方式

时间:2014-08-04 06:04:19

标签: magento magento-1.4 magento-1.8 magento-1.5 magento-1.6

我想根据商店ID显示Magento现有的内置付款方式。我有两家商店,想要在一家商店出示货到付款并付款,并且不希望这些付款方式在另一家商店。请帮助

2 个答案:

答案 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/