Я использую Magento API для получения данных о товарах из определенной категории из другого домена . Я сделал вызов API и т. Д. Код, который я сейчас использую для получения данных о продукте, выглядит следующим образом:
$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;
}
Код работает нормально, но выполняется очень медленно. Когда я добавляю вызов изображения в цикл, загрузка страницы занимает около 50 секунд, и это для сайта всего с 5 продуктами. Я хочу знать следующее:
Любая помощь будет принята с благодарностью. По крайней мере, если я знаю, что использую код правильно, я могу искать другие возможности.
Заранее спасибо!
================= РЕДАКТИРОВАТЬ =================
Используя многократный выбор, предложенный Маттиасом Зейсом, данные приходит намного быстрее. Вот код, который я использовал:
$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);
Теперь это работает намного быстрее, чем раньше! Следующая проблема, которую я обнаружил, заключается в том, что вызов catalog_product_attribute_media.list , похоже, не работает одинаково, даже если для всех продуктов установлены изображения.
Ошибка, которую я получаю в var_dump:
Запрошенное изображение не существует в галерее изображений продуктов.
Кто-нибудь знает, почему это может сейчас происходить? Еще раз спасибо заранее.