Magento:如何设置购物车价格?

时间:2014-01-02 10:56:47

标签: php magento

我是Magento社区版的新手。 这可能是一件小事,但不知道该怎么做。

我想将购物车价格设为cartprice * 5? 示例 - 如果购物车商品重量大于10kg,则将cartprice设置为(10 * 5)。

2 个答案:

答案 0 :(得分:0)

您可以通过事件观察者执行此操作。

  <checkout_cart_product_update_after>
    <observers>
        <update_price_edit_save_product>
        <class>ABC_MModule_Model_Observer</class>
        <method>cartUpdatePrice</method>
        </update_price_save_product>
    </observers>
    </checkout_cart_product_update_after>

在Observer类中定义此函数,并按照项目设置价格执行实现。

  public function cartUpdatePrice(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 );



    //hidden filed from detail page


            $item->setCustomPrice($new_price);
            $item->setOriginalCustomPrice($new_price);
            $item->getProduct()->setIsSuperMode(true);


   }

答案 1 :(得分:0)

您可以使用事件观察器创建自己的模块来完成此任务。首先定义重量的商店配置值以及增加的次数,即10kgs和5次。

使用事件 checkout_cart_product_update_after ,您可以调用您的观察者函数并在该函数中包含以下代码

$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();

$weight = 0;
foreach($items as $item) {
    $weight += ($item->getWeight() * $item->getQty()) ;
}

if($weight > Mage::getStoreConfig('weight'))){
$weight = $weight * Mage::getStoreConfig('number of times you want to increase)
}
return $weight;