Имена связанных продуктов настраиваемого продукта не отображаются в админке? - PullRequest
2 голосов
/ 13 декабря 2011

В стандартной установке Magento 1.5.1.0 я создал простые продукты COLOR-RED, COLOR-BLUE и создал настраиваемый продукт COLOR, с которым связаны эти продукты.Это прекрасно работает, за исключением того факта, что имена связанных продуктов не отображаются в бэкэнде в таблице «Конфигурация атрибутов продукта Super Configuration».Я добавил простой оператор отладки в htdocs / app / design / adminhtml / default / default / template / widget / grid.phtml для отображения данных элемента перед отображением.Смотрите ниже, атрибута name там нет.У кого-нибудь есть идея, почему?Это ошибка в Magento или что-то еще не так?

Array
(
    [entity_id] => 1
    [entity_type_id] => 4
    [attribute_set_id] => 9
    [type_id] => simple
    [sku] => COLOR-RED
    [has_options] => 0
    [required_options] => 0
    [created_at] => 2011-12-13 15:08:36
    [updated_at] => 2011-12-13 15:08:36
    [is_saleable] => 0
    [inventory_in_stock] => 0
    [color] => 3
    [price] => 12.0000
    [stock_item] => Varien_Object Object
        (
            [_data:protected] => Array
                (
                    [is_in_stock] => 
                )

            [_hasDataChanges:protected] => 
            [_origData:protected] => 
            [_idFieldName:protected] => 
            [_isDeleted:protected] => 
        )
)

1 Ответ

3 голосов
/ 19 января 2012

Возможно, вы используете модуль Simple Configurable Products.В файле app / code / community / OrganicInternet / SimpleConfigurableProducts / Adminhtml / Block / Catalog / Product / Edit / Tab / Super / Config / Grid.php разработчики Organic Internet оставили небольшой приятный намек;

#Copied from Magento v1.3.1 code.
#Only need to comment out addFilterByRequiredOptions but there's no
#nice way of doing that without cutting and pasting the method into my own
#derived class. Boo.
#This change stops the filtering-out of any configurable product's 'associated products' that have compulsory custom options
#Have also replaced parent::_prepareCollection with Mage_Adminhtml_Block_Widget_Grid::_prepareCollection();

Я полагал, что код, который использовался в 1.3.1, устарел, поэтому этот файл будет устаревшим, если вы используете> 1.3.1.Поэтому я просто посмотрел содержимое основного файла app / code / core / Mage / Adminhtml / Block / Catalog / Product / Edit / Tab / Super / Config / Grid.php и нашел различия, и нашел виновника.

Все, что вам нужно сделать, это добавить эту строку;

->joinAttribute('name', 'catalog_product/name', 'entity_id', null, 'inner')

между этими двумя строками;

->addFieldToFilter('attribute_set_id',$product->getAttributeSetId())
        ->addFieldToFilter('type_id', $allowProductTypes);

И все готово!

...