Jak mogę dodać kolumnę do siatki w sekcji Administrator w części Sprzedaż> Zamówienia?
Jak mogę dodać kolumnę do siatki w sekcji Administrator w części Sprzedaż> Zamówienia?
Odpowiedzi:
Inchoo napisał świetny artykuł o rozszerzaniu siatki zamówień. A na blogu Atwix jest artykuł na temat dodawania kolumny z innej tabeli.
Wpis na blogu Inchoo zasadniczo rozszerza go o niestandardowe rozszerzenie. W przypadku, gdy nie jesteś zaznajomiony z pisaniem własnego rozszerzenia, sugeruję, abyś zrzucił łupy z samouczka Alan Storms lub z Magento 4U .
Będziesz przepisywać Mage_Adminhtml_Order_Grid
klasę bloku, dodając kolumnę do _prepareColumns
metody i rozszerzając _prepareCollection
metodę o niestandardowe pole
Jest to 2-etapowy prosty proces. (np. chcę dodać adres e-mail i zamówić miasto w tej siatce zamówień).
Skopiuj najpierw ten plik lokalny do siebie w tym samym katalogu. app / code / core / Mage / Adminhtml / Block / Sales / Order / Grid.php
Krok 1: Dodaj następujący wiersz kodu w funkcji _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'
));
Krok 2: Dodaj następujący wiersz kodu w funkcji _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'));
Ogólne zapytanie będzie wyglądać następująco:
SELECT main_table
. * sales_flat_order_address
. email
AS customer_email
, sales_flat_order_address
. city
Z sales_flat_order_grid
AS main_table
INNER JOIN sales_flat_order_address
ON main_table.entity_id = sales_flat_order_address.parent_id WHERE (sales_flat_order_address.address_type = 'billing')
Zmodyfikuj kod zgodnie z potrzebami.
Mam nadzieję, że to pomaga.
Możesz użyć mojej odpowiedzi z poprzedniego postu na temat dodawania kolumny do siatki (obserwatora) - kolumny „store_id”, w której klauzula jest dwuznaczna, aby dodać dodatkowe kolumny do siatki zamówienia sprzedaży przez obserwatora.
Przepisy są takie wczoraj;)
Możesz to zrobić za pomocą zdarzeń. Zobacz poprzednią odpowiedź tutaj:
Dodaj kolumnę Firma do siatki administracyjnej klientów z Obserwatorem
który obejmuje również sposób dostosowania filtrów.
Po prostu musisz dostosować siatkę, na którą celujesz, w pierwszym kawałku kodu:
if ($event->getBlock() instanceof
Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
) {