The Following file will downlode the csv from ftp server to local server process the file update inventory,delete the files from server and local server
<?php
define('MAGENTO', realpath(dirname(__FILE__)));
require_once MAGENTO . '/app/Mage.php';
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
umask(0);
Mage::app('admin');
Mage::register('isSecureArea', 1);
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
set_time_limit(0);
ini_set('memory_limit','10024M');
$pCollection = Mage::getSingleton('index/indexer')->getProcessesCollection();
foreach ($pCollection as $process) {
$process->setMode(Mage_Index_Model_Process::MODE_MANUAL)->save();
}
// ftp ser details
$ftp_server = "your_server";
$ftp_username = "username";
$ftp_userpass = "password";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
$contents = ftp_nlist($ftp_conn, "/ECOM_MV/MBTUK/INVENTORY/FRONTEND/TEST/");
foreach ($contents as &$value) :
// download server file
ftp_get($ftp_conn, MAGENTO . '/var/import/Inventory/inventory_update.csv', $value, FTP_BINARY);
//ftp_delete($ftp_conn, $value); // if you want to remove file from server
if(FALSE === @fopen(MAGENTO . '/var/import/Inventory/inventory_update.csv', 'r')):
echo "No File Found";
else:
$count = 0;
$countItem = 0;
$file = fopen(MAGENTO . '/var/import/Inventory/inventory_update.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
if ($count == 0) {
foreach ($line as $key=>$value) {
$cols[$value] = $key;
}
}
$count++;
if ($count == 1) continue;
#Convert the lines to cols
if ($count > 0) {
foreach($cols as $col=>$value) {
unset(${$col});
${$col} = $line[$value];
}
}
// Check if SKU exists
$product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
if ( $product ) {
$productId = $product->getIdBySku($sku);
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
$stockItemId = $stockItem->getId();
$stock = array();
if (!$stockItemId) {
$stockItem->setData('product_id', $product->getId());
$stockItem->setData('stock_id', 1);
}
else {
$stock = $stockItem->getData();
}
foreach($cols as $col=>$value) {
$stock[$col] = $line[$value];
}
foreach($stock as $field => $value) {
$stockItem->setData($field, $value?$value:0);
$stockItem->setData('is_in_stock',$stock[$col] > 0 ? 1 : 0);
}
$stockItem->save();
unset($stockItem);
unset($product);
$countItem++;
}
echo "<br />SKU = ".$sku;
}
echo "<br /><br />Total Updated SKU = ".$countItem;
echo "<br /><br />Inventory Updated For the Above SKU Successfully";
fclose($file);
unlink(MAGENTO . '/var/import/Inventory/inventory_update.csv');
endif;
endforeach;
ftp_close($ftp_conn);
$pCollection = Mage::getSingleton('index/indexer')->getProcessesCollection();
foreach ($pCollection as $process) {
$process->setMode(Mage_Index_Model_Process::MODE_REAL_TIME)->save();
$process->reindexEverything();
}
?>
![]()
0 Comments