Первое что пришло в голову - посмотреть в гугле
и вот один из вариантов:
http://www.premasolutions.com/content/magento-dataflow-exportimport-form-command-line
//THIS SCRIPT JUST INITIALS THE PROFILE TO BE RUN VIA MAGENTO ADMIN "RUN PROFILE IN POPUP". Its the same thing as click just via this file that you can run via cron $profileId = 8; // SYSTEM - IMPORT/EXPORT - ADVANCED PROFILES <-- you need to go into your magento admin and grab the exact profile ID require_once 'app/Mage.php'; umask(0); Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $profile = Mage::getModel('dataflow/profile'); $userModel = Mage::getModel('admin/user'); $userModel->setUserId(0); Mage::getSingleton('admin/session')->setUser($userModel); $profile->load($profileId); if (!$profile->getId()) { Mage::getSingleton('adminhtml/session')->addError('ERROR: Incorrect profile id'); } Mage::register('current_convert_profile', $profile); $profile->run(); $recordCount = 0; $batchModel = Mage::getSingleton('dataflow/batch'); echo "EXPORT COMPLETE. BATCHID: " . $batchModel->getId();
Он прекрасно справляется из експортом но импорт почему-то не хочет делать.
Немного подумав, пришел к выводу, что еще импорт можно запустить, залогинившись в админку через curl и передав curl-у ссылку вида
http://mydomain/index.php/admin/system_convert_gui/run/id/3/files/export_all_products.csv/
айдишник и имя файла соответственно изменяю на нужные.
И тут возникла проблема. Как залогиниться в админку. Все попытки выдают только страницу входа. Например:
require_once 'app/Mage.php'; umask(0); $app = Mage::app('default'); Mage::getSingleton("admin/session", array("name"=>"adminhtml")); $session = Mage::getSingleton("admin/session"); $session->login('admin', 'mypassword'); $sessionId = $session->getSessionId(); $formKey = Mage::getSingleton('core/session')->getFormKey(); $http = new Varien_Http_Adapter_Curl(); $options = array( 'sessionId' => $sessionId, 'form_key' => $formKey ); $http->setOptions($options); ## make a POST call $http->write(Zend_Http_Client::POST, "http://mydomain/index.php/admin/dashboard"); ## Get Response $response = $http->read(); var_dump($response); # Close Call $http->close();
никак не хочет выдававать страницу с админки. Собственно вопрос, что я делаю не так и как правильно получить страницу в админке через curl.