ECSHOP订单一键发货简化订单发货流程
第一步:
在templates/order_info.htm文件找到:
{if $operable_list.confirm}
<input name="confirm" type="submit" value="{$lang.op_confirm}" class="button" />
在此代码前加上“一键发货”按钮,代码如下:
<!-- 一键发货 -->
{if $order.pay_status == 2 && $order.shipping_status != 1
&& $order.order_status == 1 }<input name="invoice_no"
type="text" style="color:#00F" value="" /><input
name="to_shipping" type="submit" style="color:#F00" value="快速发货"
class="button"/>{/if}
第二步:
在order.php文件找到:
if (isset($_POST['confirm']))
{
$require_note = false;
$action = $_LANG['op_confirm'];
$operation = 'confirm';
}
在此代码下添加发货操作代码,代码如下
/*------------------------------------------------------ */
//-- start一键发货
/*------------------------------------------------------ */
elseif (isset($_POST['to_shipping']))
{
$invoice_no = empty($_REQUEST['invoice_no']) ? '' : trim($_REQUEST['invoice_no']); //快递单号
if (!empty($invoice_no))
{
$order_id = intval(trim($order_id));
$action_note = trim($action_note);
/* 查询:根据订单id查询订单信息 */
if (!empty($order_id))
{
$order = order_info($order_id);
}
else
{
die('order does not exist');
}
/* 查询:根据订单是否完成 检查权限 */
if (order_finished($order))
{
admin_priv('order_view_finished');
}
else
{
admin_priv('order_view');
}
/* 查询:如果管理员属于某个办事处,检查该订单是否也属于这个办事处 */
$sql = "SELECT agency_id FROM " . $ecs->table('admin_user') . " WHERE user_id = '$_SESSION[admin_id]'";
$agency_id = $db->getOne($sql);
if ($agency_id > 0)
{
if ($order['agency_id'] != $agency_id)
{
sys_msg($_LANG['priv_error'], 0);
}
}
/* 查询:取得用户名 */
if ($order['user_id'] > 0)
{
$user = user_info($order['user_id']);
if (!empty($user))
{
$order['user_name'] = $user['user_name'];
}
}
/* 查询:取得区域名 */
$order['region'] = $db->getOne($sql);
/* 查询:其他处理 */
$order['order_time'] = local_date($_CFG['time_format'], $order['add_time']);
$order['invoice_no'] = $order['shipping_status'] == SS_UNSHIPPED || $order['shipping_status'] == SS_PREPARING ? $_LANG['ss'][SS_UNSHIPPED] : $order['invoice_no'];
/* 查询:是否保价 */
$order['insure_yn'] = empty($order['insure_fee']) ? 0 : 1;
/* 查询:是否存在实体商品 */
$exist_real_goods = exist_real_goods($order_id);
/* 查询:取得订单商品 */
$_goods = get_order_goods(array('order_id' => $order['order_id'], 'order_sn' =>$order['order_sn']));
$attr = $_goods['attr'];
$goods_list = $_goods['goods_list'];
unset($_goods);
/* 查询:商品已发货数量 此单可发货数量 */
if ($goods_list)
{
foreach ($goods_list as $key => $value)
{
}
foreach ($goods_list as $key=>$goods_value)
{
if (!$goods_value['goods_id'])
{
continue;
}
/* 超级礼包 */
if (($goods_value['extension_code'] == 'package_buy') && (count($goods_value['package_goods_list']) > 0))
{
$goods_list[$key]['package_goods_list'] = package_goods($goods_value['package_goods_list'], $goods_value['goods_number'], $goods_value['order_id'], $goods_value['extension_code'], $goods_value['goods_id']);
foreach ($goods_list[$key]['package_goods_list'] as $pg_key => $pg_value)
{
$goods_list[$key]['package_goods_list'][$pg_key]['readonly'] = '';
/* 使用库存 是否缺货 */
if ($pg_value['storage'] <= 0 && $_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP)
{
$goods_list[$key]['package_goods_list'][$pg_key]['send'] = $_LANG['act_good_vacancy'];
$goods_list[$key]['package_goods_list'][$pg_key]['readonly'] = 'readonly="readonly"';
}
/* 将已经全部发货的商品设置为只读 */
elseif ($pg_value['send'] <= 0)
{
$goods_list[$key]['package_goods_list'][$pg_key]['send'] = $_LANG['act_good_delivery'];
$goods_list[$key]['package_goods_list'][$pg_key]['readonly'] = 'readonly="readonly"';
}
}
}
else
{
$goods_list[$key]['sended'] = $goods_value['send_number'];
$goods_list[$key]['sended'] = $goods_value['goods_number'];
$goods_list[$key]['send'] = $goods_value['goods_number'] - $goods_value['send_number'];
$goods_list[$key]['readonly'] = '';
/* 是否缺货 */
if ($goods_value['storage'] <= 0 && $_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP)
{
$goods_list[$key]['send'] = $_LANG['act_good_vacancy'];
$goods_list[$key]['readonly'] = 'readonly="readonly"';
}
elseif ($goods_list[$key]['send'] <= 0)
{
$goods_list[$key]['send'] = $_LANG['act_good_delivery'];
$goods_list[$key]['readonly'] = 'readonly="readonly"';
}
}
}
}
$suppliers_id = 0;
$delivery['order_sn'] = trim($order['order_sn']);
$delivery['add_time'] = trim($order['order_time']);
$delivery['user_id'] = intval(trim($order['user_id']));
$delivery['how_oos'] = trim($order['how_oos']);
$delivery['shipping_id'] = trim($order['shipping_id']);
$delivery['shipping_fee'] = trim($order['shipping_fee']);
$delivery['consignee'] = trim($order['consignee']);
$delivery['address'] = trim($order['address']);
$delivery['country'] = intval(trim($order['country']));
$delivery['province'] = intval(trim($order['province']));
$delivery['cit'] = intval(trim($order['city']));
$delivery['district'] = intval(trim($order['district']));
$delivery['sign_building'] = trim($order['sign_building']);
$delivery['email'] = trim($order['email']);
$delivery['zipcode'] = trim($order['zipcode']);
$delivery['tel'] = trim($order['tel']);
$delivery['mobile'] = trim($order['mobile']);
$delivery['best_time'] = trim($order['best_time']);
$delivery['postscript'] = trim($order['postscript']);
$delivery['how_oos'] = trim($order['how_oos']);
$delivery['insure_fee'] = floatval(trim($order['insure_fee']));
$delivery['shipping_fee'] = floatval(trim($order['shipping_fee']));
$delivery['agency_id'] = intval(trim($order['agency_id']));
$delivery['shipping_name'] = trim($order['shipping_name']);
/* 查询订单信息 */
$order = order_info($order_id);
/* 检查能否操作 */
$operable_list = operable_list($order);
/* 初始化提示信息 */
$msg = '';
/* 定义当前时间 */
define('GMTIME_UTC', gmtime()); // 获取 UTC 时间戳
/* 取得订单商品 */
$_goods = get_order_goods(array('order_id' => $order_id, 'order_sn' => $delivery['order_sn']));
$goods_list = $_goods['goods_list'];
/* 检查此单发货商品库存缺货情况 */
/* $goods_list已经过处理 超值礼包中商品库存已取得 */
$virtual_goods = array();
$package_virtual_goods = array();
/* 生成发货单 */
/* 获取发货单号和流水号 */
$delivery['delivery_sn'] = get_delivery_sn();
$delivery_sn = $delivery['delivery_sn'];
/* 获取当前操作员 */
$delivery['action_user'] = $_SESSION['admin_name'];
/* 获取发货单生成时间 */
$delivery['update_time'] = GMTIME_UTC;
$delivery_time = $delivery['update_time'];
$sql ="select add_time from ". $GLOBALS['ecs']->table('order_info') ." WHERE order_sn = '" . $delivery['order_sn'] . "'";
$delivery['add_time'] = $GLOBALS['db']->GetOne($sql);
/* 获取发货单所属供应商 */
$delivery['suppliers_id'] = $suppliers_id;
/* 设置默认值 */
$delivery['status'] = 2; // 正常
$delivery['order_id'] = $order_id;
/* 过滤字段项 */
$filter_fileds = array(
'order_sn', 'add_time', 'user_id', 'how_oos', 'shipping_id', 'shipping_fee',
'consignee', 'address', 'country', 'province', 'city', 'district', 'sign_building',
'email', 'zipcode', 'tel', 'mobile', 'best_time', 'postscript', 'insure_fee',
'agency_id', 'delivery_sn', 'action_user', 'update_time',
'suppliers_id', 'status', 'order_id', 'shipping_name'
);
$_delivery = array();
foreach ($filter_fileds as $value)
{
$_delivery[$value] = $delivery[$value];
}
/* 发货单入库 */
$query = $db->autoExecute($ecs->table('delivery_order'), $_delivery, 'INSERT', '', 'SILENT');
$delivery_id = $db->insert_id();
if ($delivery_id)
{
$delivery_goods = array();
//发货单商品入库
if (!empty($goods_list))
{
foreach ($goods_list as $value)
{
// 商品(实货)(虚货)
if (empty($value['extension_code']) || $value['extension_code'] == 'virtual_card')
{
$delivery_goods = array('delivery_id' => $delivery_id,
'goods_id' => $value['goods_id'],
'product_id' => $value['product_id'],
'product_sn' => $value['product_sn'],
'goods_id' => $value['goods_id'],
'goods_name' => $value['goods_name'],
'brand_name' => $value['brand_name'],
'goods_sn' => $value['goods_sn'],
'send_number' => $value['goods_number'],
'parent_id' => 0,
'is_real' => $value['is_real'],
'goods_attr' => $value['goods_attr']
);
/* 如果是货品 */
if (!empty($value['product_id']))
{
$delivery_goods['product_id'] = $value['product_id'];
}
$query = $db->autoExecute($ecs->table('delivery_goods'), $delivery_goods, 'INSERT', '', 'SILENT');
$sql = "UPDATE ".$GLOBALS['ecs']->table('order_goods'). "
SET send_number = " . $value['goods_number'] . "
WHERE order_id = '" . $value['order_id'] . "'
AND goods_id = '" . $value['goods_id'] . "' ";
$GLOBALS['db']->query($sql, 'SILENT');
}
// 商品(超值礼包)
elseif ($value['extension_code'] == 'package_buy')
{
foreach ($value['package_goods_list'] as $pg_key => $pg_value)
{
$delivery_pg_goods = array('delivery_id' => $delivery_id,
'goods_id' => $pg_value['goods_id'],
'product_id' => $pg_value['product_id'],
'product_sn' => $pg_value['product_sn'],
'goods_name' => $pg_value['goods_name'],
'brand_name' => '',
'goods_sn' => $pg_value['goods_sn'],
'send_number' => $value['goods_number'],
'parent_id' => $value['goods_id'], // 礼包ID
'extension_code' => $value['extension_code'], // 礼包
'is_real' => $pg_value['is_real']
);
$query = $db->autoExecute($ecs->table('delivery_goods'), $delivery_pg_goods, 'INSERT', '', 'SILENT');
$sql = "UPDATE ".$GLOBALS['ecs']->table('order_goods'). "
SET send_number = " . $value['goods_number'] . "
WHERE order_id = '" . $value['order_id'] . "'
AND goods_id = '" . $pg_value['goods_id'] . "' ";
$GLOBALS['db']->query($sql, 'SILENT');
}
}
}
}
}
else
{
/* 操作失败 */
$links[] = array('text' => $_LANG['order_info'], 'href' => 'order.php?act=info&order_id=' . $order_id);
sys_msg($_LANG['act_false'], 1, $links);
}
unset($filter_fileds, $delivery, $_delivery, $order_finish);
/* 定单信息更新处理 */
if (true)
{
/* 标记订单为已确认 “发货中” */
/* 更新发货时间 */
$order_finish = get_order_finish($order_id);
$shipping_status = SS_SHIPPED_ING;
if ($order['order_status'] != OS_CONFIRMED && $order['order_status'] != OS_SPLITED && $order['order_status'] != OS_SPLITING_PART)
{
$arr['order_status'] = OS_CONFIRMED;
$arr['confirm_time'] = GMTIME_UTC;
}
$arr['order_status'] = $order_finish ? OS_SPLITED : OS_SPLITING_PART; // 全部分单、部分分单
$arr['shipping_status'] = $shipping_status;
update_order($order_id, $arr);
}
/* 记录log */
order_action($order['order_sn'], $arr['order_status'], $shipping_status, $order['pay_status'], $action_note);
/* 清除缓存 */
clear_cache_files();
/* 根据发货单id查询发货单信息 */
if (!empty($delivery_id))
{
$delivery_order = delivery_order_info($delivery_id);
}
elseif (!empty($order_sn))
{
$delivery_id = $GLOBALS['db']->getOne("SELECT delivery_id FROM " . $ecs->table('delivery_order') . " WHERE order_sn = " . $order_sn );
$delivery_order = delivery_order_info($delivery_id);
}
else
{
die('order does not exist');
}
/* 如果管理员属于某个办事处,检查该订单是否也属于这个办事处 */
$sql = "SELECT agency_id FROM " . $ecs->table('admin_user') . " WHERE user_id = '" . $_SESSION['admin_id'] . "'";
$agency_id = $db->getOne($sql);
if ($agency_id > 0)
{
if ($delivery_order['agency_id'] != $agency_id)
{
sys_msg($_LANG['priv_error']);
}
/* 取当前办事处信息 */
$sql = "SELECT agency_name FROM " . $ecs->table('agency') . " WHERE agency_id = '$agency_id' LIMIT 0, 1";
$agency_name = $db->getOne($sql);
$delivery_order['agency_name'] = $agency_name;
}
/* 取得用户名 */
if ($delivery_order['user_id'] > 0)
{
$user = user_info($delivery_order['user_id']);
if (!empty($user))
{
$delivery_order['user_name'] = $user['user_name'];
}
}
/* 取得区域名 */
$sql = "SELECT concat(IFNULL(c.region_name, ''), ' ', IFNULL(p.region_name, ''), " .
"' ', IFNULL(t.region_name, ''), ' ', IFNULL(d.region_name, '')) AS region " .
"FROM " . $ecs->table('order_info') . " AS o " .
"LEFT JOIN " . $ecs->table('region') . " AS c ON o.country = c.region_id " .
"LEFT JOIN " . $ecs->table('region') . " AS p ON o.province = p.region_id " .
"LEFT JOIN " . $ecs->table('region') . " AS t ON o.city = t.region_id " .
"LEFT JOIN " . $ecs->table('region') . " AS d ON o.district = d.region_id " .
"WHERE o.order_id = '" . $delivery_order['order_id'] . "'";
$delivery_order['region'] = $db->getOne($sql);
/* 是否保价 */
$order['insure_yn'] = empty($order['insure_fee']) ? 0 : 1;
/* 取得发货单商品 */
$goods_sql = "SELECT *
FROM " . $ecs->table('delivery_goods') . "
WHERE delivery_id = " . $delivery_order['delivery_id'];
$goods_list = $GLOBALS['db']->getAll($goods_sql);
/* 是否存在实体商品 */
$exist_real_goods = 0;
if ($goods_list)
{
foreach ($goods_list as $value)
{
if ($value['is_real'])
{
$exist_real_goods++;
}
}
}
/* 取得订单操作记录 */
$act_list = array();
$sql = "SELECT * FROM " . $ecs->table('order_action') . " WHERE order_id = '" . $delivery_order['order_id'] . "' AND action_place = 1 ORDER BY log_time DESC,action_id DESC";
$res = $db->query($sql);
while ($row = $db->fetchRow($res))
{
$row['order_status'] = $_LANG['os'][$row['order_status']];
$row['pay_status'] = $_LANG['ps'][$row['pay_status']];
$row['shipping_status'] = ($row['shipping_status'] == SS_SHIPPED_ING) ? $_LANG['ss_admin'][SS_SHIPPED_ING] : $_LANG['ss'][$row['shipping_status']];
$row['action_time'] = local_date($_CFG['time_format'], $row['log_time']);
$act_list[] = $row;
}
/*同步发货*/
/*判断支付方式是否支付宝*/
$alipay = false;
$order = order_info($delivery_order['order_id']); //根据订单ID查询订单信息,返回数组$order
$payment = payment_info($order['pay_id']); //取得支付方式信息
/* 定义当前时间 */
define('GMTIME_UTC', gmtime()); // 获取 UTC 时间戳
/* 根据发货单id查询发货单信息 */
if (!empty($delivery_id))
{
$delivery_order = delivery_order_info($delivery_id);
}
else
{
die('order does not exist');
}
/* 查询订单信息 */
$order = order_info($order_id);
/* 检查此单发货商品库存缺货情况 */
$virtual_goods = array();
$delivery_stock_sql = "SELECT DG.goods_id, DG.is_real, DG.product_id, SUM(DG.send_number) AS sums, IF(DG.product_id > 0, P.product_number, G.goods_number) AS storage, G.goods_name, DG.send_number
FROM " . $GLOBALS['ecs']->table('delivery_goods') . " AS DG, " . $GLOBALS['ecs']->table('goods') . " AS G, " . $GLOBALS['ecs']->table('products') . " AS P
WHERE DG.goods_id = G.goods_id
AND DG.delivery_id = '$delivery_id'
AND DG.product_id = P.product_id
GROUP BY DG.product_id ";
$delivery_stock_result = $GLOBALS['db']->getAll($delivery_stock_sql);
/* 如果商品存在规格就查询规格,如果不存在规格按商品库存查询 */
if(!empty($delivery_stock_result))
{
foreach ($delivery_stock_result as $value)
{
if (($value['sums'] > $value['storage'] || $value['storage'] <= 0) && (($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP) || ($_CFG['use_storage'] == '0' && $value['is_real'] == 0)))
{
/* 操作失败 */
$links[] = array('text' => $_LANG['order_info'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id);
sys_msg(sprintf($_LANG['act_good_vacancy'], $value['goods_name']), 1, $links);
break;
}
/* 虚拟商品列表 virtual_card*/
if ($value['is_real'] == 0)
{
$virtual_goods[] = array(
'goods_id' => $value['goods_id'],
'goods_name' => $value['goods_name'],
'num' => $value['send_number']
);
}
}
}
else
{
$delivery_stock_sql = "SELECT DG.goods_id, DG.is_real, SUM(DG.send_number) AS sums, G.goods_number, G.goods_name, DG.send_number
FROM " . $GLOBALS['ecs']->table('delivery_goods') . " AS DG, " . $GLOBALS['ecs']->table('goods') . " AS G
WHERE DG.goods_id = G.goods_id
AND DG.delivery_id = '$delivery_id'
GROUP BY DG.goods_id ";
$delivery_stock_result = $GLOBALS['db']->getAll($delivery_stock_sql);
foreach ($delivery_stock_result as $value)
{
if (($value['sums'] > $value['goods_number'] || $value['goods_number'] <= 0) && (($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP) || ($_CFG['use_storage'] == '0' && $value['is_real'] == 0)))
{
/* 操作失败 */
$links[] = array('text' => $_LANG['order_info'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id);
sys_msg(sprintf($_LANG['act_good_vacancy'], $value['goods_name']), 1, $links);
break;
}
/* 虚拟商品列表 virtual_card*/
if ($value['is_real'] == 0)
{
$virtual_goods[] = array(
'goods_id' => $value['goods_id'],
'goods_name' => $value['goods_name'],
'num' => $value['send_number'],
);
}
}
}
/* 发货 */
/* 处理虚拟卡 商品(虚货) */
if (is_array($virtual_goods) && count($virtual_goods) > 0)
{
foreach ($virtual_goods as $virtual_value)
{
virtual_card_shipping($virtual_value,$order['order_sn'], $msg, 'split');
}
}
/* 如果使用库存,且发货时减库存,则修改库存 */
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP)
{
foreach ($delivery_stock_result as $value)
{
/* 商品(实货)、超级礼包(实货) */
if ($value['is_real'] != 0)
{
//(货品)
if (!empty($value['product_id']))
{
$minus_stock_sql = "UPDATE " . $GLOBALS['ecs']->table('products') . "
SET product_number = product_number - " . $value['sums'] . "
WHERE product_id = " . $value['product_id'];
$GLOBALS['db']->query($minus_stock_sql, 'SILENT');
}
$minus_stock_sql = "UPDATE " . $GLOBALS['ecs']->table('goods') . "
SET goods_number = goods_number - " . $value['sums'] . "
WHERE goods_id = " . $value['goods_id'];
$GLOBALS['db']->query($minus_stock_sql, 'SILENT');
}
}
}
/* 修改发货单信息 */
$invoice_no = trim($invoice_no);
$_delivery['invoice_no'] = $invoice_no;
$_delivery['status'] = 0; // 0,为已发货
$query = $db->autoExecute($ecs->table('delivery_order'), $_delivery, 'UPDATE', "delivery_id = $delivery_id", 'SILENT');
if (!$query)
{
/* 操作失败 */
$links[] = array('text' => $_LANG['delivery_sn'] . $_LANG['detail'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id);
sys_msg($_LANG['act_false'], 1, $links);
}
/* 标记订单为已确认 “已发货” */
/* 更新发货时间 */
$order_finish = get_all_delivery_finish($order_id);
$shipping_status = ($order_finish == 1) ? SS_SHIPPED : SS_SHIPPED_PART;
$arr['shipping_status'] = $shipping_status;
$arr['shipping_time'] = GMTIME_UTC; // 发货时间
$arr['invoice_no'] = trim($order['invoice_no'] . '<br>' . $invoice_no, '<br>');
update_order($order_id, $arr);
/* 发货单发货记录log */
order_action($order['order_sn'], OS_CONFIRMED, $shipping_status, $order['pay_status'], $action_note, null, 1);
/* 如果当前订单已经全部发货 */
if ($order_finish)
{
/* 如果订单用户不为空,计算积分,并发给用户;发红包 */
if ($order['user_id'] > 0)
{
/* 取得用户信息 */
$user = user_info($order['user_id']);
/* 计算并发放积分 */
$integral = integral_to_give($order);
log_account_change($order['user_id'], 0, 0, intval($integral['rank_points']), intval($integral['custom_points']), sprintf($_LANG['order_gift_integral'], $order['order_sn']));
/* 发放红包 */
send_order_bonus($order_id);
}
/* 发送邮件 */
$cfg = $_CFG['send_ship_email'];
if ($cfg == '1')
{
$order['invoice_no'] = $invoice_no;
$tpl = get_mail_template('deliver_notice');
$smarty->assign('order', $order);
$smarty->assign('send_time', local_date($_CFG['time_format']));
$smarty->assign('shop_name', $_CFG['shop_name']);
$smarty->assign('send_date', local_date($_CFG['date_format']));
$smarty->assign('sent_date', local_date($_CFG['date_format']));
$smarty->assign('confirm_url', $ecs->url() . 'receive.php?id=' . $order['order_id'] . '&con=' . rawurlencode($order['consignee']));
$smarty->assign('send_msg_url',$ecs->url() . 'user.php?act=message_list&order_id=' . $order['order_id']);
$content = $smarty->fetch('str:' . $tpl['template_content']);
if (!send_mail($order['consignee'], $order['email'], $tpl['template_subject'], $content, $tpl['is_html']))
{
$msg = $_LANG['send_mail_fail'];
}
}
/* 如果需要,发短信 */
if ($GLOBALS['_CFG']['sms_order_shipped'] == '1' && $order['mobile'] != '')
{
include_once('../includes/cls_sms.php');
$sms = new sms();
$sms->send($order['mobile'], sprintf($GLOBALS['_LANG']['order_shipped_sms'], $order['order_sn'],
local_date($GLOBALS['_LANG']['sms_time_format']), $GLOBALS['_CFG']['shop_name']), 0);
}
}
/* 清除缓存 */
clear_cache_files();
/* 操作成功 */
$links[] = array('text' => $_LANG['09_delivery_order'], 'href' => 'order.php?act=delivery_list');
$links[] = array('text' => $_LANG['delivery_sn'] . $_LANG['detail'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id);
sys_msg($_LANG['act_ok'], 0, $links);
}
}
/*------------------------------------------------------ */
//-- end一键发货
/*------------------------------------------------------ */
转载:http://www.ecshop119.com/ecshopjc-881.html
ECSHOP订单一键发货简化订单发货流程的更多相关文章
- [转载]ecshop 实现订单导出功能 指定订单导出 EXCEL 数据文件
当下很多功能都觉得理所当然,但是实际作为2012年停更的ECSHOP来说,很多功能其实都是缺少的,好比今天的要说的功能 订单导出 这个功能对于现在的产品设计来说,应该属于一个比较常规的功能,但是ECS ...
- Java Web之网上购物系统(提交订单、查看我的订单)
作业终于做完了,好开心......虽然这一周经历不是那么顺利,但是觉得还是收获了不少,有过想哭的冲动,代码不会写,事情办不好,各种发愁.空间里发小发了带父母出去游玩的照片,瞬间能量值不知道是被击退的多 ...
- javascript - 状态模式 - 简化分支判断流程
状态模式笔记 当一个对象的内部状态发生改变时,会导致行为的改变,这像是改变了对象 状态模式既是解决程序中臃肿的分支判断语句问题,将每个分支转化为一种状态独立出来,方便每种状态的管理又不至于每次 ...
- Luffy之结算订单页面(订单模型表的创建,订单的生成,以及订单详情展示等)
订单页面 在前面我们已经构建了,购物车的页面,接下来到了结算页面 1.首先,在购物车页面点击去结算按钮时,我们需要做如下动作 .前端发送生成订单的请求,点击标签内触发事件 create_order t ...
- php+redis,延迟任务 实现自动取消订单,自动完成订单
简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件) 需要注意此功能是在redis 2.8版本以后推出的,因此你服务器上的reids最少要是2.8版本 ...
- new命令简化的内部流程
构造函数返回对象的一些问题: function fn(name,age){ this.name = name; this.age = age; //return 23; 忽略数字,直接返回原有对象 / ...
- NGK与Captain technology合作 推出贷款体验用于简化汽车经销商流程
据外媒报导,近日,NGK.IO正在与Captain technology恰谈合作事宜,以简化购车体验,包括简化购车流程.NGK的CTO Stephen Litan表示:"NGK宣布与Capt ...
- 苹果应用内购 ios 开发者根据用户提供的邮件中的订单号查看该订单是否支付成功
苹果应用内购 ios 开发者根据用户提供的邮件中的订单号查看该订单是否支付成功 这是苹果wwdc2021 推出的新功能 参考官网链接 App Store Server API | Apple Deve ...
- 编写Java程序,模拟网上商城购物,当用户选好物品提交订单时,每笔订单会自动生成一个唯一的订单编号。
查看本章节 查看作业目录 需求说明: 模拟网上商城购物,当用户选好物品提交订单时,每笔订单会自动生成一个唯一的订单编号.而部分电子商务网站在数据高峰期时,一毫秒可能需要处理近千笔的订单 现在简单模拟 ...
随机推荐
- 特殊用途语言特性——默认参数、内联函数和constexptr函数
1 默认实参 某些函数有这样一些参数,在函数的很多次调用中它们都被赋予一个相同的值,此时,我们把这个反复出现的值称为函数的默认实参.调用含有默认实参的函数时,可以包含该实参,也可以省略该实参. 我们可 ...
- 关于Android模拟器键盘不能使用的解决方法
很多朋友遇到一个问题,自己搭建完了Android环境后,启动模拟器体验Android系统,但是发现不能使用键盘方便的输入内容,如下图: 同时,使用笔记本的键盘也无法输入内容,只能通过模拟器内置的输入法 ...
- 分布式应用处理方式 - Remoting
分布式应用程序 所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果. ...
- QT连接多种数据库f方法及测试
QT提供了对多种数据库的访问支持,对SQL Server也可以通过ODBC来进行访问.要想顺利访问SQL Server. 首先要保证以下几点:1. QT编译时已经编译了QtSql2. 编译了ODBC插 ...
- Java基础知识强化之多线程笔记05:Java程序运行原理 和 JVM的启动是多线程的吗
1. Java程序运行原理: Java 命令会启动Java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一个进程.该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 m ...
- myeclipse连接数据库遇到的几个问题
1:无效的SQL URL: //将获取的参数插入数据库 Connection conn=null; PreparedStatement stat=null; ...
- [Laravel] 获取执行的Sql
获取数据库操作记录 $queries = DB::getQueryLog(); //取最后一条是 $lastSql = end($queries); 不过这样输出的,不是真正的sql,输出的是类似PD ...
- PHP自动执行程序
/****config.php***/ <?php return 1; //需要停止时改成0 ?> /******************/ ignore_user_abort();//关 ...
- [转]分布式系统为什么需要 Tracing?
分布式系统为什么需要 Tracing? 先介绍一个概念:分布式跟踪,或分布式追踪. 电商平台由数以百计的分布式服务构成,每一个请求路由过来后,会经过多个业务系统并留下足迹,并产生对各种Cach ...
- PS定位
一.定位:按标准看谁离得近来进行覆盖:什么都没有(最远).浮动(远).定位(近) 二.position absolute 绝对定位,能堆叠在上一层下面,脱离文档流 relative 相对定位,按 ...