Magento出口产品,类别来自数据库转储

时间:2014-10-06 16:30:38

标签: mysql magento export

我必须将magento迁移到新的定制网店引擎。但是我只有magento 1.6.0.0的mysql转储(core_resource admin_setup版本值。原来的magento不可用!)

我想将所有产品(图片或图片路径,属性等),类别以及订单(如果可能)导出为CSV / XML或其他任何内容。

哪种工作方式最快?

1 个答案:

答案 0 :(得分:0)

选项1:安装Magento的开发版

你最好的选择是安装Mage 1.6.0.0,然后在那里恢复数据库。然后,您可以使用已建立的工具来运行导出。如果您对Magento有经验,这不应该超过一两个小时。

这是关于以这种方式运行它的两篇好文章。这是首选方法,因为某些关系在Magento Core中保留。

选项2:如果以上不是一个选项,或者您对Magento不熟悉而无法安装它:

这是Michele Marcucci的简短摘要,旨在为Google Merchant创建CSV导出。

define('SAVE_FEED_LOCATION','google_feed.csv');
set_time_limit(0);
require_once 'app/Mage.php';
umask( 0 );
Mage::app( "default" );

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

try {
$handle = fopen(SAVE_FEED_LOCATION, 'w');
$heading = array('id','mpn','ean','title','google_product_category','description','link','image_link','price','brand','product_type','condition', 'availability');
$feed_line= implode("\t", $heading)."\r\n";
fwrite($handle, $feed_line);

$resource = Mage::getSingleton('core/resource');

$readConnection = $resource->getConnection('core_read');

$query = "SELECT * FROM catalog_product_flat_1 WHERE visibility=4 AND type_id='{$type}'";

$tax = "1.21"; // Insert your tax product
$currency = "EUR";

$products = $readConnection->fetchAll($query);

foreach($products as $product) {
$product_data = array();
$product_data['sku'] = $product['sku'];
$product_data['mpn'] = $product['sku'];
$product_data['ean'] = $product['sku'];
$product_data['title'] = ucfirst(strtolower($product['name']));
$product_data['google_product_category'] = 'INSERT YOUR DEFAULT CATEGORY';

if ($product['description'] != "")
$product_data['description'] = Mage::helper('core/string')->truncate(str_replace('“', '"', str_replace('”', '"', iconv("UTF-8","UTF-8//IGNORE", strip_tags($product['description'])))), 8000); // removes most the utf8 errors (doesnt like row if empty too!)
else
$product_data['description'] = "Description not available";

$product_data['deeplink'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).$product['url_path']; // thanks to hamish for this
$product_data['image_link'] = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product['small_image'];

if($product['special_price'] != NULL){ // update to check for special price or discount
$product_data['price'] = number_format(($product['special_price']*$tax), 2, ",", "") . " $currency";
} else {
$product_data['price'] = number_format(($product['price']*$tax), 2, ",", "") . " $currency";
}

$product_data['brand'] = "INSERT YOUR BRAND";
$product_data['product_type'] = "";
$product_data['condition'] = "new";
$product_data['availability'] = "in stock";

$i = 1;

$queryCats = "SELECT name FROM catalog_category_product JOIN catalog_category_flat_store_1 ON catalog_category_product.category_id = catalog_category_flat_store_1.entity_id WHERE product_id={$product['entity_id']}";

$cats = $readConnection->fetchAll($queryCats);
$numCat = count($cats);
foreach($cats as $_category){
if ($i == $numCat)
$product_data['product_type'] .= $_category['name'];
else
$product_data['product_type'] .= $_category['name'] . " > ";
$i++;
}

foreach($product_data as $k=>$val){
$bad=array('"',"\r\n","\n","\r","\t");
$good=array(""," "," "," ","");
$product_data[$k] = '"'.str_replace($bad,$good,$val).'"';
}

$feed_line = implode("\t", $product_data)."\r\n";
fwrite($handle, $feed_line);
fflush($handle);

}

fclose($handle);

}
catch(Exception $e)
{
die($e->getMessage());
}