検索グリッド (Sales_Order_Create_Search_Grid) の製品選択段階で、注文作成時 (バックエンド) に在庫レベルを表示したい:
どうすればこれを行うことができますか?
検索グリッド (Sales_Order_Create_Search_Grid) の製品選択段階で、注文作成時 (バックエンド) に在庫レベルを表示したい:
どうすればこれを行うことができますか?
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() 関数に追加する場所によって、「在庫レベル」列がグリッドに表示される順序が決まります。
それでおしまい。