在magento

时间:2016-10-11 04:51:41

标签: magento magento-1.9

我已经编写了一个自定义代码,用于在产品页面上添加不同的产品价格:

代码:app / code / local / custom / price / etc / config.xml

<?xml version="1.0"?>
<config>
  <global>
    <models>
        <price>
             <class>custom_price_Model</class>
        </price>
    </models>
    <events>
      <checkout_cart_product_add_after>
          <observers>
               <custom_price_observer>
               <class>price/observer</class>
               <method>modifyPrice</method>
               </custom_price_observer>
          </observers>
      </checkout_cart_product_add_after>
    </events>
  </global>
</config> 

代码:app / code / local / custom / price / Model / Observer.php

class custom_price_Model_Observer
{
    public function modifyPrice(Varien_Event_Observer $obs)
    {
        // Get the quote item
        $item = $obs->getQuoteItem();
        // Ensure we have the parent item, if it has one
        $item = ( $item->getParentItem() ? $item->getParentItem() : $item );
        // Load the custom price
        $price = "30";
        // Set the custom price
        $item->setCustomPrice($price);
        $item->setOriginalCustomPrice($price);
        // Enable super mode on the product.
        $item->getProduct()->setIsSuperMode(true);
    }

仍然无法正常工作。请帮助。

2 个答案:

答案 0 :(得分:0)

您必须按照以下方式保存自定义价格。

class custom_price_Model_Observer
{
     public function modifyPrice(Varien_Event_Observer $obs)
     {
         // Get the quote item
         $item = $obs->getQuoteItem();
         // Ensure we have the parent item, if it has one
         $item = ( $item->getParentItem() ? $item->getParentItem() : $item );
        // Load the custom price
        $price = "30";
        // Set the custom price
        $item->setCustomPrice($price);
        $item->setOriginalCustomPrice($price);
        // Enable super mode on the product.
        $item->getProduct()->setIsSuperMode(true);
        $item>save();
    }
}

答案 1 :(得分:0)

下面是我添加到购物车后用于产品应用折扣的代码,我已经为添加到购物车的产品应用了50%的折扣,这对我有用。

function modifyPrice(Varien_Event_Observer $observer){
    $event = $observer->getEvent();
    $quote_item = $event->getQuoteItem();
    $product_id=$quote_item->getProductId();
    $product_price = Mage::getModel('catalog/product')
                        ->load($product_id)
                        ->getPrice();         
    if($product_price != 0){           
        $percentDiscount = 0.50;
        $specialPrice = $product_price - ($product_price * $percentDiscount);  
        $quote_item->setOriginalCustomPrice($specialPrice);        
    }
}