© 2002-2018 最模板 zuimoban.com 版权所有,并保留所有权利。
ecshop模板网,专注ecshop模板制作、ecshop二次开发服务!
最近ecshop模板堂忙客户ecshop商城的维护 我们发现:ecshop后台减少库存的时机默认只有下订单时和发货时,不能满足各种客户需求啊,要增加一个商家付款后就能减少库存,先解决方法如下
1. includes/inc_constant.php 文件 大约207行 加上
1
|
define( 'SDT_PAY' , 2); // 支付时减少库 |
languages/zh-cn/admin/shop_config.php 文件 大约338行加上
1
|
$_LANG [ 'cfg_range' ][ 'stock_dec_time' ][ '2' ] = '商家付款后' ; |
给 数据表 ship_config 中 id 为 423 的行 store_range 增加 2
1
2
3
4
|
case 2 : $sql = "SELECT goods_id, SUM(goods_number) AS num, MAX(extension_code) AS extension_code, product_id FROM " . $GLOBALS [ 'ecs' ]->table( 'order_goods' ) . " WHERE order_id = '$order_id' AND is_real = 1 GROUP BY goods_id, product_id" ; break ; |
includes/lib_payment.php 文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/* 修改订单状态为已付款 */ $sql = 'UPDATE ' . $GLOBALS [ 'ecs' ]->table( 'order_info' ) . " SET order_status = '" . OS_CONFIRMED . "', " . " confirm_time = '" . gmtime() . "', " . " pay_status = '$pay_status', " . " pay_time = '" .gmtime(). "', " . " money_paid = order_amount," . " order_amount = 0 " . "WHERE order_id = '$order_id'" ; $GLOBALS [ 'db' ]->query( $sql ); //在这段之后增加 include_once (ROOT_PATH . 'includes/lib_order.php' ); /* 如果使用库存,且付款时减库存,则减少库存 by sid*/ if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PAY){ change_order_goods_storage( $order [ 'order_id' ], true, SDT_PAY); } |
3. admin/order.php 文件
1
2
3
4
5
6
7
8
9
10
|
/* 如果使用库存,且下订单时减库存,则增加库存 */ if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PLACE) { change_order_goods_storage( $order_id , false, SDT_PLACE); } //在这段之后增加 //无效与取消时加库存 if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PAY){ change_order_goods_storage( $order_id , false, SDT_PAY); } |
4. flow.php 文件
1
2
3
4
5
6
7
8
|
/* 如果订单金额为0 处理虚拟卡 */ if ( $order [ 'order_amount' ] <= 0) { //在这段之后加上 //扣库存 if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PAY){ change_order_goods_storage( $order [ 'order_id' ], true, SDT_PAY); } |
admin/order.php 文件
1
2
3
4
5
6
7
8
9
10
11
12
|
$payment = payment_info( $order [ 'pay_id' ]); if ( $payment [ 'is_cod' ]) { $arr [ 'shipping_status' ] = SS_RECEIVED; $order [ 'shipping_status' ] = SS_RECEIVED; } update_order( $order_id , $arr ); //在这段之后增加 //扣库存 if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PAY){ change_order_goods_storage( $order [ 'order_id' ], true, SDT_PAY); } |
1
2
3
4
5
6
7
8
9
10
|
/* 如果使用库存,且下订单时减库存,则增加库存 */ if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PLACE) { change_order_goods_storage( $order_id , false, SDT_PLACE); } //在这段之后增加 if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PAY) { change_order_goods_storage( $order_id , false, SDT_PAY); } |
继续往下
1
2
3
4
5
6
7
8
9
10
|
/* 如果使用库存,且下订单时减库存,则增加库存 */ if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PLACE) { change_order_goods_storage( $order_id , false, SDT_PLACE); } //在这段之后增加 if ( $_CFG [ 'use_storage' ] == '1' && $_CFG [ 'stock_dec_time' ] == SDT_PAY) { change_order_goods_storage( $order_id , false, SDT_PAY); } |
如此,一个完整的ecshop商家付款后减少库存的功能就实现了!!