在magento中编辑配置值(magento扩展)

Jas*_*son 1 magento

我创建了一个Magento扩展,它使用/ etc/dir(对于我的模块)中的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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

有没有人知道如何设置这些值?

Ian*_*Ian 5

如果您正在寻找默认值,您可以:

<config>
...
    <default>
        <payment>
            <ezimerchant>
                <merchantid>TEST</merchantid>
            </ezimerchant>
        </payment>
    </default>
</config>
Run Code Online (Sandbox Code Playgroud)

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

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

第三个参数是应对保存它,'默认','网站','商店'.第四个参数定义要将其保存的网站ID或商店ID.

编辑:您必须在执行此操作时禁用缓存,或者之后刷新/刷新缓存以使更改生效.