Я хочу изменить значение своего пользовательского атрибута (voucher_value) в наборе настраиваемых атрибутов (ваучер) при добавлении в корзину. Я пробовал в событии наблюдателя checkout_cart_product_add_after. Мне удалось изменить цену, но не удалось изменить значение пользовательского атрибута voucher_value.
Вот моя функция
public function change_price($observer) {
// Get the quote item
$item = $observer->getQuoteItem();
// Ensure we have the parent item, if it has one
$item = ($item->getParentItem() ? $item->getParentItem() : $item );
Mage::log("Item Details: ".print_r($item, true), null, 'item_before1.log');
// Load the custom price
$price = Mage::app()->getRequest()->getPost('custom_voucher_price');
if(!empty($price)){
$product = Mage::getModel('catalog/product')->load($item->getProductId());
$product->addAttributeUpdate('voucher_value', 39 , 1);
//$product->addCustomOption('voucher_value_value', 259 , $product);
$product->save();
$voucher_discount = $product->getAttributeText('voucher_discount');
$voucher_value = $product->getAttributeText('voucher_value');
Mage::log("voucher_value: ".print_r($voucher_value, true), null, 'voucher_value.log');
$voucher_discount_amount = 0;
if($voucher_discount!=null && (!empty($voucher_discount))){
$voucher_discount = floatval($voucher_discount);
$voucher_discount_amount = $price * $voucher_discount/100;
}
else{
$voucher_discount = 0;
}
$custom_price = $price - $voucher_discount_amount;
$item->setCustomPrice($custom_price);
$item->setOriginalCustomPrice($custom_price);
$info = $item->getOptions();
$option = Mage::getModel('sales/quote_item_option')
->setProductId($product->getId())
->setCode('voucher_value')
->setProduct($product) // needed for EE only ?
->setValue(39);
$item->addOption($option);
$product = $observer->getProduct();
$item->setCustomAttribute($product->getCustomAttribute());
// $item->setOptions($option);
// $item->setData('voucher_value_value', $price ); */
}
$item->save();
// Enable super mode on the product.
$item->getProduct()->setIsSuperMode(true);
}
Пожалуйста, помогите, как изменить значение пользовательского атрибута набора настраиваемых атрибутов.