这里有很多考虑因素。我在谈论这个问题,因为我有类似的问题。我目前使用SQL从magento商店获取数据到XML。实际上,使用sql可以使它更快,只要你知道你正在提取的属性。例如。如果你的产品有15个属性,那就意味着使用sql的50k x 15个属性。但至少你会从版本问题中解脱出来,因为你使用的是sql语句。
另一方面...使用模型和API提供了很多版本问题,特别是如果您正在开发几个magento版本。另外一个问题是关于magento自定义属性。例如。如果我添加另一个名为'US SPECIAL SHIPPING'的属性,API变得非常困难。
如果您不介意......您只需对所有属性进行直接sql调用并将其保存为xml。这意味着你需要非常快速的机器来做到这一点。
在提供比较引擎的magento连接上有一个扩展。它可能适合您的出口需求。尝试一下。 price comparison script
<?php
set_time_limit(3000);
ini_set('memory_limit', '-1');
include_once 'app/Mage.php';
umask(0);
Mage::app();
$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToSelect('*');
$products->load();
$baseUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
$output = '<?xml version="1.0" encoding="utf-8"?>
<products>';
if (count($products)):
foreach ($products as $id => $product):
$url = $product->getProductUrl();
$output .= '
<product>
<id>'. $product['entity_id'].'</id>
<name><![CDATA['. $product['name'] .']]></name>
<sku>'. $product['sku'] .'</sku>
<description><![CDATA['. $product['description'] .']]></description>
<shortdescription><![CDATA['. $product['short_description'] .']]></shortdescription>
<price><![CDATA['. $product['price'] .']]></price>
<minimalprice>'. $product['minimal_price'] .'</minimalprice>
<weight><![CDATA['. $product['weight'] .']]></weight>
<categories><![CDATA['. $product['categories'] .']]></categories>
<color><![CDATA['. $product['color'] .']]></color>
<condition><![CDATA['. $product['condition'] .']]></condition>
<availability><![CDATA['. $product['availability'] .']]></availability>
<shipping><![CDATA['. $product['shipping'] .']]></shipping>
<url><![CDATA['. $url.']]></url>
<meta><![CDATA['. $product['meta_keyword'] .']]></meta>
<metadescription><![CDATA['. $product['meta_description'] .']]></metadescription>
<manufacturer><![CDATA['. $product['manufacturer'] .']]></manufacturer>
<brand><![CDATA['. $product['brand'] .']]></brand>
<upc><![CDATA['. $product['upc'] .']]></upc>
<mpn><![CDATA['. $product['mpn'] .']]></mpn>
<image><![CDATA['. $baseUrl ."media/catalog/product". $product['image'] .']]> </image>';
if (isset($attributes[$product['entity_id']])) {
$output .= '
<attributes>';
foreach ($attributes[$product['entity_id']] as $attribute => $values)
$output .= '
<attribute>
<name>'. $attribute .'</name>
<values>'. join(', ', $values) . '</values>
</attribute>';
$output .= '
</attributes>';
}
$output .= '
</product>';
endforeach;
endif;
header ("Content-Type: text/xml; charset=ISO-8859-1");
print $output .= '
</products>';
?>
“会不会是自杀” - 我看你已经熟悉了magento! :D – dmp
不要忘记图片! – dmp