chciałem masowo zmienić ceny specjalne określonych produktów w bazie danych. Magento 1.4.0.1
Mam kod:
Kod: Zaznacz cały
$request = $this->getRequest();
$intPercent = $request->getParam('percent', 5);
$collection = Mage::getModel('catalog/product');
$products_collection = $collection
->getCollection()
->setPage(0, 10)
//->addAttributeToSelect('*')
->addAttributeToSelect('entity_id')
->addAttributeToSelect('special_price')
->addAttributeToSelect('price')
->addFieldToFilter('sku',array('like'=>'AZY-%'))
->addFieldToFilter('special_price', array("neq"=>''));
foreach($products_collection as $product)
{
$newPrice = round($product->getSpecialPrice()*(1.0+$intPercent/100.0), 2);
if($newPrice > 0.97*$product->getPrice())
{
echo 'Za wysoka cena: '.$newPrice.' '.$product->getSpecialPrice().'-'.$product->getPrice().'<br />';
}
else
{
try {
$product->save();
} catch (Exception $e){
echo $e->getMessage();
exit(0);
}
}
}
Niestety rzuca mi błędem:
Warning: Invalid argument supplied for foreach() in /home/.../app/code/core/Mage/Eav/Model/Entity/Abstract.php on line 995
Dlaczego nie mogę zapisać wprowadzonych zmian?
Próbowałem też pobrać każdy produkt po kolei, ale to nic nie zmieniało. Pobierałem też komplet danych ->addAttributeToSelect('*'), ale to też nic nie zmieniło.
pzdr.
masterix
EDIT:
rozwiązane: http://www.wilsonhui.ca/web-development ... magento-2/