Программно прекратить уменьшать количество товара при размещении заказа в magento и увеличивать количество при состоянии заказа Compleate

В Magento 1.9.0.1 по умолчанию это уменьшает количество акций при размещении заказа. Я хочу прекратить уменьшать количество акций при размещении заказа с целью поддельного заказа. И я также хочу, чтобы функционал увеличивал количество на складе, пока состояние заказа завершено, не ожидает обработки, не обрабатывает. Как это сделать программно или путем настройки в админ-панели. Если кто-то знает об этом, пожалуйста, ответьте.

Благодарю вас
Ankan

0

Решение

Просто откройте вашу админ-панель, перейдите в Система-> Конфигурация-> Вкладка Каталог-> Инвентарь, затем нажмите Опцию Stack и измените Уменьшить запас, когда заказ размещен на NO.

Спасибо,
Lovekesh

0

Другие решения

В панели администратора выберите Система-> Конфигурация-> Вкладка Каталог-> Инвентаризация. Затем нажмите Опцию стека и измените Уменьшение запаса, когда заказ размещен на NO. Чтобы остановить увеличение количества товара. На странице Модель / Автоматически / Завершить / Заказ / Observer.php, класс Webspidy_Customoption_Model_Automatics_Complete_Order_Observer
{публичная функция __construct () {}
публичная функция автоматически завершена ($ наблюдатель)
{
// Mage :: журнал ( ‘Ankan’);
$ order = $ наблюдатель-> getEvent () -> getOrder ();
/$ orders = Mage :: getModel (‘sales / order_invoice’) -> getCollection ()
-> addAttributeToFilter (‘order_id’, массив (‘eq’ => $ order-> getId ()));
/

    /*if ((int)$orders->count() !== 0) {
return $this;
}*/

//Mage::log($orderstate);

//if($order->getState() == 'complete'){
if(($order->getState() == 'processing') || ($order->getState() == 'pending_payment')){
if($order->hasInvoices()){
//Mage::log($orderstate);
//Mage::log('Ankan');
//Mage::log($order->getData());
//====== Order Details ================
$orderNumber = $order->getIncrementId();  //Mage::log($orderNumber);
$orderDet = Mage::getModel('sales/order')->load($orderNumber, 'increment_id');
//Mage::log($orderDet->getData());
$orderItems = $orderDet->getItemsCollection()
->addAttributeToSelect('*')
->load();

foreach($orderItems as $orderItem){
$productId = $orderItem->getProductId();
$productOptionSku   = $orderItem->getSku();
$productQty = $orderItem->getQtyOrdered();

$product = Mage::getModel('catalog/product')->load($productId);
$sku = $product->getSku();
$centralqty = $product->getStockItem()->getQty();

$values = array();
foreach ($product->getOptions() as $o) {
$p = $o->getValues();
}
foreach($p as $v)
{
$optionSku = $v->getSku();
$optionItem = $v->getQty();

//Mage::log($optionItem);
//Mage::log($productOptionSku.".....".$sku."-".$optionSku.".....".$optionItem);

if($productOptionSku == ($sku."-".$optionSku)){

if($centralqty >= ($optionItem*(int)$productQty)){
//$stockQty = (($centralqty-($optionItem*(int)$productQty))+$productQty);
$stockQty = ($centralqty-($optionItem*(int)$productQty));
}
}
}
$product->save();
//Mage::log($stockQty);

$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
//$stockItem = Mage::getModel('cataloginventory/stock_item')->load($productId);
$stockItemId = $stockItem->getId();

$stockItem->setData('qty', $stockQty);//(integer)$XMLproduct->QtyInStock
$stockItem->setData('manage_stock',1);$stockItem->save();

}
}
//======== End ======
}

}

}
И в etc / config.xml,
<global><events>
<sales_order_save_after><observers>
<webspidy_customoption_automatically_complete_order_observer>
<type>singleton</type> <class>Webspidy_Customoption_Model_Automatically_Complete_Order_Observer</class>
<method>automaticallycompleteorder</method>
</webspidy_customoption_automatically_complete_order_observer>
</observers></sales_order_save_after></events></global>
После долгого процесса я добился успеха, создав Observer в своем пользовательском модуле.

0

Я использую Magento 1.9

Я попытался с помощью следующего кода. все нормально но у меня другой умный код

$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
$stockItemId = $stockItem->getId();
$stockItem->setData('qty', $stockQty);
$stockItem->setData('manage_stock',1);
$stockItem->save();

Мой код следующий: —

Mage::getModel('cataloginventory/stock')->backItemQty($productId,$new_qty);
0
По вопросам рекламы [email protected]