Есть ли быстрый способ получить только ценовое поле catalog_product.info в виде списка продуктов в Magento-1.9 SOAP? - PullRequest
0 голосов
/ 27 января 2019

Я получаю список продуктов, используя catalog_product.list.Это займет менее секунды, чтобы получить это около 700 продуктов.Затем я перебираю каждый продукт, используя catalog_product.info, чтобы получить такие значения, как цена.Но это занимает очень много времени ~ 180 сек.Есть ли лучший способ сделать это?

Я выводил продукты как csv, xml и json только с полями "sku", "name", "price" и "short_description".Я получил sku и имя из catalog_product.list.Я не смог найти какой-либо способ получения цены и короткого описания, поэтому я просмотрел продукты, чтобы получить информацию, используя catalog_product.info (catalog_product.info для 1 продукта занимает около 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.Дайте мне знать, если есть возвращаемое содержимое, которое дает больше информации в списке.

Первый массив взят из Info из catalog_product.list Второй массив взят из Info из catalog_product.info Третий массив генерируется из кода.

Мой вопрос: есть ли ярлык наMagento SOAP для получения 3-го массива без прохождения 1-го и 2-го шага?

Info from catalog_product.list Info from catalog_product.info Desired info

...