1

我创建了一个 Magento 扩展,它使用 /etc/ 目录中的 system.xml 文件(对于我的模块)将字段添加到我的配置中。Magento 1.5 是我目前的目标系统,但我也打算将兼容性扩展到 1.4 和 .16

<merchantid translate="label">
      <label>Merchant ID</label>
      <frontend_type>text</frontend_type>
      <sort_order>20</sort_order>
      <show_in_default>1</show_in_default>
      <show_in_website>1</show_in_website>
      <show_in_store>0</show_in_store>
</merchantid>

我正在尝试在运行时填充此字段的值。目前,我在我的插件中运行它:Mage::getStoreConfig('payment/mymerchant/merchantid');它返回字段中填充的值。

我需要能够以编程方式更新这个字段,我试过这个:

 $installer = new Mage_Core_Model_Resource_Setup();
                $installer->startSetup();
                $installer->setConfigData("payment/mymerchant/merchantid", "TEST");
                $installer->endSetup();

但没有成功。我也无法在谷歌上搜索问题,因为大多数结果似乎并不相关。

有谁知道我如何设置这些值?

4

1 回答 1

5

如果您正在寻找默认值,您可以执行以下操作:

<config>
...
    <default>
        <payment>
            <ezimerchant>
                <merchantid>TEST</merchantid>
            </ezimerchant>
        </payment>
    </default>
</config>

如果您真的在寻找程序化解决方案,您可以执行以下操作:

$configModel = Mage::getModel('core/config');
$configModel->saveConfig('payment/ezimerchant/merchantid','TEST');

The third parameter is what cope to save it, 'default', 'website', 'store'. The fourth parameter defines which Website ID or Store ID you want to save it with.

Edit: You must either disable cache when doing this or refresh/flush cache afterwards for the change to take effect.

于 2012-12-17T23:21:20.577 回答