$_LANG['upload_goods']['is_real'] = '是否实体商品';
$_LANG['upload_goods']['attr'] = '属性';// www.028wz.net
/*** ECSHOP 商品批量上传、修改本次修改由 www.028wz.net 028工作室 提供技术支持!* ============================================================================* $Author: sxc_shop $* $Id: goods_batch.php 17166 2010-05-26 01:55:31Z sxc_shop $*/define('IN_ECS', true);require(dirname(__FILE__) . '/includes/init.php');require('includes/lib_goods.php');/*------------------------------------------------------ *///-- 批量上传/*------------------------------------------------------ */if ($_REQUEST['act'] == 'add'){/* 检查权限 */admin_priv('goods_batch');/* 取得分类列表 */$smarty->assign('cat_list', cat_list());/* 取得可选语言 */$dir = opendir('../languages');$lang_list = array('UTF8' => $_LANG['charset']['utf8'],'GB2312' => $_LANG['charset']['zh_cn'],'BIG5' => $_LANG['charset']['zh_tw'],);$download_list = array();while (@$file = readdir($dir)){if ($file != '.' && $file != '..' && $file != ".svn" && $file != "_svn" && is_dir('../languages/' .$file) == true){$download_list[$file] = sprintf($_LANG['download_file'], isset($_LANG['charset'][$file]) ? $_LANG['charset'][$file] : $file);}}@closedir($dir);$data_format_array = array('ecshop' => $_LANG['export_ecshop'],'taobao' => $_LANG['export_taobao'],'paipai' => $_LANG['export_paipai'],'paipai3' => $_LANG['export_paipai3'],);$smarty->assign('data_format', $data_format_array);$smarty->assign('lang_list', $lang_list);$smarty->assign('download_list', $download_list);/* 参数赋值 */$ur_here = $_LANG['13_batch_add'];$smarty->assign('ur_here', $ur_here);/* 显示模板 */assign_query_info();$smarty->display('goods_batch_add.htm');}//本次修改由 www.028wz.net 028工作室 提供技术支持!/*------------------------------------------------------ *///-- 批量上传:处理/*------------------------------------------------------ */elseif ($_REQUEST['act'] == 'upload'){/* 检查权限 */admin_priv('goods_batch');/* 将文件按行读入数组,逐行进行解析 */$line_number = 0;$arr = array();$goods_list = array();$field_list = array_keys($_LANG['upload_goods']); // 字段列表$data = file($_FILES['file']['tmp_name']);if($_POST['data_cat'] == 'cmsok'){$field_list[] = 'goods_type';$data[0] = iconv('gbk','utf-8',$data[0]);$data[0] = str_replace('商品名称','goods_name',$data[0]);$data[0] = str_replace('商品货号','goods_sn',$data[0]);$data[0] = str_replace('商品品牌','brand_name',$data[0]);$data[0] = str_replace('市场售价','market_price',$data[0]);$data[0] = str_replace('本店售价','shop_price',$data[0]);$data[0] = str_replace('积分购买额度','integral',$data[0]);$data[0] = str_replace('商品原始图','original_img',$data[0]);$data[0] = str_replace('商品图片','goods_img',$data[0]);$data[0] = str_replace('商品缩略图','goods_thumb',$data[0]);$data[0] = str_replace('商品关键词','keywords',$data[0]);$data[0] = str_replace('简单描述','goods_brief',$data[0]);$data[0] = str_replace('详细描述','goods_desc',$data[0]);$data[0] = str_replace('商品重量','goods_weight',$data[0]);$data[0] = str_replace('库存数量','goods_number',$data[0]);$data[0] = str_replace('库存警告数量','warn_number',$data[0]);$data[0] = str_replace('是否精品','is_best',$data[0]);$data[0] = str_replace('是否新品','is_new',$data[0]);$data[0] = str_replace('是否热销','is_hot',$data[0]);$data[0] = str_replace('是否上架','is_on_sale',$data[0]);$data[0] = str_replace('能否作为普通商品销售','is_alone_sale',$data[0]);$data[0] = str_replace('是否实体商品','is_real',$data[0]);$data[0] = str_replace('商品类型','goods_type',$data[0]);//本次修改由 www.028wz.net 028工作室 提供技术支持!$hangs = explode(",",$data[0]);$gtn = array_search('goods_type', $hangs);foreach ($data as $key => $line){// 跳过第一行if ($key == 0){continue;}$line = ecs_iconv('gbk', 'UTF8', $line);$line = str_replace('"','',$line);$lines[] = explode(',',$line);}$goods_type = $lines[0][$gtn];foreach ($hangs as $key => $hang){$attr_ids[$key] = $db->GetOne("SELECT attr_id FROM ".$ecs->table('attribute')." WHERE cat_id = $goods_type AND attr_name = '".trim($hang)."'");}foreach ($lines as $gid => $values){$goods = array();$goods['goods_name'] = '';$goods['goods_sn'] = '';$goods['brand_name'] = '';$goods['market_price'] = '';$goods['shop_price'] = '';foreach ($values as $key => $value){if ($key{$goods[$hangs[$key]] = $value;if (empty($goods['goods_sn'])){$max_id = $db->getOne("SELECT MAX(goods_id) + $gid FROM ".$ecs->table('goods'));$goods['goods_sn'] = generate_goods_sn($max_id);}}else{$goods['attrs'][$attr_ids[$key]] = $value;}}$goods_list[] = $goods;}}elseif($_POST['data_cat'] == 'ecshop'){foreach ($data AS $line){// 跳过第一行if ($line_number == 0){$line_number++;continue;}// 转换编码if (($_POST['charset'] != 'UTF8') && (strpos(strtolower(EC_CHARSET), 'utf') === 0)){$line = ecs_iconv($_POST['charset'], 'UTF8', $line);}// 初始化$arr = array();$buff = '';$quote = 0;$len = strlen($line);for ($i = 0; $i{$char = $line[$i];if ('\\' == $char){$i++;$char = $line[$i];switch ($char){case '"':$buff .= '"';break;case '\'':$buff .= '\'';break;case ',';$buff .= ',';break;default:$buff .= '\\' . $char;break;}}elseif ('"' == $char){if (0 == $quote){$quote++;}else{$quote = 0;}}elseif (',' == $char){if (0 == $quote){if (!isset($field_list[count($arr)])){continue;}$field_name = $field_list[count($arr)];$arr[$field_name] = trim($buff);$buff = '';$quote = 0;}else{$buff .= $char;}}else{$buff .= $char;}if ($i == $len - 1){if (!isset($field_list[count($arr)])){continue;}$field_name = $field_list[count($arr)];$arr[$field_name] = trim($buff);}}$goods_list[] = $arr;}}elseif($_POST['data_cat'] == 'taobao'){$id_is = 0;foreach ($data AS $line){// 跳过第一行if ($line_number == 0){$line_number++;continue;}// 初始化$arr = array();$line_list = explode("\t",$line);$arr['goods_name'] = trim($line_list[0],'"');$max_id = $db->getOne("SELECT MAX(goods_id) + $id_is FROM ".$ecs->table('goods'));$id_is++;$goods_sn = generate_goods_sn($max_id);$arr['goods_sn'] = $goods_sn;$arr['brand_name'] = '';$arr['market_price'] = $line_list[7];$arr['shop_price'] = $line_list[7];$arr['integral'] = 0;$arr['original_img'] = $line_list[25];$arr['keywords'] = '';$arr['goods_brief'] = '';$arr['goods_desc'] = strip_tags($line_list[24]);$arr['goods_desc'] = substr($arr['goods_desc'], 1, -1);$arr['goods_number'] = $line_list[10];$arr['warn_number'] =1;$arr['is_best'] = 0;$arr['is_new'] = 0;$arr['is_hot'] = 0;$arr['is_on_sale'] = 1;$arr['is_alone_sale'] = 0;$arr['is_real'] = 1;$goods_list[] = $arr;}}elseif($_POST['data_cat'] == 'paipai'){$id_is = 0;foreach ($data AS $line){// 跳过第一行if ($line_number == 0){$line_number++;continue;}// 初始化$arr = array();$line_list = explode(",",$line);$arr['goods_name'] = trim($line_list[3],'"');$max_id = $db->getOne("SELECT MAX(goods_id) + $id_is FROM ".$ecs->table('goods'));$id_is++;$goods_sn = generate_goods_sn($max_id);$arr['goods_sn'] = $goods_sn;$arr['brand_name'] = '';$arr['market_price'] = $line_list[13];$arr['shop_price'] = $line_list[13];$arr['integral'] = 0;$arr['original_img'] = $line_list[28];$arr['keywords'] = '';$arr['goods_brief'] = '';$arr['goods_desc'] = strip_tags($line_list[30]);$arr['goods_number'] = 100;$arr['warn_number'] =1;$arr['is_best'] = 0;$arr['is_new'] = 0;$arr['is_hot'] = 0;$arr['is_on_sale'] = 1;$arr['is_alone_sale'] = 0;$arr['is_real'] = 1;$goods_list[] = $arr;}}elseif($_POST['data_cat'] == 'paipai3'){$id_is = 0;foreach ($data AS $line){// 跳过第一行if ($line_number == 0){$line_number++;continue;}// 初始化$arr = array();$line_list = explode(",",$line);$arr['goods_name'] = trim($line_list[1],'"');$max_id = $db->getOne("SELECT MAX(goods_id) + $id_is FROM ".$ecs->table('goods'));$id_is++;$goods_sn = generate_goods_sn($max_id);$arr['goods_sn'] = $goods_sn;$arr['brand_name'] = '';$arr['market_price'] = $line_list[9];$arr['shop_price'] = $line_list[9];$arr['integral'] = 0;$arr['original_img'] = $line_list[23];$arr['keywords'] = '';$arr['goods_brief'] = '';$arr['goods_desc'] = strip_tags($line_list[24]);$arr['goods_number'] = $line_list[5];$arr['warn_number'] =1;$arr['is_best'] = 0;$arr['is_new'] = 0;$arr['is_hot'] = 0;$arr['is_on_sale'] = 1;$arr['is_alone_sale'] = 0;$arr['is_real'] = 1;$goods_list[] = $arr;}}$smarty->assign('goods_class', $_LANG['g_class']);$smarty->assign('goods_list', $goods_list);// 字段名称列表$smarty->assign('title_list', $_LANG['upload_goods']);// 显示的字段列表$smarty->assign('field_show', array('goods_name' => true, 'goods_sn' => true, 'brand_name' => true, 'market_price' => true, 'shop_price' => true));/* 参数赋值 */$smarty->assign('ur_here', $_LANG['goods_upload_confirm']);/* 显示模板 */assign_query_info();$smarty->display('goods_batch_confirm.htm');}/*------------------------------------------------------ *///-- 批量上传:入库/*------------------------------------------------------ */elseif ($_REQUEST['act'] == 'insert'){/* 检查权限 */admin_priv('goods_batch');if (isset($_POST['checked'])){include_once(ROOT_PATH . 'includes/cls_image.php');$image = new cls_image($_CFG['bgcolor']);/* 字段默认值 */$default_value = array('brand_id' => 0,'goods_number' => 0,'goods_weight' => 0,'market_price' => 0,'shop_price' => 0,'warn_number' => 0,'is_real' => 1,'is_on_sale' => 1,'is_alone_sale' => 1,'integral' => 0,'is_best' => 0,'is_new' => 0,'is_hot' => 0,'goods_type' => 0,);/* 查询品牌列表 */$brand_list = array();$sql = "SELECT brand_id, brand_name FROM " . $ecs->table('brand');$res = $db->query($sql);while ($row = $db->fetchRow($res)){$brand_list[$row['brand_name']] = $row['brand_id'];}/* 字段列表 */$field_list = array_keys($_LANG['upload_goods']);$field_list[] = 'goods_class'; //实体或虚拟商品/* 获取商品good id */$max_id = $db->getOne("SELECT MAX(goods_id) + 1 FROM ".$ecs->table('goods'));/* 循环插入商品数据 */foreach ($_POST['checked'] AS $key => $value){// 合并$field_arr = array('cat_id' => $_POST['cat'],'add_time' => gmtime(),'last_update' => gmtime(),);foreach ($field_list AS $field){// 转换编码$field_value = isset($_POST[$field][$value]) ? $_POST[$field][$value] : '';/* 虚拟商品处理 */if ($field == 'goods_class'){$field_value = intval($field_value);if ($field_value == G_CARD){$field_arr['extension_code'] = 'virtual_card';}continue;}// 如果字段值为空,且有默认值,取默认值$field_arr[$field] = !isset($field_value) && isset($default_value[$field]) ? $default_value[$field] : $field_value;// 特殊处理if (!empty($field_value)){// 图片路径if (in_array($field, array('original_img', 'goods_img', 'goods_thumb'))){if(strpos($field_value,'|;')>0){$field_value=explode(':',$field_value);$field_value=$field_value['0'];@copy(ROOT_PATH.'images/'.$field_value.'.tbi',ROOT_PATH.'images/'.$field_value.'.jpg');if(is_file(ROOT_PATH.'images/'.$field_value.'.jpg')){$field_arr[$field] =IMAGE_DIR . '/' . $field_value.'.jpg';}}else{$field_arr[$field] = IMAGE_DIR . '/' . $field_value;}}// 品牌elseif ($field == 'brand_name'){if (isset($brand_list[$field_value])){$field_arr['brand_id'] = $brand_list[$field_value];}else{$sql = "INSERT INTO " . $ecs->table('brand') . " (brand_name) VALUES ('" . addslashes($field_value) . "')";$db->query($sql);$brand_id = $db->insert_id();$brand_list[$field_value] = $brand_id;$field_arr['brand_id'] = $brand_id;}}// 整数型elseif (in_array($field, array('goods_number', 'warn_number', 'integral'))){$field_arr[$field] = intval($field_value);}// 数值型elseif (in_array($field, array('goods_weight', 'market_price', 'shop_price'))){$field_arr[$field] = floatval($field_value);}// bool型elseif (in_array($field, array('is_best', 'is_new', 'is_hot', 'is_on_sale', 'is_alone_sale', 'is_real'))){$field_arr[$field] = intval($field_value) > 0 ? 1 : 0;}}if ($field == 'is_real'){$field_arr[$field] = intval($_POST['goods_class'][$key]);}//www.028wz.net 028$lium_arr = array();if ($field == 'attr'){$lium_arr = explode('|', trim($field_value));}}if (empty($field_arr['goods_sn'])){$field_arr['goods_sn'] = generate_goods_sn($max_id);}/* 如果是虚拟商品,库存为0 */if ($field_arr['is_real'] == 0){$field_arr['goods_number'] = 0;}$db->autoExecute($ecs->table('goods'), $field_arr, 'INSERT');$g_id = $db->insert_id();//www.028wz.net 028$max_id = $db->insert_id() + 1;// 如果图片不为空,修改商品图片,插入商品相册if (!empty($field_arr['original_img']) || !empty($field_arr['goods_img']) || !empty($field_arr['goods_thumb'])){$goods_img = '';$goods_thumb = '';$original_img = '';$goods_gallery = array();$goods_gallery['goods_id'] = $db->insert_id();if (!empty($field_arr['original_img'])){//设置商品相册原图和商品相册图if ($_CFG['auto_generate_gallery']){$ext = substr($field_arr['original_img'], strrpos($field_arr['original_img'], '.'));$img = dirname($field_arr['original_img']) . '/' . $image->random_filename() . $ext;$gallery_img = dirname($field_arr['original_img']) . '/' . $image->random_filename() . $ext;@copy(ROOT_PATH . $field_arr['original_img'], ROOT_PATH . $img);@copy(ROOT_PATH . $field_arr['original_img'], ROOT_PATH . $gallery_img);$goods_gallery['img_original'] = reformat_image_name('gallery', $goods_gallery['goods_id'], $img, 'source');}//设置商品原图if ($_CFG['retain_original_img']){$original_img = reformat_image_name('goods', $goods_gallery['goods_id'], $field_arr['original_img'], 'source');}else{@unlink(ROOT_PATH . $field_arr['original_img']);}}if (!empty($field_arr['goods_img'])){//设置商品相册图if ($_CFG['auto_generate_gallery'] && !empty($gallery_img)){$goods_gallery['img_url'] = reformat_image_name('gallery', $goods_gallery['goods_id'], $gallery_img, 'goods');}//设置商品图$goods_img = reformat_image_name('goods', $goods_gallery['goods_id'], $field_arr['goods_img'], 'goods');}if (!empty($field_arr['goods_thumb'])){//设置商品相册缩略图if ($_CFG['auto_generate_gallery']){$ext = substr($field_arr['goods_thumb'], strrpos($field_arr['goods_thumb'], '.'));$gallery_thumb = dirname($field_arr['goods_thumb']) . '/' . $image->random_filename() . $ext;@copy(ROOT_PATH . $field_arr['goods_thumb'], ROOT_PATH . $gallery_thumb);$goods_gallery['thumb_url'] = reformat_image_name('gallery_thumb', $goods_gallery['goods_id'], $gallery_thumb, 'thumb');}//设置商品缩略图$goods_thumb = reformat_image_name('goods_thumb', $goods_gallery['goods_id'], $field_arr['goods_thumb'], 'thumb');}//修改商品图$db->query("UPDATE " . $ecs->table('goods') . " SET goods_img = '$goods_img', goods_thumb = '$goods_thumb', original_img = '$original_img' WHERE goods_id='" . $goods_gallery['goods_id'] . "'");//添加商品相册图if ($_CFG['auto_generate_gallery']){$db->autoExecute($ecs->table('goods_gallery'), $goods_gallery, 'INSERT');}}//www.028wz.net 028if (!empty($lium_arr))//028 如果不为空{$sql_arr = "SELECT attr_id FROM " . $ecs->table('attribute') ." WHERE cat_id = 1 ";//028 查询 铜牌纸的属性ID$attr_info = $db->getAll($sql_arr);foreach($attr_info as $attr_info_list){$attr_id_list[$attr_info_list['attr_id']] = $attr_info_list['attr_id'];}//$attr_id = $attr_info['attr_id'];// $attr_id_list[1] 克重// $attr_id_list[2] 长度// $attr_id_list[3] 幅宽//$g_number = 0;if (!empty($attr_id_list[1])){$goods_attr = array('goods_id' => intval($g_id),'attr_id' => $attr_id_list[1],);foreach ($lium_arr as $attr_str_1){$attr_str_1 = explode(':', trim($attr_str_1));$goods_attr['attr_value'] = trim($attr_str_1[0]);$goods_attr['attr_price'] = floatval($attr_str_1[1]);$db->autoExecute($ecs->table('goods_attr'), $goods_attr, 'INSERT');$g_attr = $db->insert_id();$products = array('goods_id' => intval($g_id),'goods_attr' => intval($g_attr),'product_number' => intval($attr_str_1[2]),);$db->autoExecute($ecs->table('products'), $products, 'INSERT');$p_id = $db->insert_id();//$products2 = array('product_sn' => $field_arr['goods_sn'] . "_" . $p_id);$products2 = array('product_sn' => $field_arr['goods_sn']);$db->autoExecute($ecs->table('products'), $products2, 'UPDATE', "product_id = '" . $p_id . "'");//$g_number += intval($attr_arr[2]);}}if (intval($attr_id) > 0){$goods_attr = array('goods_id' => intval($g_id),'attr_id' => intval($attr_id),);foreach ($lium_arr as $attr_str){$attr_arr = explode(':', trim($attr_str));$goods_attr['attr_value'] = trim($attr_arr[0]);$goods_attr['attr_price'] = floatval($attr_arr[1]);$db->autoExecute($ecs->table('goods_attr'), $goods_attr, 'INSERT');$g_attr = $db->insert_id();$products = array('goods_id' => intval($g_id),'goods_attr' => intval($g_attr),'product_number' => intval($attr_arr[2]),);$db->autoExecute($ecs->table('products'), $products, 'INSERT');$p_id = $db->insert_id();//$products2 = array('product_sn' => $field_arr['goods_sn'] . "_" . $p_id);$products2 = array('product_sn' => $field_arr['goods_sn']);$db->autoExecute($ecs->table('products'), $products2, 'UPDATE', "product_id = '" . $p_id . "'");//$g_number += intval($attr_arr[2]);}$g_info = array('goods_type' => intval($attr_info['cat_id']));//if ($g_number > 0)//{// $g_info['goods_number'] = $g_number;//}$db->autoExecute($ecs->table('goods'), $g_info, 'UPDATE', "goods_id = '" . $g_id . "'");}}//end}}// 记录日志admin_log('', 'batch_upload', 'goods');/* 显示提示信息,返回商品列表 */$link[] = array('href' => 'goods.php?act=list', 'text' => $_LANG['01_goods_list']);sys_msg($_LANG['batch_upload_ok'], 0, $link);}/*------------------------------------------------------ *///-- 批量修改:选择商品/*------------------------------------------------------ */elseif ($_REQUEST['act'] == 'select'){/* 检查权限 */admin_priv('goods_batch');/* 取得分类列表 */$smarty->assign('cat_list', cat_list());/* 取得品牌列表 */$smarty->assign('brand_list', get_brand_list());/* 参数赋值 */$ur_here = $_LANG['15_batch_edit'];$smarty->assign('ur_here', $ur_here);/* 显示模板 */assign_query_info();$smarty->display('goods_batch_select.htm');}/*------------------------------------------------------ *///-- 批量修改:修改/*------------------------------------------------------ */elseif ($_REQUEST['act'] == 'edit'){/* 检查权限 */admin_priv('goods_batch');/* 取得商品列表 */if ($_POST['select_method'] == 'cat'){$where = " WHERE goods_id " . db_create_in($_POST['goods_ids']);}else{$goods_sns = str_replace("\n", ',', str_replace("\r", '', $_POST['sn_list']));$sql = "SELECT DISTINCT goods_id FROM " . $ecs->table('goods') ." WHERE goods_sn " . db_create_in($goods_sns);$goods_ids = join(',', $db->getCol($sql));$where = " WHERE goods_id " . db_create_in($goods_ids);}$sql = "SELECT DISTINCT goods_id, goods_sn, goods_name, market_price, shop_price, good
扫描二维码分享到微信