Я пишу модуль импорта для импорта настраиваемых продуктов в magento, который работает довольно хорошо. Я настроил импорт так, чтобы он мог создавать все необходимые наборы атрибутов, атрибуты и параметры атрибутов, необходимые для создания настраиваемых продуктов. Пока все работает ... совсем все.
Когда при импорте создается новый атрибут, он не может создать настраиваемый продукт. Когда я редактирую новый атрибут в бэкэнде и сохраняю его без изменений, появляется сообщение, которое говорит мне обновить некоторые индексы. После того, как я обновил индекс данных продукта, я могу снова запустить импорт, и все работает нормально.
Я пытался создать новый атрибут:
$setup = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');
$setup->addAttribute(
$this->getEntityTypeId(),
$code,
array(
'attribute_code' => $code,
'label' => ucfirst($code),
//'group' => $attributeSet->getId(),
'user_defined' => 1,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'input' => 'select',
'unique' => 0,
'required' => 0,
'configurable' => 1,
'filterable' => 1,
'visible_on_front' => 1,
'used_in_product_listing' => 1,
'frontend_label' => array(
$code
)
)
);
Другой способ:
$attribute = Mage::getModel("catalog/resource_eav_attribute");
$attribute->addData(
array(
'entity_type_id' => $this->getEntityTypeId(),
'attribute_code' => $code,
'label' => ucfirst($code),
//'group' => $attributeSet->getId(),
'is_user_defined' => 1,
'is_global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'frontend_input' => 'select',
'is_unique' => 0,
'is_required' => 0,
'is_configurable' => 1,
'is_filterable' => 1,
'is_visible_on_front' => 1,
'is_used_in_product_listing'=> 1,
'frontend_label' => array(
$code
)
)
);
$attribute->save();
Оба кода хорошо создают атрибут, но я не могу использовать его для создания настраиваемых атрибутов. Я пытался вручную запустить индексные сценарии, но это мне не помогло.
Что я делаю не так? Является ли создание новых атрибутов каким-то образом черной магией пурпурного? : -D