Magento在Sales_Order_Create_Search_Grid中显示库存水平

时间:2013-06-12 15:14:30

标签: magento

我想在搜索网格(Sales_Order_Create_Search_Grid)的产品选择阶段显示订单创建时的库存水平(在后端): enter image description here

我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

有3个步骤。

首先:查找此文件:

  

应用程序/代码/核心/法师/ Adminhtml /砌块/销售/订购/创建/搜索/ Grid.php

将其复制到:

  

应用程序/代码/本地/法师/ Adminhtml /座/销售/订单/创建/搜索/ Grid.php

这将有助于确保您不会覆盖核心文件,而是创建不会受升级影响的本地版本。

第二:在新文件中,_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');

第三:仍然在新文件中,找到_prepareColumns()函数并添加以下代码:

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

如果将上述代码块添加到_prepareColumns()函数中,将确定“Stock Level”列在网格上显示的顺序。

就是这样。