2013-12-20 2 views
1

내 Magento의 버전을 얻어서 변경 제품 가격 - 내가 jQuery를 포스트를 통해 $product_id$my_price 매개 변수를받는 외부 PHP 파일을 사용하고 있습니다> 1.6.2젠토 : 제품 ID를

. 내 "ajaxPriceCal.php"페이지에서

var priceNewValue = XX; // My custom price value 
var product_id = optionsPrice.productId; // Product id 

jQuery.post("http://flyingcakes.in/eshop/ajaxPriceCal.php", { price: priceNewValue, pid: product_id }); 

, 나는 값을 잡을 :

$product_id = $_POST['pid']; 
$my_price = $_POST['price'];  

는 지금은 마 젠토는 $my_price 같이 제품 ( $product_id)의 가격을 설정합니다. 이렇게 :

  1. 이 변경 가격은 제품이 장바구니에 추가되었을 때 반영됩니다.
  2. 제품 가격이 일시적으로 만 변경되므로 데이터베이스에 저장되지 않습니다.

어떻게해야합니까? 이 당신을 도울 것입니다

$_product=Mage::getModel('catalog/product')->load($product_id); 
$_product->setPrice($my_price); 
$_product-Save(); 

희망 -

+1

이 나를 위해 일한 ... -add-to-cart이 링크 –

답변

2

장바구니에 추가 이벤트 sales_quote_add_item을 캐치하는 관찰자를 만든 다음 옵저버에서 php-stuff를 사용하여이 제품에 대한 가격을 $ observer-> getEvent() -> getQuoteItem() -> setOriginalCustomPrice ([귀하의 가격]).

자세한 내용은 Changing the price in quote while adding product to cart: magento입니다. 당신은 당신이 그것에 대해 하나 개의 모듈 http://magento.stackexchange.com/questions/4318/dynamically-calculated-prices-save-before을 만들 필요가이 방법을 수행하지 못할

+0

이 솔루션을 사용해야합니다. Ajax 호출은 어떻게 사용됩니까? 특별 가격을 사용하기위한 조건은 무엇입니까? 옵저버를 사용하는 것만으로는 생각할 수 없었습니다 (장바구니 이벤트에 추가). – dagfr

+0

@gerard 감사합니다! 내가 Jquery를 사용하여 프론트 엔드에서 계산 한 것과 동일한 가격을 Observer.php에 설정하는 방법이 있습니까? 가격의 가치는 고객이 드롭 다운과 체크 박스를 통해 선택하는 것에 달려 있기 때문에 observer.php에서 가격의 값을 옵저버로 전달하고 싶지 않습니다. –

+0

@dagfr 아뇨, Ajax 통화가 작동하지 않았습니다. –

0

당신은 같은 제품을로드해야합니다.

+2

이 코드는 데이터베이스의 가격을 변경합니다. 이럴 –

+0

이 항목 개체의 가격을 설정하지 않아도됩니다. $ _product –