2017-01-25 2 views

答えて

0

マゼンタチェックアウトプロセスの合計注文に追加料金または割引を追加する方法 一般的な注文では、注文総額は通常、合計額、配送費、税金、ディスカウント、これらの値は合計注文総額が計算されます。我々は、合計に追加する この追加料金は

チェックアウトページの順序の合計、 カートページの順序の合計、 マイアカウント注文ビューページ、 プリントオーダーPDF、 注文メール、 管理発注に反映することになります表示/ Eメール/ PDF、 管理請求書の表示/ Eメール/ PDF、 管理者クレジットメモの表示/ Eメール/ PDF。

チェックアウトページ合計注文合計基本 合計をチェックアウトページに追加する方法がわかります。チェックアウトページに表示されるすべての合計明細は、フォルダMage \ Sales \ Model \ Quote \ Address \ Totalにあるファイルから取得します。

注文前にすべての注文データがクォートオブジェクトに格納され、注文後に注文オブジェクトに転送されます。見積もり合計はコレクタパターンに従い、コレクタをいくつでも追加することができます。私たちのconfig.xmlに引用オブジェクトにコレクタを追加するには、我々は

<global> 
    <sales> 
     <quote> 
      <totals> 
       <fee> 
        <class>fee/sales_quote_address_total_fee</class> 
       </fee> 
      </totals> 
     </quote> 
    </sales> 

これは合計は引用のために計算されるたびに意味の行を追加し、それはまた、このクラスを呼び出します。

すべてのコレクターは、QuoteモデルのcollectTotals()関数から呼び出されます。我々は

<?php class Excellence_Fee_Model_Sales_Quote_Address_Total_Fee 

がMage_Sales_Model_Quote_Address_Total_Abstract { 保護$ _CODE = '料' を拡張し、コードに入れ、当社のコレクタクラスで

。ここで

​​

} 私たちは手数料の金額が含まれているfee_amountとbase_fee_amount二つのフィールドを使用しています。私たちは今まで、このコード

ALTER TABLE `".$this->getTable('sales/quote_address')."` ADD `fee_amount` DECIMAL(10, 2) NOT NULL; 
    ALTER TABLE `".$this->getTable('sales/quote_address')."` ADD `base_fee_amount` DECIMAL(10, 2) NOT NULL; 

注文ページ を追加し、当社のモジュールインストーラファイル内ので、データベースにこれらの二つのフィールドを保存参照してくださいする必要がありますが、書かれたすべてのコードは、引用オブジェクトに対してのみ行われています。しかし、注文後、すべての情報を注文オブジェクトに転送する必要があります。上記のように、2つのフィールドfee_amountとbase_fee_amountを使用しています。この2つのフィールドをorderテーブルに格納する必要があります。上記をすべて行うには、2つのことを行う必要があります。まずconfig.xmlファイル内のファイルのインストール私たちのモジュールでは、グローバルタブ内

ALTER TABLE `".$this->getTable('sales/order')."` ADD `fee_amount` DECIMAL(10, 2) NOT NULL; 
    ALTER TABLE `".$this->getTable('sales/order')."` ADD `base_fee_amount` DECIMAL(10, 2) NOT NULL; 

<fieldsets> 
     <sales_convert_quote_address> 
     <fee_amount><to_order>*</to_order></fee_amount> 
     <base_fee_amount><to_order>*</to_order></base_fee_amount> 
     </sales_convert_quote_address> 
    </fieldsets> 

をこのコードを追加

関連する問題