【发布时间】:2011-10-19 15:01:55
【问题描述】:
我的客户经营一家拥有不同产品、不同布局和不同领域的综合商店。我为其中一家商店的结帐流程开发了一个扩展程序,但现在没有办法告诉 Magento 只与这家特定商店合作。
我希望 /app/etc/modules/sampleextension.xml 中会提到这一点,但在互联网上没有找到任何相关信息。
有没有办法使扩展商店特定?
谢谢 托马斯
【问题讨论】:
标签: magento-1.4 magento
我的客户经营一家拥有不同产品、不同布局和不同领域的综合商店。我为其中一家商店的结帐流程开发了一个扩展程序,但现在没有办法告诉 Magento 只与这家特定商店合作。
我希望 /app/etc/modules/sampleextension.xml 中会提到这一点,但在互联网上没有找到任何相关信息。
有没有办法使扩展商店特定?
谢谢 托马斯
【问题讨论】:
标签: magento-1.4 magento
有两种解决方案。 1)以编程方式: 您可以制作任何配置字段,存储特定的。从那里你可以检查,如果你需要激活你的模块,在代码中。 使用文件 /app/code//yourcompany/yourmodule/etc/system.xml,感谢标签 show_in_default、show_in_store、show_in_website,您可以设置配置字段存储视图、网站或默认设置。
因此您必须创建一个“活动”配置字段。表示支付方式配置字段“active”的路径为payment/yourpaymentname/active。
从这条路径中,如果您使用 Mage_Payment_Model_Method_Abstract 类扩展了支付类,Magento 将检查支付模块是否可用。
检查文件app/code/core/Mage/Payment/Model/Method/Abstract.php中的类和方法Mage_Payment_Model_Method_Abstract::isAvailable
当您在后端配置付款方式时,您必须将商店视图或网站的“活动”字段设置为“1”,或者默认情况下,按照您的意愿。
这里是支付模块配置文件 system.xml 的示例
<config>
<sections>
<payment translate="label" module="payment">
<label>Payment Methods</label>
<tab>sales</tab>
<frontend_type>text</frontend_type>
<sort_order>400</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<groups>
<yourpaymentname translate="label">
<label>Your new Payment method</label>
<frontend_type>text</frontend_type>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
<fields>
<active translate="label">
<label>Enabled</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</active>
<yourpaymentname>
</groups>
....
</sales>
<sections>
2)第二种解决方案可以通过后端完成,最简单的方法可能是在配置页面的高级选项卡中,在配置页面的左下方。 您将拥有商店中所有启用或禁用模块的列表。您可以在页面左上角的商店切换器中选择要显示或不显示的商店视图,然后通过每个模块名称前面的下拉菜单选择要启用或不启用的模块。
希望对你有帮助 问候
【讨论】:
您可以/应该在您的 system.xml 中有一个“活动”字段,这将是一个下拉菜单“是/否”,然后您可以(取消)为每个网站/商店/商店视图激活它。
当然,在代码的某些战略要点中,您将检查它是否在此视图中处于活动状态:)
【讨论】: