Я заметил что-то странное в поведении пурпурного цвета. это выглядит либо ошибка, или я что-то пропустил ... я сделать простой запрос, чтобы извлечь продуктыmagento Bug with ressource collection
$collection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('price')
->addAttributeToSelect('sku')
->addAttributeToSelect('name')
->addAttributeToFilter(array(array(
'attribute' => 'my_attribute',
'eq' => 'my_value' )
));
//Then I update
foreach($collection as $_product){
$_product->setData("name","my_other_val");
$_product->save();
}
Magento будет не только обновление «имя», то она обновит все необходимые поля и установить по умолчанию стоимость!! Так, например, он изменяет атрибут «видимости» на «поиск, каталог», в то время как продукты имеют другую видимость! У меня есть беспорядок теперь с моими настраиваемыми продуктами, и он изменяет и другие атрибуты.
Как вы это объясните?
Я сделал обратный и весь список атрибутов извлекается при сохранении продукта, в этом методе: walkAttributes он делает это: случай «бэкенд»: $ Экземпляр = $ attribute-> getBackend();
Которые извлекают ВСЕ атрибуты. Поскольку они не имеют значения (они не находятся в секции addAttributeToSelect), то он использует значение по умолчанию. Один раствор должен добавить -> addAttributeToSelect ('видимость') и все необходимые атрибуты. , но слишком опасно, я мог бы пропустить один, или новый атрибут можно было бы добавить с нужным атрибутом?
Для меня это ошибка, так как значение по умолчанию должно применяться только к несуществующему значению атрибута, но Magento не делает чек, он делает этот запрос, либо INSERT или UPDATE .. SQL: INSERT INTO catalog_product_entity_int
(entity_type_id
, attribute_id
, store_id
, entity_id
, value
) ЦЕННОСТИ (?,?,?,?,?), (?,?,?,?,?), (?,?,?,?,?), (?,? ,?,?,?) дублированием значение ключа UPDATE = VALUES (value
) ...
Спасибо, Род
эй !! Это фантастика!! спасибо за это. Мне это нравится :-) В настоящее время я использую «core_write» и ручной запрос обновления для достижения хорошей производительности с конкретными процессами, но тот, который вы только что описали здесь, настолько велик! еще раз спасибо. прут – Rod