Один добрый человек написал скрипт. Сей час пробую. Обновляет количество и цену через ean13.
файл csv нужно заполнять так | ean13 | количество | цена |
Вот сам код скрипта:
<?php
define('PS_ADMIN_DIR', getcwd());
include(PS_ADMIN_DIR.'/../config/config.inc.php');
include(PS_ADMIN_DIR.'/functions.php');
include(PS_ADMIN_DIR.'/header.inc.php');
echo '<div style="text-align:left;">';
// Проверяем загружен ли файл
if(is_uploaded_file($_FILES["filename"]["tmp_name"])){
// Если файл загружен успешно, перемещаем его из временной директории в конечную
move_uploaded_file($_FILES["filename"]["tmp_name"], "".$_SERVER["DOCUMENT_ROOT"]."/upload/".$_FILES["filename"]["name"]);
$file_path="".$_SERVER["DOCUMENT_ROOT"]."/upload/".$_FILES["filename"]["name"]."";
// Меняем кодировку файла с windows-1251 на utf-8
$file=file_get_contents("".$file_path."");
$file=iconv("windows-1251", "utf-8",$file);
file_put_contents("".$file_path."",$file);
//меняем локаль на хостинге
if(!setlocale(LC_ALL, 'ru_RU.utf8')) setlocale(LC_ALL, 'en_US.utf8'); if(setlocale(LC_ALL, 0) == 'C') die('Не поддерживается ни одна из перечисленных локалей (ru_RU.utf8, en_US.utf8)');
if (($handle_f = fopen($file_path, "r")) !== FALSE)
{
//начинаем цикл чтения csv
while (($data_f = fgetcsv($handle_f,99999,";"))!== FALSE) {
//ищем товар по ean13
$sql="SELECT id_product FROM ps_product WHERE ean13 = '".$data_f[0]."'";
$id_product = Db::getInstance()->getValue($sql,0);
//если такой товар есть, обновляем количество и цену
if ($id_product){
$sql=mysql_query("UPDATE `ps_product` SET `quantity` ='".$data_f[1]."' , `price` = '".$data_f[2]."' WHERE `id_product`='".$id_product."' LIMIT 1");
echo "<p style='color:green'>товар с штрихкодом <b>".$data_f[0]."</b> обновлен</p>";
}
else{
echo "<p style='color:red '>товар с штрихкодом <b>".$data_f[0]."</b> не найден</p>";
}
}
echo "<b>Обновление завершено</b>";
}
else{
echo "Невозможно открыть загруженый файл";
}
}
else{
echo '
<h2>Обновления цены и количества:</h2>
<form action="'.$_SERVER["PHP_SELF"].'" method="post" enctype="multipart/form-data">
<input type="file" name="filename">
<input type="submit" value="Загрузить">
</form>
';
}
echo '</div>';
include(PS_ADMIN_DIR.'/footer.inc.php');
?>
Сообщение отредактировано tesla 27-10-2011 10:50 ...