Magento - Credit Memo“Return to Stock”未更新库存可用性

时间:2012-05-04 17:17:49

标签: magento magento-1.5

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

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

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

4 个答案:

答案 0 :(得分:4)

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

在1.5.1及以上测试:

<强> \应用\代码\核心\法师\ CatalogInventory \模型\ Observer.php

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

答案 1 :(得分:0)

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

如果没有,那么更丑陋的方法是在保存之前观察产品。更多的逻辑可以推动它,但如果你总是希望产品有库存,如果他们有数量而不管其他什么,那么这不是一个坏主意。

答案 2 :(得分:0)

商店&gt;&gt;配置&gt;&gt;广告资源&gt;&gt;滚动到底部

答案 3 :(得分:0)

转到// Clean up caches in activate event to ensure no pages are using the old caches. self.addEventListener('activate', (event) => { const promiseChain = caches.keys() .then((cacheNames) => { // Step through each cache name and delete it return Promise.all( cacheNames.map((cacheName) => caches.delete(cacheName)) ); }); // Keep the service worker alive until all caches are deleted. event.waitUntil(promiseChain); }); -> System-> Configuration-> Inventory (under Catalog)->自动将贷项通知单项目退还给库存并确保将其设置为{{1} }。 或者只是转到数据库,然后在core_config_data中,路径为“ cataloginventory / item_options / auto_return”,确保将value列设置为“ 1”;

相关问题