/** * Retrive model behavior * * @return string */ public function getBehavior() { if (is_null($this->_behavior)) { $this->_behavior = Mage_ImportExport_Model_Import::getDataSourceModel()->getBehavior(); } return $this->_behavior; }
public function catalogProductImportFinishBefore($observer) { $adapter = $observer->getEvent()->getAdapter(); Mage_ImportExport_Model_Import::getDataSourceModel()->getIterator()->rewind(); $model = Mage::getModel('catalog/product'); $skus = array(); while ($bunch = $adapter->getNextBunch()) { foreach ($bunch as $rowData) { if (null !== $rowData['sku']) { $skus[] = $rowData['sku']; } } } if (!empty($skus)) { $resource = Mage::getResourceModel('jr_stockhistory/stock_history'); $productIds = $resource->getProductsIdBySku($skus); if (!empty($productIds)) { $stock = Mage::getSingleton('cataloginventory/stock'); $stocks = Mage::getResourceModel('cataloginventory/stock')->getProductsStock($stock, $productIds); $stocksHistory = array(); $datetime = Varien_Date::formatDate(time()); foreach ($stocks as $stockData) { $stocksHistory[] = array('item_id' => $stockData['item_id'], 'user' => $this->_getUsername(), 'user_id' => $this->_getUserId(), 'qty' => $stockData['qty'], 'is_in_stock' => (int) $stockData['is_in_stock'], 'message' => 'Product import', 'created_at' => $datetime); } if (!empty($stocksHistory)) { $resource->insertStocksHistory($stocksHistory); } } } }
public function catalogProductImportFinishBefore($observer) { $productIds = array(); $adapter = $observer->getEvent()->getAdapter(); $resource = Mage::getResourceModel('bubble_stockmovements/stock_movement'); if ($adapter instanceof Mage_Catalog_Model_Convert_Adapter_Product) { $productIds = $adapter->getAffectedEntityIds(); } else { Mage_ImportExport_Model_Import::getDataSourceModel()->getIterator()->rewind(); $skus = array(); while ($bunch = $adapter->getNextBunch()) { foreach ($bunch as $rowData) { if (null !== $rowData['sku']) { $skus[] = $rowData['sku']; } } } if (!empty($skus)) { $productIds = $resource->getProductsIdBySku($skus); } } if (!empty($productIds)) { $stock = Mage::getSingleton('cataloginventory/stock'); $stocks = Mage::getResourceModel('cataloginventory/stock')->getProductsStock($stock, $productIds); $stocksMovements = array(); $datetime = Varien_Date::formatDate(time()); foreach ($stocks as $stockData) { $stocksMovements[] = array('item_id' => $stockData['item_id'], 'user' => $this->_getUsername(), 'user_id' => $this->_getUserId(), 'qty' => $stockData['qty'], 'is_in_stock' => (int) $stockData['is_in_stock'], 'message' => 'Product import', 'created_at' => $datetime); } if (!empty($stocksMovements)) { $resource->insertStocksMovements($stocksMovements); } } }
/** * Test for method _saveValidatedBunches() */ public function testSaveValidatedBunches() { $source = new Mage_ImportExport_Model_Import_Adapter_Csv(__DIR__ . '/Entity/Eav/_files/customers_for_validation_test.csv'); $expected = $source->current(); /** @var $model Mage_ImportExport_Model_Import_EntityAbstract|PHPUnit_Framework_MockObject_MockObject */ $model = $this->getMockForAbstractClass('Mage_ImportExport_Model_Import_EntityAbstract'); $model->expects($this->any())->method('validateRow')->will($this->returnValue(true)); $model->expects($this->any())->method('getEntityTypeCode')->will($this->returnValue('customer')); $model->setSource($source); $method = new ReflectionMethod($model, '_saveValidatedBunches'); $method->setAccessible(true); $method->invoke($model); $dataSourceModel = Mage_ImportExport_Model_Import::getDataSourceModel(); $this->assertCount(1, $dataSourceModel->getIterator()); $bunch = $dataSourceModel->getNextBunch(); $this->assertEquals($expected, $bunch[0]); //Delete created bunch from DB $dataSourceModel->cleanBunches(); }
/** * Constructor. * */ public function __construct() { $this->_dataSourceModel = Mage_ImportExport_Model_Import::getDataSourceModel(); $this->_connection = Mage::getSingleton('core/resource')->getConnection('write'); $this->_initCategories(); $this->_entityTable = Mage::getModel('catalog/category')->getResource()->getTable('catalog/category_product'); $this->_productEntityTable = Mage::getModel('catalog/product')->getResource()->getEntityTable(); }
/** * Constructor. * * @return void */ public function __construct() { $entityType = Mage::getSingleton('eav/config')->getEntityType($this->getEntityTypeCode()); $this->_entityTypeId = $entityType->getEntityTypeId(); $this->_dataSourceModel = Mage_ImportExport_Model_Import::getDataSourceModel(); $this->_connection = Mage::getSingleton('core/resource')->getConnection('write'); }
/** * Constructor * * @param array $data */ public function __construct(array $data = array()) { if (isset($data['helpers'])) { $this->_helpers = $data['helpers']; } $this->_dataSourceModel = isset($data['data_source_model']) ? $data['data_source_model'] : Mage_ImportExport_Model_Import::getDataSourceModel(); $this->_connection = isset($data['connection']) ? $data['connection'] : Mage::getSingleton('Mage_Core_Model_Resource')->getConnection('write'); $this->_jsonHelper = isset($data['json_helper']) ? $data['json_helper'] : Mage::helper('Mage_Core_Helper_Data'); $this->_stringHelper = isset($data['string_helper']) ? $data['string_helper'] : Mage::helper('Mage_Core_Helper_String'); $this->_pageSize = isset($data['page_size']) ? $data['page_size'] : (static::XML_PATH_PAGE_SIZE ? (int) Mage::getStoreConfig(static::XML_PATH_PAGE_SIZE) : 0); $this->_maxDataSize = isset($data['max_data_size']) ? $data['max_data_size'] : Mage::getResourceHelper('Mage_ImportExport')->getMaxDataSize(); $this->_bunchSize = isset($data['bunch_size']) ? $data['bunch_size'] : (static::XML_PATH_BUNCH_SIZE ? (int) Mage::getStoreConfig(static::XML_PATH_BUNCH_SIZE) : 0); }
/** * Initialize source entities and collections * * @param array $data * @return Mage_ImportExport_Model_Import_Entity_Product_Option */ protected function _initSourceEntities(array $data) { if (isset($data['data_source_model'])) { $this->_dataSourceModel = $data['data_source_model']; } else { $this->_dataSourceModel = Mage_ImportExport_Model_Import::getDataSourceModel(); } if (isset($data['product_model'])) { $this->_productModel = $data['product_model']; } else { $this->_productModel = Mage::getModel('Mage_Catalog_Model_Product'); } if (isset($data['option_collection'])) { $this->_optionCollection = $data['option_collection']; } else { $this->_optionCollection = Mage::getResourceModel('Mage_Catalog_Model_Resource_Product_Option_Collection'); } if (isset($data['product_entity'])) { $this->_productEntity = $data['product_entity']; } else { Mage::throwException($this->_helper('Mage_ImportExport_Helper_Data')->__('Option entity must have a parent product entity.')); } if (isset($data['collection_by_pages_iterator'])) { $this->_byPagesIterator = $data['collection_by_pages_iterator']; } else { $this->_byPagesIterator = Mage::getResourceModel('Mage_ImportExport_Model_Resource_CollectionByPagesIterator'); } if (isset($data['page_size'])) { $this->_pageSize = $data['page_size']; } else { $this->_pageSize = self::XML_PATH_PAGE_SIZE ? (int) Mage::getStoreConfig(self::XML_PATH_PAGE_SIZE) : 0; } return $this; }