我的观察员有问题我想在产品添加到购物车之前应用折扣,但我得到所有价格为null且我的观察者代码为
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);
}
当我使用
打印数组时print_r($item->toArray());
它给出类似
的数组 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
) 请帮助我出错的地方......