1

/etc/ dir (モジュール用) の system.xml ファイルを使用して構成にフィールドを追加する Magento 拡張機能を作成しました。現時点では 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');

3 番目のパラメーターは、'default'、'website'、'store' のいずれを保存するかです。4 番目のパラメーターは、保存する Web サイト ID またはストア ID を定義します。

編集:変更を有効にするには、これを行うときにキャッシュを無効にするか、後でキャッシュを更新/フラッシュする必要があります。

于 2012-12-17T23:21:20.577 に答える