分类分类
更新时间:2026-02-18 20:07:35作者:fang
最近接手了一个ecshop2.7.3版本的商城,发现后台发货时无法修改发货状态,然后查看库存发现没有缺货。于是开始追踪错误。
“此单发货数量不能超出订单商品数量”提示的是这些文字,所以我先找到了languages/zh_cn/admin/order.php的语言配置文件。
第74行:$_LANG['act_ship_num'] = '此单发货数量不能超出订单商品数量';
查找调用此全局变量的页面,果然,对应的admin/order.php文件。
分析ecshop模板文件,order_delivery_info.htm
{foreach from=$goods.package_goods_list item=package}
<tr>
<td>-- <a href="../goods.php?id={$package.goods_id}" target="_blank">{$package.goods_name}</a></td>
<td>{$package.goods_sn}</td>
<td>{$package.product_sn}</td>
<td>{$package.goods_attr_str}</td>
{if $suppliers_list neq 0} //www.zuimoban.com
<td><div align="right">{$suppliers_name[$package.suppliers_id]|default:$lang.restaurant}</div></td>
{/if}
<td><div align="right">{$package.storage}</div></td>
<td><div align="right">{$package.order_send_number}</div></td>
<td><div align="right">{$package.sended}</div></td>
<td><div align="right"><input name="send_number[{$goods.rec_id}][{$package.g_p}]" type="text" id="send_number_{$goods.rec_id}_{$package.g_p}" value="{$package.send}" size="10" maxlength="11" {$package.readonly}/></div></td>
</tr>
{/foreach}
将
send_number[{$goods.rec_id}][{$package.g_p}]
数组通过form表单传递到order.php?act=operate_post动作下。这个数组蛮别致的,个人理解是用来区分多个商品的信息,以免商品订单出现混淆。
追踪到order.php下的act=operate_post下,
/*------------------------------------------------------ */
//-- 操作订单状态(处理批量提交)
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'batch_operate_post')
{
/* 检查权限 */
admin_priv('order_os_edit');
/* 取得参数 */
$order_id = $_REQUEST['order_id']; // 订单id(逗号格开的多个订单id)
$operation = $_REQUEST['operation']; // 订单操作
$action_note= $_REQUEST['action_note']; // 操作备注
$order_id_list = explode(',', $order_id);
/* 初始化处理的订单sn */
$sn_list = array();
$sn_not_list = array();
好吧 一直往下分析……头晕眼花中终于找到了可疑目标
/* 发货数量与总量不符 */
if (!isset($value['package_goods_list']) || !is_array($value['package_goods_list']))
{
$sended = order_delivery_num($order_id, $value['goods_id'], $value['product_id']);
//echo $sended."<br>";
//echo $send_number[$value['rec_id']].'<br>';
//print_r($value);
if (($value['storage'] - $sended - $send_number[$value['rec_id']]) < 0)
{
/* 操作失败 */
$links[] = array('text' => $_LANG['order_info'], 'href' => 'order.php?act=info&order_id=' . $order_id);
sys_msg($_LANG['act_ship_num'], 1, $links);
}
}
else
{
/* 超值礼包 */
foreach ($goods_list[$key]['package_goods_list'] as $pg_key => $pg_value)
{
if (($pg_value['order_send_number'] - $pg_value['sended'] - $send_number[$value['rec_id']][$pg_value['g_p']]) < 0)
{
/* 操作失败 */
$links[] = array('text' => $_LANG['order_info'], 'href' => 'order.php?act=info&order_id=' . $order_id);
sys_msg($_LANG['act_ship_num'], 1, $links);
}
}
}
调试后发现数组$value中显示库存的数组id并非['goods_number']字段,而是['storage']。完结
相关
归墟战纪策略游戏262.92 MBv3.95802026-02-14
下载爆裂老奶策略游戏209.43 MBv1.0.112026-02-14
下载超能下蛋鸭策略游戏395.4 MBv1.2.82026-02-14
下载你好盒子实用工具12.1 MBv2.2.852026-02-14
下载我在峡谷当牛马休闲益智87.95 MBv0.7.12026-02-14
下载抽卡监狱2策略游戏190.75 MBv1.4.92026-02-14
下载Campus社交通讯94.36 MBv1.19.02026-02-14
下载冒险传奇角色扮演141.73 Mv9991.12026-02-14
下载心动次元app社交通讯43.96 Mv1.0.1.32026-02-14
下载致亲爱的我角色扮演1.63Gv1.02026-02-14
下载狼伴侣游戏手机版冒险游戏155.6 Mv1.02026-02-14
下载Loclike社交通讯169.08 Mv2.2.112026-02-14
下载










