3

配送モジュールを作成した後、このブログの手順に従って、magento 1.7.xxのカスタム(集荷)配送方法を作成しようとしています。ユーザーの配送オプションの選択に基づいて送料を変更できるようにしたいと思います。

準備:

1.)カスタム(集荷)配送方法のフォームブロックを
作成しました。2。)ストア名(任意のテキスト)ドロップダウン/選択要素を、store1、store2、store3の3つの値で作成します。
3.)デフォルトの送料は、送料設定で$ 1.00に設定されています(テスト目的のみ)。

現在のステータス:

1.)必要なプロセスの後、1ページのチェックアウトで配送方法の選択に到達すると、3つのオプションがあり、配送価格がデフォルト価格に設定されているselect要素が表示されます。

目標:

ユーザーが最初のオプションを選択した場合は送料を$10.00に更新し、ユーザーが2番目のオプションを選択した場合は$20.00に更新したいと思います。

私の試み:

数時間グーグルした後、オブザーバーモデルにいくつかの変更を加えました。

NameSpace_ModuleName_Model_Observer extends Varien_Object {

public function saveShippingMethod($observer) {

   $request = $evt->getRequest();
   $quote = $evt->getQuote();
   $pickship = $request->getParam('shipping_pickship', false);
   $rates = $quote->getShippingAddress()->getShippingRatesCollection();
   $rate = $rates->getFirstItem();
   if($pickship['select_element'] == 1) {
     $rate->setPrice(10);
   } elseif($pickship['select_element'] == 2) {
     $rate->setPrice(20);
   }
   //Mage::log($rate->getPrice());

}

質問:

このタスクに適切なオブザーバー/メソッドを使用していますか?1つのステップでのみ機能します。[続行]をクリックして注文すると、デフォルトの価格にリセットされます。配送料の設定​​方法が間違っている可能性があります。私を正しい方向に導いたり、解決策を提案したりできますか?

4

2 に答える 2

1

カスタマイズされたソリューションをコーディングしたい場合は、ここで素晴らしいチュートリアルを見つけることができます:Magentoのカスタム配送方法

基本的に、オブザーバーを使用するべきではありません。代わりに、モジュールで2つの配送方法を使用するカスタムキャリアを定義する必要があります。

モデルで、関数を使用getAllowedMethods()して配送方法を宣言してから、関数collectRates()で各配送方法の料金を指定します。

于 2014-10-21T07:25:30.860 に答える
0

主な目標が異なる価格で複数の配送方法を提供することであり、サードパーティのモジュールを信頼できる場合は、WebShopAppsの無料のMatrixRateを試すことができます

http://www.magentocommerce.com/magento-connect/webshopapps-matrixrate-1-multiple-table-rates-extension.html

これには他のモジュールもありますが、これは私が試したものであり、期待どおりに機能します。

于 2014-01-11T12:12:24.267 に答える