Пользовательские параметры продукта в отчете о заказе продуктов Magento - PullRequest
2 голосов
/ 14 февраля 2012

Я пытаюсь добавить новые столбцы в отчете Magento "Заказанные продукты". Я добавил пользовательские параметры для каждого продукта, и мне интересно, как я могу сделать так, чтобы эти пользовательские параметры отображались в представлении отчетов.

Пока я читал, что можно добавить столбцы в приложение / code / core / Mage / Adminhtml / Block / Report / Product / Ordered / Grid.php примерно так:

$this->addColumn('sku', array(
        'header'    =>Mage::helper('reports')->__('Product Sku'),
        'sortable'  =>false,
        'index'     =>'sku'
));

Но как мне добавить добавленные мной опции для моих продуктов? Я использую Magento Community версии 1.6.2.

Спасибо заранее!

Ответы [ 3 ]

2 голосов
/ 17 декабря 2015

На самом деле вы должны добавить код:

$this->addColumn('sku', array(
        'header'    =>Mage::helper('reports')->__('Product Sku'),
        'index'     =>'sku'
));

в методе _prepareColumns файла app / code / core / Mage / Adminhtml / Block / Report / Product / Sold / Grid.php (не заказано)

0 голосов
/ 11 февраля 2016

Не редактируйте ядро, используйте наблюдателей:

    public function appendCustomColumn(Varien_Event_Observer $observer)

        if ($block->getType() == 'adminhtml/report_product_sold_grid') {
            $block->addColumnAfter('Product Name', array(
                'header'    => 'Sku',
                'type'      => 'text',
                'index'     => 'sku',
            ), 'sku');
        }
}
0 голосов
/ 14 февраля 2012

Класс, который вам нужно расширить, это Mage_Reports_Model_Resource_Product_Ordered_Collection, точнее, метод родительских классов Mage_Reports_Model_Resource_Product_Collection::addOrderedQty().

Добавление атрибута product_options даст вам доступ ко всем параметрам, установленным для заказанных товаров.
Однако есть одна проблема:

// on the select instance:
->group('order_items.product_id')

Это объединит все записи по продукту.Я бы.Так что, если один и тот же продукт был заказан дважды, вы увидите только варианты одного из них.
Что сводится к тому, что вам, вероятно, следует построить отдельный отчет, построенный на этом, где вы также группируете по product_options.

Когда у вас есть коллекция продуктов с опциями продукта, просто позвоните
$product->processBuyRequest(unserialize($product->getData('product_options'))).После этого доступны все параметры, используя $product->getCustomOptions() для получения массива или getCustomOption($code) для получения одного.

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