2011-08-15 16 views
1

私はcostumerによって推理されることができるいくつかの製品を持っています。当然、価格は衣装に基づいていなければなりません。商品のカスタムオプション(幅と高さ)に基づいた価格

たとえば、私はラグを販売しています。ラグの寸法は、時にはコスプレマーによって選択されることがある。これを達成するために、カスタマイズされたすべての製品に3つのカスタムオプション、square_meter_price、width、heightを作成しました。

[カートに追加]をクリックした後、顧客は幅と高さを選択できます。その後、チェックアウト/カートのURLで、「商品名」欄に正しい商品名、幅、高さが読み込まれます。ここで必要とされるのは、正しい価格を得ることだけです。

私はMage_Catalog_Model_Product_Type_Price :: getPrice()メソッドをオーバーライドすることでこれを実行しようとしています。問題は、私が計算を行うことができるように、私はcostumerによって入力された幅/高さの値を得ることができないということです。

注: $ product-> getOptions()を使用して繰り返し試してみました。カスタムオプション幅/高さを得ることができましたが、顧客が入力した値を取得できませんでした。

$ product-> getCollection() - > getAttribute( 'width')と$ product-> getAttribute( 'width')を試しましたが、nullが返されました。

ありがとうございます。

class My_Catalog_Model_Product_Type_Price extends Mage_Catalog_Model_Product_Type_Price 
{ 
    public function getPrice(Mage_Catalog_Model_Product $product) 
    { 

     // get the width provided by the user 
     $width = $this->howToGet('width'); 

     // get the height provided by the user 
     $height = $this->howToGet('height'); 

     if ($width && $height) { 
      return $width * $height * $product->getAttribute('square_meters_price'); 
     } 

     return parent::getPrice($product); 
    } 

} 

答えて

0

http://www.oscprofessionals.com/demo/magento-customize-product-options/index.php/magento-customize-demo/magento-customized-option.htmlこのリンクには必須の機能があります。

これは、magentoにはこのタイプの製品機能がないため、コードを変更する必要があります。

+0

私はそれを行うことを約束したいくつかのプラグインを見ました。私は独自のソフトウェアを使用することはできません。 – Marcelo

+0

私はMagentoが検索できるので、ユーザー入力がどこに保存されているのだろうか。チェックアウトページにはそれが表示されます。セッションかもしれない? – Marcelo

1

_applyOptionsPriceMage_Catalog_Model_Product_Type_Priceに変更すると、これを行うことができます。この機能はオプションをループし、オプション価格を1つずつ追加します。追加するのではなく、乗算するだけです。

//$finalPrice += $group->getOptionPrice($quoteItemOption->getValue(), $basePrice); 
$finalPrice *= $group->getOptionPrice($quoteItemOption->getValue(), $finalPrice); 
関連する問題