ここには多くの考慮事項があります。私は同様の問題を抱えているので、私はこれについて話している。現在、SQL を使用して、magento ストアから xml にデータを取得しています。確かに、フェッチしている属性がわかっている場合にのみ、SQLを使用すると高速になります。例えば。製品に 15 の属性がある場合、SQL を使用して 50k x 15 の属性を意味します。ただし、SQL ステートメントを使用しているため、少なくともバージョンの問題は発生しません。
一方...モデルとAPIを使用すると、特に複数のmagentoバージョンを開発している場合、多くのバージョンの問題が発生します. もう 1 つの問題も、magento カスタム属性に関するものです。例えば。「US SPECIAL SHIPPING」という別の属性を追加すると、API でかなり難しくなります。
よろしければ...すべての属性に対して直接 SQL 呼び出しを行い、それらを xml に保存するだけです。つまり、これを行うには非常に高速なマシンが必要です。
比較エンジンを提供する拡張機能が magento connect にあります。それはあなたの輸出ニーズに合うかもしれません。それを試してみてください。価格比較スクリプト
<?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>';
?>