Magento 1.9 добавить пользовательский столбец в сетку связанных продуктов - PullRequest
0 голосов
/ 11 октября 2018

У нас есть существующая настройка, которая, кажется, сломалась, когда мы обновили сообщество с 1.7 до 1.9.

Настройка добавляет столбец в сетку связанных продуктов.

Настройка является локальнойпереопределение app / code / core / Mage / Adminhtml / Block / Catalog / Product / Edit / Tab / Super / Group.php

Это было сделано до того, как я начал работу над проектом

$this->addColumn('breakdown_part_no', array(
'header'    => Mage::helper('catalog')->__('Part No'),
'name'      => 'breakdown_part_no',
'type'      => 'varchar',
'index'     => 'breakdown_part_no',
'width'     => '120px',
'editable'  => true,
 ));

Это было добавлено к _prepareColumns ()

Еще одна настройка была добавлена ​​к методу getSelectedGroupedProducts ()

public function getSelectedGroupedProducts()
{
    $associatedProducts = Mage::registry('current_product')->getTypeInstance(true)
    ->getAssociatedProducts(Mage::registry('current_product'));
    $products = array();
    foreach ($associatedProducts as $product) {
        $products[$product->getId()] = array(
            'qty'       => $product->getQty(),
            'position'  => $product->getPosition(),
            'breakdown_part_no' => $product->getBreakdownPartNo(),
        );
}
    return $products;
}

Поведение заключается в том, что столбец появляется в админке и может быть отредактирован, однако при сохранении, это не сохраняет никакого значения.

Если я изменяю часть getSelectedGroupedProducts и устанавливаю жестко запрограммированное значение, он по-прежнему не показывает значения (пустое поле), но интересно, что если я нажму кнопку сохранить без значения, он сохранитзначение, которое было жестко закодировано.Если я введу какое-либо значение в поле, оно будет сохранено как пустое.Это действительно странное поведение, которое не имеет смысла для меня.

Если я изменю одно из других полей, например, положение, на жестко закодированное значение, оно появляется мгновенно и работает, как и ожидалось.Пожалуйста, дайте мне знать, как это работает.

1 Ответ

0 голосов
/ 06 ноября 2018

На различных форумах есть несколько постов о том, как это сделать, и упомянутая модификация верна, но все остальные посты были оставлены при вводе макета adminhtml.Когда пользователь редактирует данные продукта в Magento Admin (Ассоциированные продукты), данные сериализуются и отправляются в действие сохранения контроллера.Я заметил, что поля не присутствовали при вводе значения.Это связано с тем, что значение не было в макете, поэтому оно было удалено из запроса перед его отправкой в ​​контроллер.

Добавьте поле ввода в adminhtml / default / default / layout / catalog.xml adminhtml_catalog_product_supergroupaddColumnInputName

...