получаем начальное значение статуса при расширении функции _beforeSave() продукта magento

#magento #product

#magento #продукт

Вопрос:

Я расширяю Mage_Catalog_Model_Product, чтобы выполнять проверку запасов всякий раз, когда продукт сохраняется, и если продукт есть на складе, это не позволит вам отключить его.

Это работает нормально, но я хочу изменить функциональность. Я хочу запретить возможность отключения при наличии продукта на складе, ТОЛЬКО если продукт еще не был отключен. Возможно ли получить начальное значение статуса продукта до внесения изменений из функции _beforeSave()?

Ответ №1:

Вы должны быть в состоянии снова загрузить продукт из базы данных в _beforeSave() , чтобы проверить исходное значение. Что-то вроде этого:

 $originalProduct = Mage::getModel('catalog/product')->load($this->getId());
  

Вы должны быть в состоянии получить статус продукта, который все еще находится в базе данных, таким образом, прежде чем save() его перезапишет. Надеюсь. Я это не тестировал. 🙂