Utilizzando i vari moduli che ci sono in rete per importare prodotti e categorie da csv, non è previsto un modo per imporre l’ordinamento alle categorie importare.
Riportiamo di seguito uno script da eseguire a importazione avvenuta. La funzione ricorsiva orderCategories riordina ordina tutto l’albero delle categorie avente radice nella categoria con id $cat_id
< ?php function orderCategories($cat_id){ $collection=Mage::getModel('catalog/category')-> getCollection() ->addAttributeToFilter('parent_id',array("like"=>$cat_id)) ->addAttributeToSelect('url_path') ->setOrder('name','asc') ->load()->getItems(); if (count($collection)==0) return; else{ $i=1; foreach ($collection as $category) {$category->setPosition($i)->save(); $category_id=$category->getId(); print ($i.". ".$category->getName()."<br />"); flush(); $i++; orderCategories($category_id); } } } ?>
Per riordinare tutte le categorie del website e dello store di default basta estrarre la Root Category Id
< ?php require_once 'app/Mage.php'; Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $website=Mage::app()->getWebsite(true); $store=$website->getDefaultStore(); $category_id=$store->getRootCategoryId(); orderCategories($category_id); ?>
