Magento: программное редактирование товаров

Как правильно вызывать метод save, чтобы не получить Invalid argument

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

01.06.2010 14:27

Если вы в программном коде общедоступной части магазина напрямую вызовите метод Mage_Catalog_Model_Product::save, то вместо успешного сохранения товара вы получите ошибку: Warning: Invalid argument supplied for foreach()

Создатели Magento намеренно ограничили возможность редактирования товаров административной частью магазина (видимо, по соображениям безопасности).
Поэтому перед сохранением товара требуется переключить магазин в административный режим.

Работающий код редактирования товара выглядит так:
$currentStore = Mage::app()->getStore()->getStoreId();
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$product
	->setName (
		"ТЕСТ"
	)
;
$product->save ();
Mage::app()->setCurrentStore($currentStore);


Поделиться темой: