Как добавить столбец в сетку в разделе «Администрирование» в разделе «Продажи»> «Заказы»?
Как добавить столбец в сетку в разделе «Администрирование» в разделе «Продажи»> «Заказы»?
Ответы:
Inchoo написал отличную статью о расширении сетки заказов. А в блоге Atwix есть статья о добавлении столбца из другой таблицы.
Сообщение в блоге Inchoo в основном расширяет его пользовательским расширением. В случае, если вы не знакомы с написанием своего собственного расширения, я бы посоветовал вам взять лут из учебника Alan Storms или из Magento 4U .
Вы будете переписывать Mage_Adminhtml_Order_Grid
класс блока, добавляя столбец к _prepareColumns
методу и расширяя _prepareCollection
метод своим настраиваемым полем.
2 простых шага. (например, я хочу добавить адрес электронной почты и город заказа в этой сетке заказов).
Скопируйте этот основной файл вам сначала локально в том же каталоге. приложение / код / ядро / Mage / Adminhtml / Block / Sales / Order / Grid.php
Шаг 1: Добавьте следующую строку кода в функцию _prepareColumns ()
$this->addColumn('email', array(
'header' => Mage::helper('catalog')->__('Customer Email'),
'index' => 'email',
'type' => 'text'
));
$this->addColumn('city', array(
'header' => Mage::helper('catalog')->__('Order From City'),
'index' => 'city',
'type' => 'text'
));
Шаг 2: Добавьте следующую строку кода в функцию _prepareCollection ()
$collection->getSelect()->join('sales_flat_order_address', 'main_table.entity_id = sales_flat_order_address.parent_id' ,array('email'=> 'email', 'city'=> 'city' ));
$collection->addFieldToFilter('sales_flat_order_address.address_type', array('eq' => 'billing'));
Общий запрос будет выглядеть так:
ВЫБРАТЬ main_table
. * sales_flat_order_address
. email
AS customer_email
, sales_flat_order_address
. city
ОТ sales_flat_order_grid
КАК main_table
ВНУТРЕННЕГО СОЕДИНЕНИЯ sales_flat_order_address
main_table.entity_id = sales_flat_order_address.parent_id WHERE (sales_flat_order_address.address_type = 'billing')
Измените код в соответствии с вашими потребностями.
Надеюсь, это поможет.
Вы можете использовать мой ответ из предыдущего поста о добавлении столбца в сетку (наблюдатель) - столбец «store_id», где предложение является неоднозначным вопросом, чтобы добавить дополнительные столбцы в сетку заказа клиента через наблюдателя.
Переписывает так вчера;)
Вы можете сделать это с помощью событий. Смотрите предыдущий ответ здесь:
Добавьте столбец «Компания» в сетку «Администрирование клиентов» с помощью обозревателя
который также включает в себя способ настройки фильтров.
Вам просто нужно настроить сетку, на которую вы нацеливаетесь в первом бите кода:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {