Advertisement
Guest User

Magento Category Import with Specified ID

a guest
Aug 13th, 2013
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.39 KB | None | 0 0
  1. <?php
  2. /**
  3. * Script created by sonassi.com (http://www.sonassi.com/knowledge-base/quick-script-batch-create-magento-categories/)
  4. *
  5. * Edited by Raf Lermitte
  6. *
  7. * File format of importCats.csv :
  8. * parent_category_id,category_name,category_id
  9. * example: 3,subcat,5
  10. * -> Creates a category with 'subcat' as name and 5 as category id. The parent category id is 3.
  11. */
  12.  
  13. define('MAGENTO', realpath(dirname(__FILE__)));
  14. require_once MAGENTO . '/app/Mage.php';
  15.  
  16. setlocale(LC_ALL, 'en_US.UTF-8');
  17. umask(0);
  18. Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
  19.  
  20. $file = fopen('./var/import/importCats.csv', 'r');
  21. while (($line = fgetcsv($file)) !== FALSE) {
  22.     //$line is an array of the csv elements
  23.     if (!empty($line[0]) && !empty($line[1]) && !empty($line[2])) {
  24.         $data['general']['name'] = $line[1];
  25.         $data['general']['entity_id'] = $line[2];
  26.         $data['general']['meta_title'] = "";
  27.         $data['general']['meta_description'] = "";
  28.         $data['general']['is_active'] = 1;
  29.         $data['general']['url_key'] = "";
  30.         $data['general']['display_mode'] = "PRODUCTS";
  31.         $data['general']['is_anchor'] = 0;
  32.  
  33.         $data['category']['parent'] = $line[0]; // 3 top level
  34.         $storeId = 0;
  35.  
  36.         createCategory($data, $storeId);
  37.         sleep(0.5);
  38.         unset($data);
  39.     }
  40. }
  41.  
  42. function createCategory($data, $storeId) {
  43.     echo "Starting {$data['general']['name']} [{$data['category']['parent']}] ...";
  44.  
  45.     $category = Mage::getModel('catalog/category');
  46.     $category->setStoreId($storeId);
  47.  
  48.     if (is_array($data)) {
  49.         $category->addData($data['general']);
  50.        
  51.         $parentId = $data['category']['parent'];
  52.         $parentCategory = Mage::getModel('catalog/category')->load($parentId);
  53.         $category->setPath($parentCategory->getPath() . "/" . $category->getId());
  54.  
  55.         /**
  56.         * Check "Use Default Value" checkboxes values
  57.         */
  58.         if ($useDefaults = $data['use_default']) {
  59.             foreach ($useDefaults as $attributeCode) {
  60.                 $category->setData($attributeCode, null);
  61.             }
  62.         }
  63.  
  64.         $category->setAttributeSetId($category->getDefaultAttributeSetId());
  65.  
  66.         if (isset($data['category_products']) && !$category->getProductsReadonly()) {
  67.             $products = [];
  68.             parse_str($data['category_products'], $products);
  69.             $category->setPostedProducts($products);
  70.         }
  71.  
  72.         try {
  73.             $category->save();
  74.             echo "Succeeded - ID: " . $category->getId() . " - " . $category->getPath() . "<br /> ";
  75.         } catch (Exception $e){
  76.             echo "Failed <br />";
  77.         }
  78.     }
  79.  
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement