2010-11-21 203 views
3

說我有一個600.00的筆記本電腦。說我把它改爲$ 650.00。購物車如何處理?他們是否會將價格存儲在購物車或商品中?他們如何確保他們能夠得到他們想要的價格,但是如果不向他們詢問新的變化,不向客戶開賬單?或者大部分存儲在兩個?購物車價格變化

我在想也許我可以把它存儲在兩個。 因此,如果當前價格超過購物車的購物車價格,請不要將其從購物車中移除/收取。然後,告訴他們什麼是收費/電子郵件收據的項目,沒有改變的收費(說他們有多一個項目),並從購物車中刪除它。對於確實發生變化的物品,請說出「由於價格變化而留在購物車中的物品」,請檢查您是否仍然希望以新價格購買物品。「因此,請保留購物車中已更改的物品,但更新購物車中的價格。

多數民衆贊成我的想法如何做到這一點。我不認爲語言應該重要。猜猜這更像是一個邏輯類型問題。大多數購物車是這樣做還是有更好的方法?

回答

2

簡單的購物車只是通過會話和cookie進行維護的產品陣列。你可以做任何你想做的事。只要確保用戶無法做任何他們想要的事情,比如通過url更改價格。但最重要的是,用戶可以非常方便地結帳。

大多數開發人員將創建一個包含產品對象的數組,因此如果對產品購物車進行任何更改都會反映此更改。然而,如果您更改價格,那麼很明顯,如果用戶點擊價格,但是您更改了價格,則用戶會遇到問題,並且用戶在付費或變得困惑之後纔會看到此更改,爲什麼價格在購物體驗中上升。

在維護訂單項方面,如果您有用戶登錄後才能將商品添加到購物車,則無需擔心創建Cookie /會話以存儲訂單項的數組,直到他們完成結賬和訂單項與他們的信息一起保存供以後參考。

在這種情況下,您需要創建一個與該對象關聯的訂單項,以便您可以獲取所有產品信息,但同時將價格存儲在該實際LineItem模型中,因此如果您更新您的價格不會影響購物者的中等購買體驗。

如果您希望用戶支付更高的價格,因爲您改變主意並希望使用訂單項模型,則只需執行最後一段中的內容,並在用戶決定結賬之前檢查價格即可。如果它不同,那麼讓他們不要認爲這款產品現在可以購買,不要忘記道歉。

2

簡而言之,這一切都取決於它是如何編碼的。

我假設您正在談論的交易正在進行中。如果在用戶完成交易後價格發生變化,那麼在客戶服務方面它將被視爲「壞事」,並且可能在您的付款處理器中是非法的。

我喜歡你比較購物車價格和最新價格的想法。但是,如果用戶可以在請求中更改物品的價格以查看購物車,則可能會導致許多實際收取的費用問題。例如,如果用戶將筆記本電腦的價格更改爲1200美元,並且在您的代碼中,您減少了購物車中的價值差異,他們可以將該筆記本電腦的價格設爲0美元,這將是一件「壞事」。

$ 12時 - 用戶輸入 $ 600 - 實際價格 - $ 600 - 對價格 調整$ 0 - 價格客戶收費?

另一個例子是,如果您將該商品的價格設置爲用戶可以編輯的價值,並且他們是惡意用戶,他們可能會將價格更改爲 - $ 600.00,這也將是一件「壞事」 。

更安全的做法是將商品的商品ID存儲在鏈接中以查看購物車,然後每次查看購物車中商品的價格(總數等)的要求。這樣,如果惡意用戶嘗試了加號或減號技巧,他們只會收到消息,指出價格已更新爲「當前價格」。

OWASP網站有一些開源的安全工具,可以幫助您測試代碼,防止用戶嘗試高度插入購物車。他們的地址是http://www.owasp.org

0

如果購物車只包含對物品的引用(如id /主鍵),則根本不需要將價格存儲在兩個地方。您只需在購物車中加載物品時,它們就會自動反映這些變化。在大多數情況下,從用戶的角度來看,這種變化並不是什麼大不了的。