Magento:计算产品图像和更新属性

时间:2016-07-04 08:17:34

标签: php magento count attributes magento-1.9

我想计算每个产品的图像,并在属性imagecount中保存/更新值。

ini_set('display_errors', 'On');
error_reporting(E_ALL);

require('app/Mage.php'); // this is assuming your script is located in the Magento root dir
Mage::app(); // initiate the Magento engine

$allProductIds = Mage::getModel('catalog/product')->getCollection()->getAllIds();

$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('entity_id', array('in' => $allProductIds));

foreach ($products as $product) {

    $product->getGalleryImages();
    $pimagecount = count($product);
    echo count($pimagecount);
    $product->setImagecount($pimagecount);
    $product->getResource()->saveAttribute($product, 'imagecount');
}

我尝试使用上面的代码获取值,但每个产品的输出始终为1。

2 个答案:

答案 0 :(得分:1)

尝试以下代码

ini_set('display_errors', 'On');
error_reporting(E_ALL);

require('app/Mage.php'); // this is assuming your script is located in the Magento root dir
Mage::app(); // initiate the Magento engine

$allProductIds = Mage::getModel('catalog/product')->getCollection()->getAllIds();

$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('entity_id', array('in' => $allProductIds));

foreach ($products as $product) {
    $product = Mage::getModel("catalog/product")->load($product->getId());
    $gi = $product->getGalleryImages();
    $product->setImagecount(count($gi));
    $product->save();
}

答案 1 :(得分:0)

您需要更改以下代码:

ini_set('display_errors', 'On');
error_reporting(E_ALL);

require('app/Mage.php'); // this is assuming your script is located in      the Magento root dir
Mage::app(); // initiate the Magento engine


$products = Mage::getModel('catalog/product')->getCollection();

foreach ($products as $product) {
$product = Mage::getModel('catalog/product')->load($product->getId());
$images = $product->getData('media_gallery');
$pimagecount = count($images['images']);
echo $pimagecount;
}
相关问题