4

因此,当您在 Magento 中创建贷项通知单时,它会将库存设置回正确的水平,但不会将“缺货”更改回“有货”(如果适用)。我看到了 Wright Creatives 的这篇文章 (http://wrightcreativelabs.com/blog/55-credit-memo-in-stock.html),它解决了这个问题。但是,方法太慢了!每个产品大约需要 30 秒。

我最终不得不将其作为解决方案删除(因为“速度”),现在我的老板希望重新实现该功能。

我知道is_in_stock数据控制着这一点,我想知道是否已经有一个模块、一篇文章/教程,或者可以帮助我开始“更好/更快”的解决方案的人。

4

4 回答 4

5

我知道它已经过时了,但是因为即使在 1.7.0.1 中也没有解决这个问题,所以我想出了一个更好的解决方案。

在 1.5.1 及更高版本上测试:

\app\code\core\Mage\CatalogInventory\Model\Observer.php

公共函数refundOrderInventory($observer)

Mage::getSingleton('cataloginventory/stock')->revertProductsSale($items);

    //add this
    foreach ($creditmemo->getAllItems() as $item) {
        $productId = $item->getProductId();
        $product = Mage::getModel('catalog/product')->load($productId);

        if(!$product->isConfigurable()){

            $stockItem = $product->getStockItem();

            //$stockItem->setQty($item->getQty());
            $stockItem->setIsInStock(1);
            $stockItem->save();

            $product->setStockItem($stockItem);
            $product->save();
        }
    }
于 2012-07-09T12:13:26.723 回答
0

编写一个模块来观察贷项通知单的事件,并在产品保存之前在产品库存项目对象上设置 in_stock 标志。我不能告诉你你想观察的事件,但我很肯定你能找到它:)

如果没有,更丑陋的方法是在保存前观察产品。更多的逻辑来实现它,但是如果你总是希望产品有库存,如果它们有数量而不考虑其他任何东西,那么这不是一个坏主意。

于 2012-05-05T16:01:13.593 回答
0

商店>>配置>>库存>>滚动到底部

于 2016-07-09T02:19:27.557 回答
0

转到System-> Configuration-> Inventory (under Catalog)-> Product Stock Options-> Automatically Return Credit Memo Item to Stock 并确保它设置为Yes。或者只是转到您的数据库并在路径为“cataloginventory/item_options/auto_return”的 core_config_data 中确保值列设置为“1”;

于 2020-02-03T09:06:03.117 回答