在观察者处获得产品价格无效

时间:2013-11-28 06:14:23

标签: magento observers

我的观察员有问题我想在产品添加到购物车之前应用折扣,但我得到所有价格为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

) 请帮助我出错的地方......

0 个答案:

没有答案