Я хочу изменить значение custom custom attribute (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);
}
Пожалуйста Помощь Как изменить значение пользовательского атрибута пользовательского набора атрибутов.
метод setVoucherCode не доступен – Sagardevd
Тогда попробуйте -> УстановитьДанные ('voucher_code', $ new_value); –
этот пользовательский атрибут (voucher_value) имеет цены в раскрывающемся списке в backend. Я могу установить с помощью setData ('voucher_value', $ new_value); функция одно из значения из раскрывающегося списка opton, но я хочу установить пользовательское значение, введенное пользователем на лицевой стороне – Sagardevd