Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Создание категории при сохранении товара
 
max_zima
Jr. Member
 
Total Posts:  1
Joined:  2013-01-02
 

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

$data['general']['path'$categoryId;
        
$data['general']['name'$item->getName();
        
$data['general']['meta_title'"";
        
$data['general']['meta_description'"";
        
$data['general']['is_active'1;
        
$data['general']['available_sort_by''price';
        
$data['general']['default_sort_by''price';
        
$data['general']['display_in_menu'1;
        
$data['general']['include_in_menu'1;
        
$data['general']['url_key''123';
        
$data['general']['display_mode'"PRODUCTS";
        
$data['general']['is_anchor'0;
        
$data['category']['parent'$categoryId;
        
$newCategory Mage::getModel('catalog/category');
        
$newCategory->setStoreId(0);
        
$newCategory->addData($data['general']);

        if (!
$newCategory->getId()) {

          $_parentId 
$data['category']['parent'];

          if (!
$_parentId{
            
if ($storeId{
              $_parentId 
Mage::app()->getStore($storeId)->getRootCategoryId();
            
else {
              $_parentId 
Mage_Catalog_Model_Category::TREE_ROOT_ID;
            
}
          }

          $_parentCategory 
Mage::getModel('catalog/category')->load($_parentId);
          
$newCategory->setPath($_parentCategory->getPath());
        
}
        
try {
          $newCategory
->save();
        
}
        
catch (Exception $e){
          
echo "Failed create";
        
}
        $newCategoryId 
$newCategory->getId();
        
$this->setCategoryIds(array_unique(array_merge($this->getCategoryIds(),array($newCategoryId))));
Интересно то, что при использовании этого кода из другого файла категория создается, и товар ей назначается.
 
Magento Community Magento Community
Magento Community
Magento Community
 
mcdky
Sr. Member
 
Avatar
Total Posts:  140
Joined:  2011-09-29
 

а что до этого кода, что после? он выполняется вообще? пробовали Mage::log ?

 
Magento Community Magento Community
Magento Community
Magento Community
 
max_zima
Jr. Member
 
Total Posts:  1
Joined:  2013-01-02
 

Решил проблему выносом кода в saveAction. Не было времени разбираться почему он не отрабатывался в beforeSave. Спасибо за внимание.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top