public function runAction() { @set_time_limit(0); AO::app()->cleanCache(); // Clean all cach $this->_initImport(); $importModel = AO::registry('oscommerce_adminhtml_import'); /** @var $importModel Mage_Oscommerce_Model_Oscommerce */ $totalRecords = array(); // Start handling charsets $connCharset = $this->getRequest()->getParam('connection_charset'); if ($connCharset) { $importModel->getSession()->setConnectionCharset($connCharset); $importModel->getResource()->setConnectionCharset($connCharset); } $dataCharset = $this->getRequest()->getParam('data_charset'); if ($dataCharset) { $importModel->getSession()->setDataCharset($dataCharset); $importModel->getResource()->setDataCharset($dataCharset); } // End hanlding charsets $timezone = $this->getRequest()->getParam('timezone'); $importModel->getSession()->setTimezone($timezone); $importModel->getResource()->resetConnectionCharset(); if ($tablPrefix = $importModel->getTablePrefix()) { $importModel->getResource()->setTablePrefix($tablPrefix); } $importModel->getResource()->setImportModel($importModel); $importModel->getResource()->importCollection($importModel->getId()); // Setting Locale for stores $locales = explode("|", $this->getRequest()->getParam('store_locale')); $storeLocales = array(); if ($locales) { foreach ($locales as $locale) { $localeCode = explode(':', $locale); $storeLocales[$localeCode[0]] = $localeCode[1]; } } $importModel->getSession()->setStoreLocales($storeLocales); $importModel->getResource()->setStoreLocales($storeLocales); // End setting Locale for stores $websiteId = $this->getRequest()->getParam('website_id'); $websiteCode = $this->getRequest()->getParam('website_code'); $options = $this->getRequest()->getParam('import'); // Checking Website, StoreGroup and RootCategory if (!$websiteId) { $importModel->getResource()->setWebsiteCode($websiteCode); $importModel->getResource()->createWebsite(); } else { $importModel->getResource()->createWebsite($websiteId); } // End checking Website, StoreGroup and RootCategory $importModel->getResource()->importStores(); $importModel->getResource()->importTaxClasses(); $importModel->getResource()->createOrderTables(); if (isset($options['categories'])) { $importModel->getSession()->setIsProductWithCategories(true); $totalRecords['categories'] = $importModel->getResource()->getCategoriesCount(); } if (isset($options['products'])) { $totalRecords['products'] = $importModel->getResource()->getProductsCount(); } if (isset($options['customers'])) { $totalRecords['customers'] = $importModel->getResource()->getCustomersCount(); } if (isset($options['customers']) && isset($options['orders'])) { $totalRecords['orders'] = $importModel->getResource()->getOrdersCount(); } if ($totalRecords) { $importModel->setTotalRecords($totalRecords); AO::unRegister('oscommerce_adminhtml_import'); AO::register('oscommerce_adminhtml_import', $importModel); } $this->getResponse()->setBody($this->getLayout()->createBlock('oscommerce/adminhtml_import_run')->toHtml()); $this->getResponse()->sendResponse(); }