2015-11-02 78 views
0

我在Magento 1.9.1.1上,目前我正在尝试基于购物车中产品的自定义属性创建购物车价格规则。我在观察者(sales_quote_save_after)中使用以下代码来设置属性,它对购物车价格规则没有影响。看来,当我设置购物车产品属性时,价格规则实际上是检查产品属性而不是购物车中的产品属性。Magento - 创建购物车价格规则购物车项目属性?

$quote = $observer->getEvent()->getQuote(); 
$cartItems = $quote->getAllVisibleItems(); 
$productSkus = Mage::getSingleton('core/session')->getProductSkus(); 
foreach ($cartItems as $item) { 
    $skuname = $item->getSku();        
    if ($skuname == $productSkus){ 
     $item->getProduct()->setData('stone_remnant_flag',$remnant); 
     $item->save(); 
     break; 
    } 
} 

所以我想知道如何去创建一个基于Cart Item Attribute的购物车价格规则条件。目前的Magento只能说明:

  • 价格在购物车
  • 数量在车
  • 行总计在车
+0

没有分开车项目属性。购物车中的所有物品实际上都是常规产品。你为什么试图动态设置这些值?即使你动态地在产品上设置了一些属性,重要的是要提到你使用哪个观察者来做到这一点。 – bla0009

+0

我需要给产品打折。这些都是与自定义选项相同的产品。根据用户选择的自定义选项(与产品关联),观察者正在更新属性,以便应用折扣。我正在使用sales_quote_save_after观察者。如果你说的是真的,那么我设定属性的方法肯定是错误的。 –

+0

你是否尝试开发一个magento扩展或使用magento?如果是2,您可以尝试在magento管理端使用促销/购物车规则,因为您可以为您的需要创建条件 – Pablote

回答

0

你可能使用了错误的事件。您是否尝试使用此事件checkout_cart_product_add_after

这是你的观察者应该如何看起来像:

$quoteItem = $observer->getEvent()->getQuoteItem(); 
$product = $observer->getEvent()->getProduct(); 
// your code here