I have a problem with my observer. I want to apply a discount on the before product add to cart event, but I am getting all price set as null. My observer code is:
public function applyCartDiscount(Varien_Event_Observer $observer)
{
$item = $observer->getQuoteItem();
if ($item->getParentItem()) {
$item = $item->getParentItem();
}
// Discounted 25% off
$percentDiscount = 0.25;
// This makes sure the discount isn't applied over and over when refreshing
$specialPrice = $item->getOriginalPrice() - ($item->getOriginalPrice() * $percentDiscount);
// Make sure we don't have a negative
$item->setCustomPrice($specialPrice);
$item->setOriginalCustomPrice($specialPrice);
$item->getProduct()->setIsSuperMode(true);
}
When I print array using
print_r($item->toArray());
It gives array something like
Array
(
[item_id] => 21
[quote_id] => 4
[created_at] => 2013-11-28 05:46:02
[updated_at] => 2013-11-28 05:46:02
[product_id] => 51
[store_id] => 1
[parent_item_id] =>
[is_virtual] => 0
[sku] => 1111
[name] => Ottoman
[description] =>
[applied_rule_ids] =>
[additional_data] =>
[free_shipping] => 0
[is_qty_decimal] => 0
[no_discount] => 0
[weight] => 20.0000
[qty] => 2
[price] => 0.0000
[base_price] => 0.0000
[custom_price] => 0.0000
[discount_percent] => 0.0000
[discount_amount] => 0.0000
[base_discount_amount] => 0.0000
[tax_percent] => 0.0000
[tax_amount] => 0.0000
[base_tax_amount] => 0.0000
[row_total] => 0.0000
[base_row_total] => 0.0000
[row_total_with_discount] => 0.0000
[row_weight] => 20.0000
[product_type] => simple
[base_tax_before_discount] =>
[tax_before_discount] =>
[original_custom_price] => 0.0000
[gift_message_id] =>
[weee_tax_applied] => a:0:{}
[weee_tax_applied_amount] => 0.0000
[weee_tax_applied_row_amount] => 0.0000
[base_weee_tax_applied_amount] => 0.0000
[base_weee_tax_applied_row_amnt] =>
[weee_tax_disposition] => 0.0000
[weee_tax_row_disposition] => 0.0000
[base_weee_tax_disposition] => 0.0000
[base_weee_tax_row_disposition] => 0.0000
[redirect_url] =>
[base_cost] => 50.0000
[price_incl_tax] => 0.0000
[base_price_incl_tax] => 0.0000
[row_total_incl_tax] => 0.0000
[base_row_total_incl_tax] => 0.0000
[hidden_tax_amount] =>
[base_hidden_tax_amount] =>
[qty_options] => Array
(
)
[product] => Array
(
[store_id] => 1
[entity_id] => 51
[entity_type_id] => 10
[attribute_set_id] => 42
[type_id] => simple
[sku] => 1111
[created_at] => 2007-08-28 16:25:46
[updated_at] => 2008-08-08 14:59:04
[has_options] => 0
[required_options] => 0
[name] => Ottoman
[meta_title] => Ottoman
[meta_description] => Ottoman
[image] => /o/t/ottoman.jpg
[small_image] => /o/t/ottoman.jpg
[url_key] => ottoman
[thumbnail] => /o/t/ottoman.jpg
[gift_message_available] =>
[url_path] => ottoman.html
[custom_design] =>
[options_container] => container2
[color] => 26
[status] => 1
[tax_class_id] => 2
[room] => 72
[visibility] => 4
[description] => The Magento ottoman will impress with its style while it delivers on quality. This piece of living room furniture is built to last with durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.
[meta_keyword] => Ottoman
[dimension] =>
[model] => magotto
[short_description] => With durable solid wood framing, generous padding and plush stain-resistant microfiber upholstery.
[country_orgin] => Italy
[finish] => Microfiber
[custom_layout_update] =>
[price] => 299.9900
[cost] => 50.0000
[weight] => 20.0000
[minimal_price] => 299.9900
[group_price] => Array
(
)
[group_price_changed] => 0
[tier_price] => Array
(
)
[tier_price_changed] => 0
[media_gallery] => Array
(
[images] => Array
(
[0] => Array
(
[value_id] => 201
[file] => /o/t/ottoman.jpg
[label] =>
[position] => 0
[disabled] => 1
[label_default] =>
[position_default] => 0
[disabled_default] => 1
)
)
[values] => Array
(
)
)
[stock_item] => Array
(
[item_id] => 29
[product_id] => 51
[stock_id] => 1
[qty] => 706.0000
[min_qty] => 0.0000
[use_config_min_qty] => 1
[is_qty_decimal] => 0
[backorders] => 0
[use_config_backorders] => 1
[min_sale_qty] => 1.0000
[use_config_min_sale_qty] => 1
[max_sale_qty] => 100.0000
[use_config_max_sale_qty] => 1
[is_in_stock] => 1
[low_stock_date] => 0000-00-00 00:00:00
[notify_stock_qty] =>
[use_config_notify_stock_qty] => 1
[manage_stock] => 0
[use_config_manage_stock] => 1
[stock_status_changed_auto] => 0
[use_config_qty_increments] => 1
[qty_increments] => 0.0000
[use_config_enable_qty_inc] => 1
[enable_qty_increments] => 0
[is_decimal_divided] => 0
[type_id] => simple
[stock_status_changed_automatically] => 0
[use_config_enable_qty_increments] => 1
[product_name] => Ottoman
[store_id] => 1
[product_type_id] => simple
[product_status_changed] => 1
[product_changed_websites] =>
[ordered_items] => 2
)
[is_in_stock] => 1
[is_salable] => 1
[website_ids] => Array
(
[0] => 1
)
[cart_qty] => 1
[qty] => 1
[stick_within_parent] =>
[customer_group_id] => 0
[final_price] =>
)
[tax_class_id] => 2
[is_recurring] =>
[has_error] =>
[qty_to_add] => 1
Please help where am I going wrong..