public function testGetPathIds()
 {
     $this->assertEquals(array(''), $this->_model->getPathIds());
     $this->_model->setPathIds(array(1));
     $this->assertEquals(array(1), $this->_model->getPathIds());
     $this->_model->unsetData();
     $this->_model->setPath('1/2/3');
     $this->assertEquals(array(1, 2, 3), $this->_model->getPathIds());
 }
 private function checkCategory($parentId, $data)
 {
     //Eltern-Kategorie laden
     if (!isset($data) || isset($data) && !isset($data['SKID'])) {
         return null;
     }
     $stores = $this->getStores();
     $parentCategory = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('scid')->addAttributeToSelect('name')->addAttributeToFilter('entity_id', array('eq' => $parentId))->getFirstItem();
     $children = Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('scid')->addAttributeToSelect('position')->addAttributeToSelect('name')->addAttributeToFilter('parent_id', array('eq' => $parentId));
     $isNew = true;
     $updateId = null;
     foreach ($children as $childCategory) {
         // alle Kategorien durchlaufen und schauen ob die übergebene dabei ist, falls nicht neu, falls ja nicht neu + updateId
         $scid = $childCategory->getScid();
         $position = $childCategory->getPosition();
         $name = $childCategory->getName();
         if ($scid == $data['SKID']) {
             $isNew = 0;
             $updateId = $childCategory->getId();
             break;
         }
     }
     if ($isNew) {
         //Kategorie muss angelegt werden
         $category = new Mage_Catalog_Model_Category();
         $category->setPath($parentCategory->getPath());
     }
     if ($updateId !== null) {
         $category = Mage::getModel('catalog/category')->load($updateId);
     }
     $isVisible = $this->isCategoryVisible($data['SKID']);
     if ($category) {
         $isActive = $data['active'] === "true" ? 1 : 0;
         $adminData = array('scid' => $data['SKID'], 'is_active' => $isActive, 'is_anchor' => 1, 'include_in_menu' => $isVisible);
         // deutsche Werte als admin-Werte setzen
         if (isset($data['name']) && isset($data['name']['de'])) {
             $adminData['name'] = $data['name']['de'];
             $adminData['url_key'] = $this->createSlug($data['name']['de']);
         }
         /*
         if(isset($data['description']) && isset($data['description']['de']))
         {
         				$adminData['description'] = $data['description']['de'];
         }
         
         if(isset($data['seo_text']) && isset($data['seo_text']['de']))
         {
         				$adminData['seo_text'] = $data['seo_text']['de'];
         }
         */
         if (isset($data['position'])) {
             $adminData['position'] = $data['position'] + 1;
         }
         $category->setStoreId(0);
         // 0 = admin ID
         $category->addData($adminData);
         $category->save();
         $category->setStoreId($stores['de']);
         // admin Werte für deutschen Store übernehmen
         $category->save();
         // Sichbarkeit im deutschen Store setzen
         foreach (['en', 'nl'] as $storeCode) {
             $storeData = [];
             //foreach (['name','description','seo_text'] as $key)
             foreach (['name'] as $key) {
                 if (isset($data[$key]) && isset($data[$key][$storeCode])) {
                     $storeData[$key] = $data[$key][$storeCode];
                 }
             }
             if (isset($data['name'][$storeCode])) {
                 $storeData['url_key'] = $this->createSlug($data['name'][$storeCode]);
             }
             $category->setStoreId($stores[$storeCode]);
             $category->addData($storeData);
             $category->setIncludeInMenu($isVisible);
             $category->save();
         }
         $newId = $category->getId();
         unset($category);
     }
     return $newId;
 }
Exemple #3
0
 public function createCategory()
 {
     $catId = $this->getCategoryIdByName($this->categoryName);
     if ($catId) {
         return $catId;
     }
     $parentId = Mage::app()->getStore($this->storeId)->getRootCategoryId();
     $category = new Mage_Catalog_Model_Category();
     $category->setName($this->categoryName);
     $category->setUrlKey('contact-lenses');
     $category->setIsActive(1);
     $category->setDisplayMode('PRODUCTS');
     $category->setIsAnchor(0);
     $parentCategory = Mage::getModel('catalog/category')->load($parentId);
     $category->setPath($parentCategory->getPath());
     $category->save();
     //unset($category);
     return $category->getId();
 }
 function create_category($parentId, $name, $url)
 {
     $category = new Mage_Catalog_Model_Category();
     $category->setName($name);
     $category->setUrlKey($url);
     $category->setIsActive(1);
     $category->setDisplayMode('PRODUCTS');
     $category->setIsAnchor(0);
     $parentCategory = Mage::getModel('catalog/category')->load($parentId);
     $category->setPath($parentCategory->getPath());
     $category->save();
     return $category->getId();
 }
