2013-07-06 4 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, есть несколько примеров настройки наблюдателя. это было бы более приятное решение, а не invlove, касающееся любого основного кода. – Andrew

Смежные вопросы