我正在使用catalog_product.list获得产品列表。只需不到一秒钟的时间,即可获得约700种产品。然后,我使用catalog_product.info遍历每个产品,以获取诸如价格之类的值。但是这需要很长时间〜180秒。有更好的方法吗?
我将产品输出为csv,xml和json,仅包含字段“ sku”,“名称”,“价格”和“ short_description”。我从catalog_product.list获得了sku和名称。我找不到任何检索价格和short_description的方法,因此我遍历产品以使用catalog_product.info获取信息(1个产品的catalog_product.info大约需要2秒钟。) 这是api网站https://devdocs.magento.com/guides/m1x/api/soap/catalog/catalogProduct/catalog_product.list.html
$products = $client->call($sessionId, "catalog_product.list");
echo "<pre>";
print_r($products);
$cleanProducts=[];
// foreach($products as $product){
for($i=0; $i<5; $i++){
$product=$products[$i];
$catalogProductReturnEntity = $client->call($sessionId, 'catalog_product.info', $product['product_id'] );
$cleanProduct = [];
$cleanProduct['sku']=$product['sku'];
$cleanProduct['name']=$product['name'];
// $cleanProduct['price'] = $catalogProductReturnEntity['price'];
// $cleanProduct['short_description'] = $catalogProductReturnEntity['short_description'];
$fields = [ 'price', 'short_description'];
foreach($fields as $field){
if(isset($catalogProductReturnEntity[$field])!=null){
$cleanProduct[$field] = $catalogProductReturnEntity[$field];
}
}
$cleanProducts[] = $cleanProduct;
}
echo "<pre>";
print_r($cleanProducts);
API花费这么长时间是没有意义的。有没有人找到最快的方法?我没有使用Module:Mage_Catalog,因为这只是评估测试。而且我只能使用Magento-1.9和SOAPv1。让我知道是否有返回的内容在列表中提供更多信息。
第一个数组来自catalog_product.list中的Info 第二个数组来自catalog_product.info中的Info 第三个数组是从代码生成的。
我的问题是:Magento SOAP上是否有快捷方式来获取第3个数组而无需经过第1步和第2步?