Есть ли ограничение на количество вызовов API в день?Система, в которой я работаю, использует около 20 000 продуктов, а я использую Magento 1.9.Я вызываю API для получения миниатюр для продуктов без них, и проблема в том, что в некоторых книгах есть миниатюры, но они не добавляются в папку, которую я для этого установил.У некоторых из изображений, которые я ввел вручную, все еще есть изображение sku, и я не могу понять, почему.
<?php
//categories.php
//finding all products without images
require_once('C:/xampp/htdocs/html/app/Mage.php');
Mage::app();
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
for ($i = 0; $i < 10; $i++){
$_products = Mage::getResourceModel('catalog/product_collection')
->setPageSize(40)
->setCurPage($i);
$_products->addAttributeToFilter('status', 1) //1 for enabled products, 2 for disabled products
->addAttributeToFilter('attribute_set_id','9');
$_products->addAttributeToFilter('sku', array('like' => '978%'));
$_products->addAttributeToSelect('*')
->addAttributeToFilter(
array(
array(
'attribute' => 'image',
'null' => '1'
),
array(
'attribute' => 'small_image',
'null' => '1'
),
array(
'attribute' => 'thumbnail',
'null' => '1'
),
array(
'attribute' => 'image',
'nlike' => '%/%/%'
),
array(
'attribute' => 'small_image',
'nlike' => '%/%/%'
),
array(
'attribute' => 'thumbnail',
'nlike' => '%/%/%'
),
array (
'attribute' => 'image',
'like' => 'no_selection'
)
),
null,
'left'
);
foreach($_products as $_product){
$sku = $_product->getSku();
$prod_id = Mage::getModel('catalog/product')->getIdBySku($sku);
$product = Mage::getModel('catalog/product')->load($prod_id);
$imageapi_url = file_get_contents('https://www.googleapis.com/books/v1/volumes?q=isbn:'. $sku . "max-results=20" ."&startIndex=1");
$decode=json_decode($imageapi_url,true);
$bookimg = $decode['items'][0]['volumeInfo']['imageLinks']['thumbnail'];
echo "$bookimg"."\n";
$imagename = 'c:\xampp\htdocs\html\var\uni_image\image' . $sku . '.jpg';
$unavailable = 'c:\xampp\htdocs\html\var\uni_image\log.txt';
//if image is found then save it, else write the sku into the log file
if($bookimg != "" || $bookimg != NULL){
file_put_contents($imagename,file_get_contents ($bookimg));
$product->setMediaGallery(array('images' => array(), 'values' => array()))
->addImageToMediaGallery($imagename, array('image', 'thumbnail', 'small_image'), false, false);
$product->save();
}else{
// Open the file to get existing content
$current = file_get_contents($unavailable);
// Append a new sku to the file
$current .= $sku."\n";
// Write the contents back to the file
file_put_contents($unavailable, $current);
continue;
}
}
}