Magento - Добавить почтовый индекс для доставки в сетку заказов - PullRequest
1 голос
/ 06 декабря 2011

Как мне получить почтовый индекс клиентов, отображаемый в столбце в таблице заказов?

Спасибо!

Ответы [ 2 ]

1 голос
/ 07 декабря 2012

Создайте собственный модуль и перезаписайте <sales_order_grid>

В вашем Grid.php вам нужно сделать 2 разные вещи:

  1. Скажите Magento, где найтипочтовый индекс

  2. Сообщите Magento, куда его поместить

Лучший способ сообщить Magento, где найти информацию, - это функция setCollection.Эта функция вызывается из _prepareCollection, поэтому вам не нужно связываться с этой функцией.

public function setCollection($collection)
{
    parent::setCollection($collection);
    $collection->getSelect()
        ->join(
            array('address' => $collection->getTable("sales/order_address")),
            'main_table.entity_id = address.parent_id AND address.address_type = "shipping"',
            array('postcode')
        );
}

Здесь вы сделали соединение и определили, что информацию можно найти с псевдонимом 'почтовый индекс'

Теперь все, что осталось, это сказать Магенто, куда его положить.Просто переопределите функцию _prepareColumn:

protected function _prepareColumns()
{
    parent::_prepareColumns();

    $this->addColumn('postcode',
        array(
            'header'    => Mage::helper('sales')->__('Postcode'),
            'index'     => 'postcode'
        )
    );

    return $this;
}

index относится к имени, которое вы задаете в функции setCollection.Если вы хотите поместить столбец в определенное место, вы должны использовать addColumnAfter ()

Надеюсь, что поможет

0 голосов
/ 06 декабря 2011

В вашей модели Grid,

в функции _prepareColumns () убедитесь, что

    $this->setData('column_filters',array('shippingpostcode' => 'mymodule/sales_order_filter_shippingpostcode'));
    $this->addColumn('shippingpostcode', array(
        'header'=> Mage::helper('sales')->__('Shipping Postcode'),
        'width' => '80px',
        'type'  => 'text',
        'index' => 'shipping_postcode', //you would need this field in your order table
        'renderer' => 'mymodule/sales_order_renderer_shippingpostcode',
    ));

и создайте класс

Mymodule_Model_Sales_Order_Render_Shippingpostcode extends Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Abstract

и в функции getHtml вы можете вернуть любое значение, которое вы хотите отобразить в Grid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...