1

MagentoCommunity1.6.2を実行しています

個々のアイテム(複数のアイテム注文の一部)がそれぞれの行に表示されるように、販売注文グリッドを編集しようとしています。

Grip.phpに追加したprepareCollection関数(最初にこれらの列を操作するため)は次のとおりです。

     protected function _prepareCollection()
{
    $collection = Mage::getResourceModel($this->_getCollectionClass())
        ->join(
            'sales/order_item',
            '`sales/order_item`.order_id=`main_table`.entity_id',
            array(
                'skus'  => new Zend_Db_Expr('group_concat(`sales/order_item`.sku SEPARATOR "<br>")'),
                'names' => new Zend_Db_Expr('group_concat(`sales/order_item`.name SEPARATOR "<br>")'),
                'quantities' => new Zend_Db_Expr('group_concat(`sales/order_item`.qty_ordered SEPARATOR "<br>")'),
                )
            );
            $collection->getSelect()->group('entity_id');

        $this->setCollection($collection);
    return parent::_prepareCollection();
}

以下を使用して列を追加しました。

    $this->addColumn('skus', array(
        'header'    => Mage::helper('Sales')->__('SKUs'),
       'width'     => '120px',
        'index'     => 'skus',
       'type'        => 'text',

      ));


     $this->addColumn('names', array(
       'header'    => Mage::helper('Sales')->__('Item Names'),
       'width'     => '320px',
       'index'     => 'names',
       'type'        => 'text',
    )); 

      $this->addColumn('quantities', array(
        'header'    => Mage::helper('Sales')->__('Quantities'),
        'width'     => '100px',
        'index'     => 'quantities',
        'type'        => 'text',

    )); 

現在、この関数では<br>、順序グリッドを表示するときに別々の線のように見えるように単にaを入力しています。これは私のニーズには十分ではありません。このグリッドからエクスポートされたCSVを利用する予定であり、絶対に個別の行に項目別の注文コンポーネントが必要です。

助けてくれてありがとう!

4

2 に答える 2

0

メイジの販売注文アイテムグリッドを作成せずに、あなたが求めていることを実行できるかどうかは本当にわかりません。

これがあなたが私に尋ねた前の投稿から働いた行です...多分それらはあなたを助けるでしょう:

$collection->getSelect()->join('catalog_product_index_eav', '`catalog_product_index_eav`.`entity_id` = `main_table`.`product_id` AND `catalog_product_index_eav`.`attribute_id` = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = "brand")', array('attribute_id'));
$collection->getSelect()->join('eav_attribute_option_value', '`eav_attribute_option_value`.`option_id` = `catalog_product_index_eav`.`value`', array('brand' => 'value'));
于 2012-12-22T16:59:16.513 に答える
0

'quantities'を作成する代わりに、sku配列定義を変更しました。

$collection = Mage::getResourceModel($this->_getCollectionClass())
    ->join(
    'sales/order_item',
    '`sales/order_item`.order_id=`main_table`.entity_id',
        array(
            'skus'  => new Zend_Db_Expr('group_concat( `sales/order_item`.sku, "(", floor(`sales/order_item`.qty_ordered), ")" SEPARATOR ", ")'),
        ));

floor(sales/order_item.qty_ordered)を使用して、「数量」の定義を同じように整数に変換できると思います。

Order GridのSKU列の結果は次のようになります:MBA001(2)、MOF004(1)

于 2014-08-13T02:38:53.973 に答える