Utilisation de l'API Magento pour obtenir des produits

Je suis à l'aide de l'API Magento pour obtenir des données de produit pour les produits d'une certaine catégorie d'un autre domaine. J'ai fait l'appel d'API, etc... Le code que j'utilise actuellement pour obtenir le produit de données ressemble à ceci:

$productList = $client->call($session, 'catalog_category.assignedProducts', 7);

foreach ($productList as $product){
    $theProduct = array();
    $theProduct['info'] = $client->call($session, 'catalog_product.info', $product['sku']);
    $allProducts[] = $theProduct;
}

Le code fonctionne très bien, mais c'est extrêmement lent. Quand j'ajoute l'image à l'appel de la boucle, il faut environ 50 secondes pour que la page se charge, et c'est pour un site avec seulement 5 produits. Ce que je veux savoir est la suivante:

  1. Est le code ci-dessus correcte et il est juste de Magento API de script est très lent?
  2. Est le code ci-dessus pas la meilleure façon de faire ce dont j'ai besoin?
  3. Pourrait-il y avoir d'autres facteurs qui rendent cela aller en si lent?

Toute aide serait grandement appréciée. Au moins si je sais que je suis en utilisant le code de droit je peux regarder d'autres avenues.

Merci d'avance!

================= MODIFIER =================

À l'aide de multicall suggéré par Matthias Zeis, les données arrivent beaucoup plus rapidement. Voici le code que j'ai utilisé:

$apicalls = array();
$i = 0;
$productList = $client->call($session, 'catalog_category.assignedProducts', 7);

foreach ($productList as $product){
$apicalls[$i] = array('catalog_product.info', $product['product_id']);
$i++;
}

$list = $client->multiCall($session, $apicalls);

Cela fonctionne maintenant beaucoup plus rapide qu'avant! La prochaine question que j'ai trouvé est que le catalog_product_attribute_media.liste appel ne semble pas fonctionner de la même manière, même si les produits ont tous un ensemble d'images.

L'erreur que je reçois dans le var_dump est:

Image demandée n'existe pas dans les images de produits " galerie.

Ce que quelqu'un sait pourquoi cela peut désormais se passer? Merci encore à l'avance.

source d'informationauteur Adam Moss | 2012-01-09