Através de programação clara do produto, os preços do grupo - argumento Inválido fornecido para o foreach()
-
29-09-2020 - |
Pergunta
Eu estou tentando através de programação limpar um produto, os preços do grupo dentro de um módulo personalizado.Thisi s o meu código:
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();
}
Quando esse código é executado, recebo a seguinte exceção:
Aviso:Argumento inválido fornecido para foreach() em /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php na linha de 1180
No system.log
arquivo, vejo colocar essas entradas:
2016-03-17T18:01:06+00:00 MENSAGEM DE (3):Aviso:Argumento inválido fornecido para foreach() em /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php na linha de 1180 2016-03-17T18:01:06+00:00 MENSAGEM de (3):Recuperável De Erro:Argumento 3 passadas para Mage_Catalog_Model_Resource_Abstract::_canUpdateAttribute() deve ser de o tipo de matriz, null dado, chamado em /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php na linha de 1225 e definidos em /home/www-data/public_html/app/code/core/Mage/Catalog/Model/Resource/Abstract.php na linha 543 2016-03-17T18:01:06+00:00 MENSAGEM de (3):Recuperável De Erro:Argumento 3 passadas para Mage_Eav_Model_Entity_Abstract::_canUpdateAttribute() deve ser do tipo de matriz, null dado, chamado em /home/www-data/public_html/app/code/core/Mage/Catalog/Model/Resource/Abstract.php na linha 545 e definidos em /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php na linha 1254 2016-03-17T18:01:06+00:00 MENSAGEM de (3):Aviso:array_key_exists() expects parameter 2 para ser matriz, null dada em /home/www-data/public_html/app/code/core/Mage/Eav/Model/Entity/Abstract.php na linha 1256
Alguma idéia do que pode estar causando isso?O mesmo código no meu dev magento instalação funciona, mas na produção magento, esse erro começou a aparecer, por isso estou um pouco confuso.
Solução
Provavelmente você já ter resolvido esse problema já, mas para outras pessoas olhando para a resolução - você precisa definir loja âmbito primeiro.
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);