Программно понятные цены на группы товаров - Недопустимый аргумент, указанный для foreach()

magento.stackexchange https://magento.stackexchange.com/questions/106782

  •  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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top