2013-07-06 143 views
0

我试图让我的Magento实例有所不同;增加销售产品库存

我想在销售产品时增加产品的库存(在特定条件下)。我在Magento管理面板中添加了一个自定义复选框,当它被选中时,我希望增加产品的数量。

我目前正在研究以下方法:

Mage_Sales_Model_Service_Quote:submitOrder() 

它是一个良好的开端在看什么?有关这个问题的任何提示?

回答

0

我想我已经达到了我想要的。

我在Mage_Sales_Model_Service_Quote:submitOrder()

... 
    // $mySpecialCondition = form.checkbox 
    foreach ($quote->getAllItems() as $item) { 
     if($mySpecialCondition){ 
      $item->setQty(0 - $item->getQty(), true); 
     } 
    ... 

添加以下行也改变了方法Mage_Sales_Model_Quote_Item:_prepareQty接受负值:

protected function _prepareQty($qty, $ignoreValue = false) 
{ 
    $qty = Mage::app()->getLocale()->getNumber($qty); 
    if(!$ignoreValue){ 
     $qty = ($qty > 0) ? $qty : 1; 
    } 
    return $qty; 
} 

不管怎样,谢谢:)

+1

这不是一个好办法去解决它,尝试使用一个事件/观察者 – Andrew

+0

谢谢@Andrew我会试试看。 – MatheusJardimB

+1

看看sales_order_place_after事件,有几个设置观察者的例子。这将是一个更好的解决方案,而不是触摸任何核心代码。 – Andrew