Exemple #5
0
<?php

ini_set("memory_limit", "1000M");
require_once "/home/www/demo/app/Mage.php";
umask(0);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
/* supply parent id */
$parentId = '258';
//$name = 'Mont Blank';
$names = array('Burberry', 'Swarovski', 'Bvlgari', 'Tom Ford', 'Carrera', 'Oakley', 'Chanel', 'Oliver Peoples', 'Dior', 'Paul Smith', 'D&G', 'Polo Ralf Lauren', 'Dsquared', 'Prada', 'Diesel', 'Gucci', 'Ray Ban', 'Tiffany', 'Hugo Boss');
foreach ($names as $name) {
    $category = new Mage_Catalog_Model_Category();
    $category->setName($name);
    $category->setIsActive(1);
    $category->setDisplayMode('PAGE');
    $category->setIsAnchor(1);
    $category->setIncludeInMenu(0);
    $parentCategory = Mage::getModel('catalog/category')->load($parentId);
    $category->setPath($parentCategory->getPath());
    try {
        $category->save();
        echo $category->getName() . ' - ' . $category->getId() . "\n";
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    unset($category);
}
Exemple #6
0
 public function createCategory($object)
 {
     $collection = Mage::getModel('catalog/category')->getCollection()->clear();
     $category = new Mage_Catalog_Model_Category();
     $category->setEntityTypeId($this->entityTypeId);
     $category->setAttributeSetId($this->attributeSetId);
     if (!empty($object['custom_apply_to_products'])) {
         $category->setCustomApplyToProducts($object['custom_apply_to_products']);
     }
     if (!empty($object['custom_design'])) {
         $category->setCustomDesign($object['custom_design']);
     }
     if (!empty($object['custom_design_from'])) {
         $category->setCustomDesignFrom($object['custom_design_from']);
     }
     if (!empty($object['custom_design_to'])) {
         $category->setCustomDesignTo($object['custom_design_to']);
     }
     if (!empty($object['custom_layout_update'])) {
         $category->setCustomLayoutUpdate($object['custom_layout_update']);
     }
     if (!empty($object['custom_use_parent_settings'])) {
         $category->setCustomUseParentSettings($object['custom_use_parent_settings']);
     }
     $category->setAvailablesortBy($object['available_sort_by']);
     $category->setParentId(0);
     $category->setCreatedAt($object['created_at']);
     $category->setUpdatedAt($object['updated_at']);
     $category->setPosition((int) $object['position']);
     $category->setChildrenCount($object['children_count']);
     $category->setDescription($object['description']);
     $category->setDisplayMode($object['display_mode']);
     $category->setDefaultSortBy($object['default_sort_by']);
     $category->setFilterPriceRange($object['filter_price_range']);
     $category->setImage($object['image']);
     $category->setIncludeInMenu($object['include_in_menu']);
     $category->setIsActive($object['is_active']);
     $category->setIsAnchor($object['is_anchor']);
     $category->setLandingPage($object['landing_page']);
     $category->setLevel($object['level']);
     $category->setMetaTitle($object['meta_title']);
     $category->setMetaKeywords($object['meta_keywords']);
     $category->setMetaDescription($object['meta_description']);
     $category->setName($object['name']);
     $category->setPageLayout($object['page_layout']);
     if (!empty($object['path'])) {
         $category->setPath($object['path']);
     }
     if (!empty($object['path_in_store'])) {
         $category->setPathInStore($object['path_in_store']);
     }
     $category->setPosition((int) $object['position']);
     $category->setThumbnail((int) $object['thumbnail']);
     $category->setUrlKey($object['url_key']);
     $category->setUrlPath($object['url_path']);
     try {
         $category->save();
         $category->load();
         // must do it, because of position set wrong for first saving. magento bug?
         $category->setPosition((int) $object['position']);
         $category->save();
     } catch (Exception $e) {
         zend_debug::dump($e);
         return;
     }
     return $category->getId();
 }