Я застрял с добавлением нового столбца (отправленной даты) в сетку администратора заказа клиента. Я скопировал файл Grid.php
из app/code/core/Mage/Adminhtml/Block/Sales/Order
в app/code/local/Mage/Adminhtml/Block/Sales/Order
и в функции _prepareCollection()
добавлен кодКак добавить отправленную дату в административную сетку заказа клиента
$collection->getSelect()->joinLeft('sales_flat_shipment_grid','sales_flat_shipment_grid.order_id=main_table.entity_id',array('shipped_date' => 'sales_flat_shipment_grid.created_at'));
и _prepareColumns()
добавляемые это
$this->addColumn('shipped_date', array(
'header' => Mage::helper('sales')->__('Shipped Date'),
'index' => 'shipped_date',
'type' => 'datetime',
'filter_index'=>'sales_flat_shipment_grid.created_at',
));
Моя проблема, когда есть заказы с несколькими отгрузок и когда я иду в сетку заказа клиента я получаю сообщение об ошибке There has been an error processing your request
, в котором говорится, что есть дубликат идентификатора заказа. Если для заказов не существует множественных отгрузок, тогда сетка заказов на продажу прекрасна и показывает отправленную дату для соответствующих заказов.
Может ли кто-нибудь помочь мне в этом?
Magento требует уникальный идентификатор заказа для каждой записи отображаются на сетке для обработки массовых обновлений из сетки и т.д., но ваш запрос будет делать присоединиться к один ко многим базы данных. При этом, когда у вас есть несколько отправлений, вы теперь будете пытаться отобразить заказ дважды в сетке, поэтому получите ошибку, так как вы не можете дважды указать идентификатор заказа. Простое решение может заключаться в том, чтобы добавить группу по порядку id-кода, чтобы обеспечить вам только одну запись за каждый заказ. Вопрос: какую дату отправки вы хотите отобразить для кратных? Первая партия или последняя отгрузка по заказу? – Ashley
Кроме того, гораздо безопаснее расширять исходный файл magento, а не копировать его и все содержимое в локальное пространство имен. Причина в том, что если вы обновляете и пугаете изменения значительных частей файла, вам придется снова объединить основные изменения в свой полностью переопределенный файл для каждого обновления. Хороший путеводитель можно найти здесь: http://inchoo.net/magento/overriding-magento-blocks-models-helpers-and-controllers/ – Ashley
@AshleySwatton благодарит. Я хотел бы получить последнюю отгрузку. – James