這裏有很多考慮因素。我在談論這個問題,因爲我有類似的問題。我目前使用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