Программно понятные цены на группы товаров - Недопустимый аргумент, указанный для foreach()
-
29-09-2020 - |
Вопрос
Я пытаюсь программно очистить групповые цены продукта в пользовательском модуле.Это мой код:
Mage::setIsDeveloperMode(true); // for debug only
try
{
$product = Mage::getModel('catalog/product')->load($productId);
$product->setGroupPrice(null);
$product->save();
}
catch (Exception $ex)
{
echo "Error: ". $ex->getMessage();
}
Когда этот код выполняется, я получаю следующее исключение:
Предупреждение:Недопустимый аргумент, указанный для foreach() в /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php в строке 1180
В system.log
файл, я вижу выделение этих записей:
2016-03-17T18:01:06+00:00 ОШИБКА (3):Предупреждение:Указан недопустимый аргумент для foreach() в /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php в строке 1180 2016-03-17T18:01:06+00:00 ОШИБКА (3):Исправляемая ошибка:Аргумент 3 передается в Mage_Catalog_Model_Resource_Abstract::_canUpdateAttribute() должен иметь тип array, заданный null, вызываемый в /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php в строке 1225 и определен в /home/www-data/public_html/app/code/core/Mage/Catalog/Model/Resource/Abstract.php в строке 543 2016-03-17T18:01:06+00:00 ОШИБКА (3):Исправляемая ошибка:Аргумент 3, переданный в Mage_Eav_Model_Entity_Abstract::_canUpdateAttribute() должен иметь тип array, задан null, вызывается в /home/www-data/public_html/app/code/core/Mage/Catalog/Model/Resource/Abstract.php в строке 545 и определен в /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php в строке 1254 2016-03-17T18:01:06+00:00 ОШИБКА (3):Предупреждение:array_key_exists() ожидает, что параметром 2 будет array, значение null указано в /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php в строке 1256
Есть какие-нибудь идеи, что может быть причиной этого?Тот же код в моей программе установки dev magento работает, но в производственном magento начала появляться эта ошибка, так что я немного сбит с толку.
Решение
Вероятно, вы уже решили эту проблему, но для других людей, которые ищут решение, вам нужно сначала установить область действия хранилища.
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);