Як додати стовпчик до сітки в розділі Адміністратор у розділі Продажі> Замовлення?
Як додати стовпчик до сітки в розділі Адміністратор у розділі Продажі> Замовлення?
Відповіді:
Inchoo написав чудову статтю про розширення сітки замовлень. А в блозі Atwix є стаття про додавання стовпця з іншої таблиці.
Повідомлення в блозі Inchoo в основному розширює його спеціальним розширенням. У випадку, якщо ви не знайомі з написанням власного розширення, я б запропонував вам взяти бабло в навчальному посібнику Alan Storms або у Magento 4U .
Ви будете переписувати Mage_Adminhtml_Order_Grid
клас блоку, додаючи стовпець до _prepareColumns
методу та розширюючи _prepareCollection
метод за допомогою власного поля
Це 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
. email
AS customer_email
, sales_flat_order_address
. city
ВІД sales_flat_order_grid
AS main_table
INNER JOIN sales_flat_order_address
ПО main_table.entity_id = sales_flat_order_address.parent_id ДЕ (sales_flat_order_address.address_type = 'білінг')
Змініть код відповідно до своїх потреб.
Сподіваюся, що це допомагає.
Ви можете використати мою відповідь з попереднього допису " Додати стовпчик до сітки" (спостерігач) - стовпець "store_id", у якому пункт неоднозначний, щоб додати додаткові стовпці до сітки замовлення на продаж через спостерігача.
Переписує так вчора;)
Це можна зробити, використовуючи події. Дивіться попередню відповідь тут:
Додайте стовпець "Компанія" до "Мережі адміністратора" за допомогою Observer
який також включає спосіб регулювання фільтрів.
Вам просто потрібно відрегулювати сітку, на яку ви орієнтуєтесь, у першому біті коду:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {