在magento后端向相关产品添加数量

时间:2014-08-02 17:01:12

标签: php xml magento

我是magento的新手,并尝试在相关产品标签中添加数量列到网格(编辑产品 - >相关产品)。 这就是我所做的:

  • 覆盖related.php文件:
Mage\Adminhtml\Block\Catalog\Product\Edit\Tab\Related.php
  • 将此代码添加到_prepareCollection()方法:
$collection->joinField(
    'qty',
    'cataloginventory_stock_item',
    'qty',
    'product_id = entity_id',
    '{{table}}.stock_id = 1',
    'left'
);
  • 并添加了to _prepareColumns()个方法代码:
$this->addColumn('qty', 
    array(
        'header'    => Mage::helper('catalog')->__('QTY'),
        'width'     => 80,
        'index'     => 'qty'

现在我可以看到新列,但数量是浮点数(例如100.00),我无法根据新的QTY列过滤结果。

我的问题:

  1. 是我需要添加列还是我必须做其他事情?
  2. 如何以整数格式显示QTY(例如100而不是100.00)??
  3. 为什么我无法根据QTY过滤结果?
  4. 任何想法都将受到赞赏,在此先感谢..

2 个答案:

答案 0 :(得分:1)

数量为整数格式

'getter'    => array($this, 'getFormattedQty')

public function getFormattedQty($row)
{
   return intVal($row->getQtyOrdered());
}

答案 1 :(得分:1)

要涵盖这三个问题,只需在'type'方法中添加'number'选项,并将值设置为_prepareColumns()即可。示例如下:

    $this->addColumn('qty', array(
        'header'    => Mage::helper('catalog')->__('QTY'),
        'type'      => 'number',
        'width'     => 80,
        'index'     => 'qty'
    ));

这会将值设置为整数或整数而不是浮点数,并允许您过滤特定范围。

我自己用它来将QTY添加到Associated Products网格。