php 库存自动减少,ECSHOP付款后自动减少库存功能
ecshop默認只有下訂單時和發貨時,在用戶拍了而沒確認訂單就減少庫存,是不合理的機制,也不能滿足各種客戶需求。因此ECSHOP插件網提供付款后自動減少庫存插件,在用戶下單付款后自動減少商品庫存,滿足大部分客戶所需。
功能效果截圖:登錄ECSHOP后臺 -> 系統設置 -> 購物流程,設置減庫存的機制(這里新增付款時減少庫存)
以下是ECSHOP插件網提供網上的實現方法如下:
第一步:打開includes/inc_constant.php文件
找到如下代碼:
define('SDT_PLACE', 1); // 下訂單時
下行加上以下代碼:
define('SDT_PAY', 2); // 支付時減少庫
第二步:打開languages/zh-cn/admin/shop_config.php文件,在338行加上如下代碼
$_LANG['cfg_range']['stock_dec_time']['2'] = '商家付款后';
第三步:給ECSHOP數據表 ship_config 中 id 為 423 的行 store_range 增加 2
第四步:打開includes/lib_order.php文件,找到如下代碼
case 1 :
$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;
下行加上以下代碼:
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文件,找到如下代碼
/* 記錄訂單操作記錄 */
order_action($order_sn, OS_CONFIRMED, SS_UNSHIPPED, $pay_status, $note, $GLOBALS['_LANG']['buyer']);
上行加上以下代碼:
/* 如果使用庫存,且付款后減庫存,則減少庫存 by ecshop.cx */
include_once(ROOT_PATH . 'includes/lib_order.php');
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PAY)
{
change_order_goods_storage($order['order_id'], true, SDT_PAY);
}
第六步:打開admin/order.php文件,找到如下代碼(共有四處需修改)
/* 如果使用庫存,且下訂單時減庫存,則增加庫存 */
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE)
{
change_order_goods_storage($order_id, false, SDT_PLACE);
}
下行加上以下代碼:
/* 無效與取消時加庫存 by ecshop.cx */
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PAY)
{
change_order_goods_storage($order_id, false, SDT_PAY);
}
繼續找到如下代碼:
if ($payment['is_cod'])
{
$arr['shipping_status'] = SS_RECEIVED;
$order['shipping_status'] = SS_RECEIVED;
}
update_order($order_id, $arr);
下行加上以下代碼:
/* 如果使用庫存,且付款后減庫存,則減少庫存 by ecshop.cx */
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PAY)
{
change_order_goods_storage($order['order_id'], true, SDT_PAY);
}
最后第七步:打開flow.php文件文件,找到如下代碼
/* 如果訂單金額為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);
}
按照以上每一步操作一個ecshop付款后減少庫存的功能就實現了!!
提醒:以上是網上提供的方法,經過我們ECSHOP插件網測試,雖然功能實現了代碼存在不完整以及功能不完善,還有提示錯誤等問題。比如當你下訂單后先不要支付,然后返回用戶中心切換支付方式或者使用余額支付,庫存不減。有能力的自己完善修復解決或建議使用ECSHOP付款后自動減少庫存功能請選購安裝我們ECSHOP插件網開發的正版,全網唯一完善完整正版。(https://www.ecshop.cx/goods-355.html)。
總結
以上是生活随笔為你收集整理的php 库存自动减少,ECSHOP付款后自动减少库存功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WEB/H5性能优化总结
- 下一篇: 动态规划算法php,php算法学习之动态