/**
  * Load item data by product
  *
  * @param   mixed $product
  * @return  Mage_CatalogInventory_Model_Stock_Item
  */
 public function loadByProduct($product)
 {
     if ($product instanceof Mage_Catalog_Model_Product) {
         $this->_getResource()->loadByProduct($this, $product);
         $this->setOrigData();
         return $this;
     } else {
         return parent::loadByProduct($product);
     }
 }
示例#2
0
 /**
  * Test if stock item quantity properly saved after import
  *
  * @magentoDataFixture Mage/Catalog/_files/multiple_products.php
  */
 public function testSaveStockItemQty()
 {
     $existingProductIds = array(10, 11, 12);
     $stockItems = array();
     foreach ($existingProductIds as $productId) {
         $stockItem = new Mage_CatalogInventory_Model_Stock_Item();
         $stockItem->loadByProduct($productId);
         $stockItems[$productId] = $stockItem;
     }
     $source = new Mage_ImportExport_Model_Import_Adapter_Csv(__DIR__ . '/_files/products_to_import.csv');
     $this->_model->setParameters(array('behavior' => Mage_ImportExport_Model_Import::BEHAVIOR_REPLACE, 'entity' => 'catalog_product'))->setSource($source)->isDataValid();
     $this->_model->importData();
     /** @var $stockItmBeforeImport Mage_CatalogInventory_Model_Stock_Item */
     foreach ($stockItems as $productId => $stockItmBeforeImport) {
         /** @var $stockItemAfterImport Mage_CatalogInventory_Model_Stock_Item */
         $stockItemAfterImport = new Mage_CatalogInventory_Model_Stock_Item();
         $stockItemAfterImport->loadByProduct($productId);
         $this->assertEquals($stockItmBeforeImport->getQty(), $stockItemAfterImport->getQty());
         unset($stockItemAfterImport);
     }
     unset($stockItems, $stockItem);
 }
示例#3
0
 /**
  * Set inventory data to custom attribute
  *
  * @param Varien_Object $object
  * @return Mage_Eav_Model_Entity_Attribute_Backend_Abstract
  */
 public function afterLoad($object)
 {
     $this->_inventory->loadByProduct($object);
     $object->setData($this->getAttribute()->getAttributeCode(), array('is_in_stock' => $this->_inventory->getIsInStock(), 'qty' => $this->_inventory->getQty()));
     return parent::afterLoad($object);
 }