Я работаю над Magento API и у меня есть несколько вопросов ...
Я пытаюсь получить все названия продуктов из определенной категории в Magento.
вот мой код для этого:
<?php
$host = "www.host.tld/index.php";
$client = new SoapClient("http://".$host."/api/soap/?wsdl");
$apiuser= "user"; //webservice user login
$apikey = "pass"; //webservice user pass
try {
// Login
$sess_id= $client->login($apiuser, $apikey);
// Getting all products from category
$filters = array( 'category_ids' => array('107') );
$productList = $client->call($sess_id, 'catalog_category.assignedProducts', $filters);
//iterate and get all the product_id's and put it into one array
foreach($productList as $products => $values){
if (isset($values['product_id']) || array_key_exists('product_id', $values)) {
$product_ids[] = $values['sku'];
}
}
//Get product details from product_id
foreach($product_ids as $key => $values) {
$details = $client->call( $sess_id, 'product.info', array($values));
#echo $details['name'];
}
}
catch (Exception $e) { //while an error has occured
echo "==> Error: ".$e->getMessage();
exit();
}
?>
Основная проблема, которую я имею, заключается в том, что производительность, которую я получаю, не является лучшей Для каждого «названия продукта» я делаю один api-call для получения всех продуктов. Каждый раз для каждого продукта. Это, наверное, не так умно.
Что я могу оптимизировать. Я что-то упустил?
Я могу представить, что если я захочу получить подробности из более чем одной категории, мой сервер рухнет;). В нашем магазине около 1000 товаров.
Спасибо за помощь.