/** * Prepare inventory data from custom atribute * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract|void */ public function beforeSave($object) { /** @var $object Mage_Catalog_Model_Product */ $stockData = $object->getData($this->getAttribute()->getAttributeCode()); if ($object->getStockData() !== null || $stockData !== null) { $object->setStockData(array_replace((array) $object->getStockData(), (array) $stockData)); } $object->unsetData($this->getAttribute()->getAttributeCode()); parent::beforeSave($object); }
public function testBeforeSave() { $object = new Varien_Object(array(self::ATTRIBUTE_NAME => array('is_in_stock' => 1, 'qty' => 5), 'stock_data' => array('is_in_stock' => 2, 'qty' => 2))); $stockData = $object->getStockData(); $this->assertEquals(2, $stockData['is_in_stock']); $this->assertEquals(2, $stockData['qty']); $this->assertNotEmpty($object->getData(self::ATTRIBUTE_NAME)); $this->_model->beforeSave($object); $stockData = $object->getStockData(); $this->assertEquals(1, $stockData['is_in_stock']); $this->assertEquals(5, $stockData['qty']); $this->assertNull($object->getData(self::ATTRIBUTE_NAME)); }