解决ecshop当前订单发货数量不能超出订单商品数量
2016-09-07 22:02 来源:www.chinab4c.com 作者:ecshop专家
| 
	chinab4c接手了一个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);  //www.zuimoban.com 
	                  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']。完结(责任编辑:chinab4c) | 
 
        
					
						
                          
					
				 
      
      最近更新
常用插件
- ecshop2.7.1邮件发送插件
                                  ecshop2.7.1邮件发送插件:该插件主要的开发思想是源于ecshop短信发送系统... 
- ecshop二次开发商品购买增
                                  图片1香... 
- ecshop最小购买数量控制插
                                  ecshop最小购买数量控制插件,这个插件主要是为我们提供一个十分方便... 
- ecshop没登陆情况下订单查
                                  ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下... 
- ecshop2.7.2生成虚拟订单2.
                                  以前我们开发过ecshop下的虚拟订单,就是客户在访问的时候,会自动生... 
ecshop热门问答
ecshop热门资料
          
               
            ecshop手机中国 
                
            ecshop会员价格 
                
            ecshopDISCUZ论坛 
                
            修改最土注册 
                
            ecshop还是 
                
            ecshop中秋月饼 
                
            ecshop签订 
                
            ecshop自动刷新 
                
            ecshop开发项目 
                
            ecshop转移 
                
            ecshop手机辐射 
                
            ecshop盗链接 
                
            ecshop吸引力 
                
            ecshop中文名 
                
            ecshop独立服务器 
                
            ecshop库文件 
                
            mysql版本 
                
            ecshop小刀 
                
            ecshoptoken 
                
            ecshop订单状态查询 
                
            ecshop郑州俺购网 
                
            ecshop服务端 
                
            ecshoptxt 
                
            ecshop批发功能 
                
            ecshop增删改 
                
            ecshop在线申请 
                
            ecshop地方的 
                
            ecshop文章列表页 
                
            ecmall筛选 
                
            ecshop游戏 
             
        
      


