Я не понимаю, как это сделать в коллекции Magento. следующий, я опишу проблему:Magento-can't восстановить пользовательский атрибут коллекции, добавленный в продукт. Модель
Для требований проектов мне нужно добавить пользовательский атрибут, чтобы исключить отдельные продукты в фиде в GoogleShopping. Затем добавить этот атрибут с установкой PHP скрипт
<?php
$installer = $this;
$installer->startSetup();
$installer->addAttribute('catalog_product', 'in_googleshopping_feed', array(
'group' => 'General',
'type' => 'int',
'input' => 'select',
'label' => 'In GoogleShoppint feed',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => 1,
'required' => 0,
'default' => 1,
'visible_on_front' => 0,
'is_html_allowed_on_front' => 0,
'sort_order' => 32,
'is_configurable' => 0,
'source' => 'eav/entity_attribute_source_boolean',
'searchable' => 0,
'filterable' => 0,
'comparable' => 0,
'unique' => false,
'user_defined' => false,
'is_user_defined' => false,
'used_in_product_listing' => true
)
);
$installer->endSetup();
Следующая в Observer я пытаюсь получить значение этого с:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*')
//->addAttributeToSelect('in_googleshopping_feed');
->addAttributeToFilter('in_googleshopping_feed',0);
Это мое сомнение, почему haven't своей коллекции этот атрибут?
Однако, я могу получить значение Код продукта йота следующего фрагмента кода:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
$prodIds=$products->getAllIds();
foreach($prodIds as $productId):
$product = Mage::getModel('catalog/product')->setStoreId('1');
$product->load($productId);
var_dump($product->getData('in_googleshopping_feed'));
endforeach;
Тогда мое огромное сомнение: почему я не могу отфильтровать коллекцию моего нового атрибутом? Я думаю, что с помощью метода addAttributeToSelect ('*') все поля добавляются в коллекцию.
Может кто-нибудь помочь мне? Спасибо
Огромное спасибо, я думаю, что это ошибка frecueltly для работы с коллекцией. Но во многих местах ядра/сообщества я вижу addAttributeToFilter без массива. Например, в Find_Feed_Model_Import в строке 105 Magento 1.5.1.0 вы можете увидеть $ productCollection-> addAttributeToFilter ('is_imported', 1); Знаете ли вы, если в каком-то случае работаете с массивом? – davidselo