1

検索グリッド (Sales_Order_Create_Search_Grid) の製品選択段階で、注文作成時 (バックエンド) に在庫レベルを表示したい: ここに画像の説明を入力

どうすればこれを行うことができますか?

4

1 に答える 1

1

3つのステップがあります。

最初:このファイルを見つけます:

app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Search/Grid.php

それを次の場所にコピーします。

app/code/local/Mage/Adminhtml/Block/Sales/Order/Create/Search/Grid.php

これにより、コア ファイルを上書きせず、代わりにアップグレードの影響を受けないローカル バージョンを作成することができます。

2 番目:新しいファイルでは、_prepareCollection() 関数に次のようなコードが含まれます。

    $collection = Mage::getModel('catalog/product')->getCollection();
    $collection
        ->setStore($this->getStore())
        ->addAttributeToSelect($attributes)
        ->addStoreFilter()
        ->addAttributeToFilter('type_id', array_keys(
            Mage::getConfig()->getNode('adminhtml/sales/order/create/available_product_types')->asArray()
        ))
        ->addAttributeToSelect('gift_message_available');

このコードをそのブロックに追加します。

        ->joinField('qty2',
            'cataloginventory/stock_item',
            'qty','product_id=entity_id','{{table}}.stock_id=1','left')

完成したバージョンは次のようになります。

    $collection = Mage::getModel('catalog/product')->getCollection();
    $collection
        ->setStore($this->getStore())
        ->addAttributeToSelect($attributes)
        ->joinField('qty2',
            'cataloginventory/stock_item',
            'qty','product_id=entity_id','{{table}}.stock_id=1','left')
        ->addStoreFilter()
        ->addAttributeToFilter('type_id', array_keys(
            Mage::getConfig()->getNode('adminhtml/sales/order/create/available_product_types')->asArray()
        ))
        ->addAttributeToSelect('gift_message_available');

3 番目:まだ新しいファイルで、_prepareColumns() 関数を見つけて、次のコードを追加します。

    $this->addColumn('qty2', array(
        'header'    => Mage::helper('sales')->__('Stock Level'),
        'width'     => '20',
        'type'      => 'number',
        'index'     => 'qty2'
    ));

上記のコード ブロックを _prepareColumns() 関数に追加する場所によって、「在庫レベル」列がグリッドに表示される順序が決まります。

それでおしまい。

于 2013-11-04T00:57:17.270 に答える