gen 25

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);
?>
Tagged with:
gen 11

Di default i profili di importazione di magento presuppongono una stretta interazione tra client e server. I dati in ingresso sono processati tramite un ciclo in javascript e l’importazione viene effettuata tramite chiamate AJAX.
Questo approccio presenta diverse problematiche, prima fra tutte la possibilità che, per problemi di rete tra client e server, l’operazione di importazione non arrivi a completamento.

Una possibile soluzione è ricreare in uno script esterno a Magento tutte le chiamate al controller effettuando il ciclo direttamente in php. Il controller deputato a gestire gli script di importazione è Mage_Adminhtml_System_Convert_ProfileController.
Continue reading »

Tagged with:
preload preload preload