1

解決策があるかどうかわからないという問題に直面しています。実際には、magentoWebサイトAとmagentoWebサイトBがあり、どちらも同じコアソースを使用しています。どちらにも仕様があるため、Webサイトの対応するフォルダーのコードの一部をオーバーライドしました。

したがって、実際には、両方のWebサイトがWebサイトAのチェックアウトモジュールを使用しています。しかし、B Webサイトのチェックアウト動作を今すぐ変更する必要があり、BWebサイトのコントローラーのみを書き直す方法を探しています。

だから私の質問は:どうすればAウェブサイトのためだけにAフォルダーのチェックアウトコントローラーを書き直し、BウェブサイトのためだけにBフォルダーの同じコントローラーを書き直すことができますか?

私はすでに次のようなことを試みましたが成功しませんでした:

サイト->config.xml

<routers>
    <checkout>
        <args>
            <modules>
                <Mage_Checkout>Mage_Checkout</Mage_Checkout>
                <A_Checkout before="Mage_Checkout">A_Checkout</A_Checkout>
                <frontname>checkout</frontname>
            </modules>
        </args>
    </checkout>
</routers>

Bサイト->config.xml

<routers>
    <checkout>
        <args>
            <modules>
                <Mage_Checkout>Mage_Checkout</Mage_Checkout>
                <B_Checkout before="A_Checkout">B_Checkout</B_Checkout>
                <frontname>checkout</frontname>
            </modules>
        </args>
    </checkout>
</routers>

問題は、Bチェックアウトコントローラーが最初に呼び出されることです。

この状況では、私の唯一の解決策は、websiteIdを確認してから、Aサイトにいる場合は親関数を呼び出し、BWebサイトにいる場合は続行するように見えます。

これが良い解決策のように見えるかどうか教えてください。それとも私は何かが足りないのですか?

アドバイスありがとうございます!

セブ

4

1 に答える 1

0

私の提案は、2 つの同様のテンプレートを作成し、1 つのテンプレートを店舗 A に割り当て、別のテンプレートを店舗 B に割り当てることです。店舗 B のテンプレートには、1 ページのチェックアウトで必要な変更を適用します。

ここでも同じコア コードを共有しますが、ブロックおよびテンプレート レベルで変更する必要があります。これは、カスタマイズよりもはるかに簡単です。

于 2013-03-19T17:41:36.703 に答える