因此,当您在Magento中执行贷项凭单时,它将存货重新设置为正确的水平,但不会将“缺货”改回“存货”(如果适用)。我在Wright Creatives(http://wrightcreativelabs.com/blog/55-credit-memo-in-stock.html)上看到了这篇文章,它解决了这个问题。但是,方法太慢了!每个产品大约需要30秒。
我最终不得不删除它作为解决方案(由于“速度”),现在我的老板希望重新实现该功能。
我知道is_in_stock
数据控制着这个问题,我想知道是否已经有一个模块,一篇文章/教程,或者有人可以帮助我着手“更好/更快”的解决方案。
我知道它已经很老了,但是因为这个问题甚至在1.7.0.1中都还没有解决,所以我想出了一个更好的解决方案。
在1.5.1及更高版本上测试:
\ app \ code \ core \ Mage \ CatalogInventory \ Model \ Observer.php
在
公共功能退款订单库存($ 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();
}
}
这似乎有效。我将对其进行更多测试,但看起来很有希望。当然,在测试之后,如果可行,我会接受您的建议作为实现的好答案(但是我将把它变成一个简单的模块,因此我们不会覆盖核心代码。现在,如果有人可以帮助找出无论有多少产品要退货,Magento只会退回1个数量的错误(magentocommerce.com/boards/viewthread/280342)...
在您发布此解决方案之前,我已经重写了上面的解决方案,以在6-9秒(总计)内执行。我已经准备好接受它,但是您发布的此解决方案要好得多。我已经编写了一个简单的模块(覆盖了观察者),现在它就像一个魅力。只需找出那个愚蠢的Magento错误(上面)...
另一个是已知的错误,在1.7.0.1中不再存在。我升级商店的主要原因。您可以发布带有观察者重写的链接吗?匆忙尝试但没有运气。
我将对其进行大量测试,然后将其发布。是的,我前段时间提交了一个错误报告,他们告诉我该问题已在1.7.0.1中修复,但目前我们无法更新Magento。我不明白他们为什么不发布补丁-这似乎是个大问题...
抱歉,我没有意识到这里发布的其他任何人,所以如果您仍然需要它,这是我制作的模块。graphicsourcecode.com/work/web-design-development/…