Додати стовпець до адміністратора> продажів> сітка замовлень


Відповіді:


20

Inchoo написав чудову статтю про розширення сітки замовлень. А в блозі Atwix є стаття про додавання стовпця з іншої таблиці.

Повідомлення в блозі Inchoo в основному розширює його спеціальним розширенням. У випадку, якщо ви не знайомі з написанням власного розширення, я б запропонував вам взяти бабло в навчальному посібнику Alan Storms або у Magento 4U .

Ви будете переписувати Mage_Adminhtml_Order_Gridклас блоку, додаючи стовпець до _prepareColumnsметоду та розширюючи _prepareCollectionметод за допомогою власного поля


7

Це 2-х кроковий простий процес. (наприклад, я хочу додати в цю сітку замовлення адресу електронної пошти та місто замовлення).
Скопіюйте цей основний файл в локальний спочатку в ту саму директорію. додаток / код / ​​core / Mage / Adminhtml / Блок / Продажі / Замовлення / 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. emailAS customer_email, sales_flat_order_address. cityВІД sales_flat_order_gridAS main_tableINNER JOIN sales_flat_order_addressПО main_table.entity_id = sales_flat_order_address.parent_id ДЕ (sales_flat_order_address.address_type = 'білінг')

Змініть код відповідно до своїх потреб.
Сподіваюся, що це допомагає.



1

Переписує так вчора;)

Це можна зробити, використовуючи події. Дивіться попередню відповідь тут:

Додайте стовпець "Компанія" до "Мережі адміністратора" за допомогою Observer

який також включає спосіб регулювання фільтрів.

Вам просто потрібно відрегулювати сітку, на яку ви орієнтуєтесь, у першому біті коду:

if ($event->getBlock() instanceof
                Mage_Adminhtml_Block_Newsletter_Subscriber_Grid 
            ) {
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.