請選擇 進入手機版 | 繼續訪問電腦版

OpenCart 台灣技術論壇

 找回密碼
 立即註冊
搜索
123
返回列表 發新帖
樓主: openshop

商品選項的庫存數量無法扣除?

[複製鏈接]

17

主題

97

帖子

633

積分

高級會員

Rank: 4

積分
633
發表於 2017-3-7 16:55:22 | 顯示全部樓層
本帖最後由 阿維 於 2017-3-7 17:21 編輯
admin 發表於 2017-1-12 18:13
在 function addOrderHistory() 中扣減商品數量的規則是,
當變更前的訂單狀態不是 Processing(處理中) 也 ...

抱歉,剛剛又發現有商品超賣了。

我現在又試圖來理解您說的意思,您的意思是說我銀行轉帳的訂單處理狀態【等待付款中】跟【已傳送匯款通知】都必須要在【訂單處理狀態】勾選。

同時【訂單完成狀態】也必須要選擇【已完成】跟【已出貨】這樣才能正確的計算庫存嗎?

這是作者回信給我的內容,請問可以幫忙看看嗎?

If you need an example for reference, you can visit my demo site:
http://oc20demo.aauwwo.com/admin/index.php?route=setting/setting
username: demo
password: demo

I don't really understand about your problem, but here for your concern:

#1. This payment confirmation module system will change the order status to the order status that is defined in the setting ('Payment Confirmation Status' setting) when customers make a payment confirmation.

#2. On the default opencart setting there are 'Processing Order Status' and 'Complete Order Status' setting.
For every order status that has reached one of the order status in this setting, system will start stock subtraction.

So the conclusion is, don't set 'Payment Confirmation Status' setting with one of the order status that contained in 'Processing Order Status' and/or 'Complete Order Status' setting if you don't want the stock is reduced when someone make payment confirmation.

For example, if your 'Processing Order Status' setting are 'processing', 'shipped', 'complete'. So, don't set your 'Payment Confirmation Status' setting with one of that (processing/shipped/complete). You can create new order status with the name: 'awaiting verification' or 'payment confirmation received' or etc, so your stock have not changed until you verify that payment (by change the order status to processing/shipped/complete).


118

主題

1065

帖子

3278

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
3278
發表於 2017-3-7 19:20:36 | 顯示全部樓層
OpenCart 提供了具有彈性的設定,
讓使用者自行決定何時(依訂單狀態的變化條件)該扣減庫存數量,
所以系統是否正確扣減庫存,必須是 :
(1) 您希望扣減庫存數的時機
(2) 您設定的 【訂單處理狀態】+ 【訂單完成狀態】
此兩者必須是相符的,才會依您期待的時機運作。

補一下之前的資訊 [2017/01/16 更新]
在 function addOrderHistory() 中扣減商品數量的規則是,
當變更前的訂單狀態不是 Processing 也不是 Complete,
而變更後的訂單狀態是 Processing 或是 Complete 時 (其實就是確認訂單成立),
才進行商品數量的扣減,
所以您得將相關動作(結帳、付款)的訂單狀態控制好,來搭配系統的扣減規則。

上面的 Processing 及 Complete 訂單狀態,
並不是指 order_status_id = 2 或 5
而是指您在 [系統管理] > [商店管理] > [選項設定] 中,所設定的
[屬處理中之訂單狀態] & [屬已完成之訂單狀態] 所指定的訂單狀態,
這兩項本站原本翻譯成 [訂單處理狀態] & [訂單完成狀態],
其實應該是要您指定哪些訂單狀態歸屬於 [處理中] 及 [已完成] 這兩類。

OpenCart 頂級技術服務廠商
付費服務 : www.ntcart.com
Email : service@ntcart.com

17

主題

97

帖子

633

積分

高級會員

Rank: 4

積分
633
發表於 2017-3-8 16:40:14 | 顯示全部樓層
本帖最後由 阿維 於 2017-3-8 16:44 編輯

我剛剛再仔細看作者提供的測試平台,我發現這個模組預設結帳的狀態是「Awaiting Payment [等待付款中]」為主,所以是不是只要按照他設定的方式來做就沒問題了?(已出貨跟其他訂單狀態再勾選即可?)

Checkout [結帳]
Order Status: [訂單狀態]

勾選項目:
Awaiting Payment [等待付款中]

Processing Order Status: [訂單處理狀態]
勾選項目:
Complete [已完成]
Payment Verified [已驗證付款]

Complete Order Status [訂單完成狀態]
勾選項目:
Complete [已完成]

Payment Confirmations [付款確認]
Payment Confirmation Setting: [付款確認設定]
勾選項目:
Awaiting Payment [等待付款中]

Payment Confirmation Status: [付款確認狀態]
勾選項目:
Payment Confirmation Received                                                  [已收到付款確認]

但如果是這樣的話,我有在使用其他的付款模組那要如何搭配使用呢?

比方說我有使用綠界的超商取貨付款模組,這個模組的預設訂單狀態是「Pending[等待處理中]」當我們確認庫存,按下[建立物流訂單]要寄出商品時,會自動更新成「Complete [已完成]」的訂單狀態。

上架商品時的計算庫存要不要選擇[是]呢?

抱歉,因為我有亞斯伯格的理解障礙,所以對於文字的理解真的很差,還請見諒。
這是綠界的設計邏輯,請問在這兩種付款方式的情況下,我要如何設定才能正確的計算庫存呢?

118

主題

1065

帖子

3278

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
3278
發表於 2017-3-8 16:52:16 | 顯示全部樓層
只要將 [系統管理] > [商店管理] > [選項設定] 的 [訂單處理狀態] 或 [訂單完成狀態] 設定,
加入 Complete [已完成] 且 不要加入 Pending[等待處理中] 即可。
OpenCart 頂級技術服務廠商
付費服務 : www.ntcart.com
Email : service@ntcart.com

17

主題

97

帖子

633

積分

高級會員

Rank: 4

積分
633
發表於 2017-3-8 19:55:56 | 顯示全部樓層
我已經修改了,希望能夠解決這樣的問題。

17

主題

97

帖子

633

積分

高級會員

Rank: 4

積分
633
發表於 2017-3-28 13:31:46 | 顯示全部樓層
因為在那之後老闆的希望所有訂單狀態都是[訂單處理狀態]跟[訂單完成狀態]就算取消訂單也要計算庫存,所以在這兩種選項我全部勾選了。

沒有想到發現選項數量跟商品數量為0的商品,不知道為什麼都自動補回庫存了,請問這個大概是什麼原因呢?

PS.這中間我們有刪除舊訂單的需求,我們有購買並安裝執行自動刪除訂單模組,在刪除之前我們有確實取消自動補回庫存的功能,請問這也是可能的原因嗎?

118

主題

1065

帖子

3278

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
3278
發表於 2017-3-29 21:56:58 | 顯示全部樓層
若不提擴充模組,
OpenCart 內建的功能中,應該是只有當,
訂單狀態從 Processing 或 Complete,變更為非 Processing 或 Complete 時,
才會進行庫存數回存的動作。
所以如果你沒有手動去操作舊訂單的訂單狀態變更,
那就是其他擴充模組造成的。
OpenCart 頂級技術服務廠商
付費服務 : www.ntcart.com
Email : service@ntcart.com
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|OpenCart 台灣在地專業技術論壇  

GMT+8, 2017-8-16 21:11 , Processed in 0.094034 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表