Кто-нибудь знает, как программно показать и сделать поле редактируемым для поля номера отслеживания в обзоре заказа?
Я думаю об этом.
шаг 1. Сначала включите отображение поля отслеживания в Grid.php, так что продолжайте ... У кого-нибудь есть пример, как добавить столбец?(и в этом отношении скрыть существующий столбец)
Добавьте это в /etc/config.xml под событиями, чтобы Magento знал, как вызывать
<core_block_abstract_prepare_layout_before>
<observers>
<SNH_ShipMailInvoice_Observer_addTrackingColumnToGrid>
<type>model</type>
<class>SNH_ShipMailInvoice_Model_Observer</class>
<method>addTrackingColumnToGrid</method>
</SNH_ShipMailInvoice_Observer_addTrackingColumnToGrid>
</observers>
</core_block_abstract_prepare_layout_before>
шаг 2.a Затем заполните таблицу с кодом отслеживания, если применимо
Поэтому сначала добавьте поле в /Model/Observer.php (которое отвечает на шаг 1)
public function addTrackingColumnToGrid($observer)
{
// this will return the block name for every block triggered by the observer
$block = $observer->getEvent()->getBlock();
// filter - we only want the block for the sales order grid
if ($block instanceof Mage_Adminhtml_Block_Sales_Order_grid){
// well, that was easy!
$block->addColumn('tracking_number', array(
'header' => Mage::helper('sales')->__('Tracking number'),
'index' => 'tracking_number',
'type' => 'input',
'width' => '120px',
'renderer' => 'SNH_ShipMailInvoice_Block_Adminhtml_Renderer_addTrackingColumnToGrid'
));
}
}
шаг 2.b Затем нам нужно заполнить поле доступной информацией для отслеживания
'renderer' => 'SNH_ShipMailInvoice_Block_Adminhtml_Renderer_addTrackingColumnToGrid'
должен вызвать addTrackingColpBlock / Adminhtml / Renderer / addTrackingColumnToGrid.php
* ТЕКУЩАЯ ПРОБЛЕМА: ОШИБКА ** Вот где я получаю свою белую страницу нетответ
шаг 2.c Поиск номера отслеживания для заказа в строке.В настоящее время не проверено / не подтверждено
// HOW DO I POPULATE VAR $order for each line?
$shipmentCollection = Mage::getResourceModel('sales/order_shipment_collection')->setOrderFilter($order)->load();
foreach ($shipmentCollection as $shipment){
// This will give me the shipment IncrementId, but not the actual tracking information.
foreach($shipment->getAllTracks() as $tracknum) {
$tracknums[]=$tracknum->getNumber(); }
// How to show the tracking information
// CODE HERE
}
}
шаг 3 Затем, когда я нажимаю опцию выпадающего меню Masssaction (уже запрограммировано), бэкэнд должен обрабатывать только выбранные элементы и сохранять идентификатор отслеживания для отгрузки.(который создается вскоре после этого)
(и после этого продолжить счет и отправить)
Заранее спасибо