4

そのため、Magento でクレジット メモを作成すると、在庫が正しいレベルに戻されますが、「在庫切れ」が「在庫あり」に戻されることはありません (該当する場合)。Wright Creatives (http://wrightcreativelabs.com/blog/55-credit-memo-in-stock.html) によるこの投稿に出会い、この問題を解決しました。ただし、この方法は遅すぎます。1商品あたり約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 に答える