<?php
try {
$file = __DIR__ . '/products.csv';
/** @var Varien_File_Csv $products */
$products = new Varien_File_Csv();
$products->setDelimiter(';');
$productsRows = $products->getData($file);
array_shift($productsRows);
/** @var Mage_Catalog_Model_Product $productModel */
$productModel = Mage::getModel('catalog/product');
/** @var Mage_CatalogInventory_Model_Stock_Item $productModel */
$stockItemModel = Mage::getModel('cataloginventory/stock_item');
$errors = [];
foreach ($productsRows as $product) {
try {
$id = $productModel->getIdBySku(trim($product[0]));
$stockItemModel->loadByProduct($id);
if (!$stockItemModel->getId() || !$stockItemModel->getManageStock()) {
$stockItemModel->clearInstance();
throw new Exception('Product not found or not manage.');
}
$stockItemModel->setQty($product[2]);
$stockItemModel->setIsInStock((int)($product[2] > 0));
$stockItemModel->save();
$stockItemModel->clearInstance();
} catch (Exception $e) {
$errors[] = [
'message' => $e->getMessage(),
'product' => $product
];
}
}
} catch (Exception $e) {
$this->log($e);
}
if (!empty($errors)) {
$this->log($errors);
}
|