2011-10-19 12 views
3

私のクライアントは、非常に異なる製品、レイアウト、および異なるドメインを持つマルチショックを実行します。私はストアの1つのチェックアウトプロセスの拡張を開発しましたが、Magentoにこの特定のストアでのみ動作するように指示する方法はありません。マルチショップの単一店舗用マゼンタ拡張

これは/app/etc/modules/sampleextension.xmlに記載されていると思われますが、インターネット上でこれに関する情報は見つかりませんでした。

店舗を拡張する方法はありますか?

おかげ トーマス

答えて

0

あなたが/「アクティブ」フィールドを持つべきである可能性があり、あなたのSystem.Xmlの中には、ドロップダウンすることwhich'd「はい/いいえ」、その後することができます(DES)アクティブ、それのためにすべてのウェブサイト/ストア/ストアビュー。
もちろん、コードのいくつかの戦略的ポイントでは、このビューでアクティブであるかどうかをチェックします:)

4

2つの解決策があります。 1)プログラムによって: 任意の設定フィールドを作成して、特定のストアを行うことができます。そして、モジュールから起動する必要があるかどうかをチェックすることができます。 ファイル/app/code//yourcompany/yourmodule/etc/system.xmlでは、タグshow_in_default、show_in_store、show_in_websiteのおかげで、設定フィールドストアビュー、ウェブサイト、またはデフォルトで設定できます。

したがって、設定フィールド「アクティブ」を作成する必要があります。これは、支払方法設定項目 "有効"のパスが支払/支払明細/有効になることを意味します。

このパスから、支払いクラスをクラスMage_Payment_Model_Method_Abstractで拡張した場合、Magentoは支払いモジュールが利用可能かどうかを確認します。

チェッククラスとメソッドMage_Payment_Model_Method_Abstract :: isAvailableファイルアプリ/コード/コア/メイジ/お支払い/モデル/メソッドで/

あなたがバックエンドでのお支払い方法を設定しますAbstract.php

、あなたが持っていますストアビューまたはウェブサイトのフィールド「アクティブ」を「1」に設定するか、デフォルトでは希望どおりに設定します。

ここにあなたの支払いモジュール用の設定ファイルSystem.Xmlのための一例

<config> 
    <sections> 
    <payment translate="label" module="payment"> 
     <label>Payment Methods</label> 
     <tab>sales</tab> 
     <frontend_type>text</frontend_type> 
     <sort_order>400</sort_order> 
     <show_in_default>1</show_in_default> 
     <show_in_website>1</show_in_website> 
     <show_in_store>1</show_in_store> 
     <groups> 
      <yourpaymentname translate="label"> 
       <label>Your new Payment method</label> 
       <frontend_type>text</frontend_type> 
       <sort_order>1</sort_order> 
       <show_in_default>1</show_in_default> 
       <show_in_website>1</show_in_website> 
       <show_in_store>1</show_in_store> 
       <fields> 
        <active translate="label"> 
         <label>Enabled</label> 
         <frontend_type>select</frontend_type> 
         <source_model>adminhtml/system_config_source_yesno</source_model> 
         <sort_order>1</sort_order> 
         <show_in_default>1</show_in_default> 
         <show_in_website>1</show_in_website> 
         <show_in_store>0</show_in_store> 
        </active> 
      <yourpaymentname> 
     </groups> 
     .... 
    </sales> 
<sections> 

2)第二の溶液は、設定ページのタブ拡張で、バックエンドを通じて多分最も簡単な方法を行うことができます、設定ページの左下にあります。 ショップ内の有効または無効のモジュールの一覧が表示されます。表示するストアビューを選択するには、ページの左上にあるストアスイッチャーで、各モジュール名の前にあるドロップダウンメニューを使用して、有効にするモジュールを選択します。

は、それが よろしく

+0

正しくありませんがお役に立てば幸いです。 System> Configuration> Advancedの下にあるパネルは、モジュール出力のみを無効にします。拡張機能とその設定はまだ有効です。 – benmarks

+0

@Ben:これは本当です。フロントエンドでの支払い方法は表示されず、顧客が決済処理中に支払い方法を使用することはできません。最後に、必要が完了しました。顧客は支払方法の出力にアクセスできません。ポスターが開発者でない場合は、最も簡単な方法です。 –

+0

@Diglinはあなたのソリューションに感謝します。私はおそらく最初の解決策をもう一度見直さなければならないでしょう。 2番目の方法ははるかに簡単に見えると私はそれを試してみましょう。 – Thomas