5

Magento チェックアウトに表示される一部のクレジット カードの名前を変更しようとしています (たとえば、"Visa" は "Visa Debit/Credit" になります)。

これを行うには、 で定義されているように名前を編集する必要があることを発見しました/app/code/core/Mage/Payment/etc/config.xml

コアファイルを上書きしたくないので、このファイルをコピーし/app/code/local/Mage/Payment/etc/config.xmlてそこに変更を加えようとしましたが、うまくいきませんでした。調査によると、Magento は最初にローカル フォルダーから構成ファイルを自動ロードしないのでしょうか?

次に、の代わりに変更app/etc/modules/Mage_All.xmlして指定できることを発見しました。ローカル フォルダーの下で行った変更は機能します。<codePool>local</codePool><codePool>core</codePool><Mage_Payment>

これは正しいアプローチですか?コア モジュールを変更するcodePoolと、何らかの影響がありますか? コアモジュールを「オーバーライド」する他の方法はありますconfig.xmlか?

4

1 に答える 1

10

ローカルの下に新しいモジュールを作成する必要があります:Yourcompany_Payment

このモジュールでは、必要なXMLリライトを使用してミニマリストetc/config.xmlを定義します。

<config>
    <modules>
        <Yourcompany_Payment>
            <version>0.1.0.0</version>
        </Yourcompany_Payment>
    </modules>
    <global>
        <payment>
            <cc>
                <types>
                    <AE>
                        <code>AE</code>
                        <name>American Express</name>
                        <order>0</order>
                    </AE> [...]

次に、app/etc/modulesフォルダーに、:を使用して新しいYourcompany_Payment.xml(またはYourcompany_All.xml)を追加します。

<config>
    <modules>
        <Yourcompany_Payment>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Payment/>
            </depends>
        </Yourcompany_Payment>
    </modules>
</config>

依存ノードは、リライトを機能させるために、magentoの後にXMLをロードするようにmagentoに指示するため、非常に重要です。

于 2012-11-06T12:04:40.407 に答える