Business Logic Flaw in Shopping Cart?

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
14 years ago
Yesterday, I posted a topic in one of the other support forums about needing to have the prices stored in the Shopping Cart table rather than just the Product/ProductVariant tables. After talking with a friend about this, I think this may be a more important issue (especially from a customer-service/experience perspective) than for just my specific case.

Let's say you're shopping online (on a NopCommerce site) and you find a product you like. It's listed for $50 and you add it to your shopping cart, but you don't check out (or your browser/computer crashes). That evening, the admin changes the price for that product to $100. The next day when you go back to your shopping cart to checkout and pay for the item, you now see that it's changed from $50 to $100. At that point, you get upset, close your browser, and vow never to come back to that site/store again, just because the prices changed after the products were already in your cart.

In the real-world, this is why most price-changes are done after hours when there are no customers around (all shopping carts are empty). How would a shopper like it if they found that the price had changed between the time they put the item in their cart and the time they tried to pay for it?

Can someone from NopCommerce comment on this issue, and propose a resolution?

What other e-commerce frameworks do is store a copy of the prices from the Product tables into the Shopping Cart tables and perform their calculations from there, rather than on the Product tables. This would clear up the scenario above (and avoid upsetting customers).
14 years ago
What happens with the other scenario, Monday I shop and add an item to the cart, wednesday I revisit and add another two products to my cart.

Saturday I have been paid and I am ready to buy, I checkout with Mondays and Wednesdays prices, I am happy utill while leaving the site I notice Item 1 has been reduced from Friday, and Item 2 now has a buy one get one free offer.

I will not shop there again, however you could add warning text to the checkout saying that Cart prices for items are subject to change at the point of checkout.

David ;-)
14 years ago
Nice!  :)  I think a warning message or another display would be fine, but the user should still have the option to go with the "original" price/attributes as when they placed the item in their cart.

Finding out the item went on sale when you finally checkout makes the user feel great, while finding out the price has increased would tick them off...
14 years ago
"In the real-world, this is why most price-changes are done after hours when there are no customers around (all shopping carts are empty). How would a shopper like it if they found that the price had changed between the time they put the item in their cart and the time they tried to pay for it?"

After hours... based on which world time zone?

We disabled the wish list option which for us was just a waste of resources.

Maybe OK if you're selling small items and have a min free ship option like Amazon.

All our products are software via dowload so we found that prospects placing stuff in the wish list were by enlarge just tire kickers and never did order. Probably applies to other businesses as well save for free shipping for orders over X$.

Price chg is not a big deal for us. If the customer really wanted an item at the old price, they'll normally email us and we'll most likely will accomodate their request. We just as soon not get orders from customers if they get pissed off to easily.
14 years ago
I'm not sure I see the problem.
Prices change.
The only real price would be at the time of checkout wouldn't it?
Everyone knows that if they don't buy an item right now, if they come back later the price may be different (up or down). Some stores offer protection against that sort of thing.

How long would you suggest until the shopping cart prices expire?

Otherwise I could put all of your products into my shopping cart and revisit your site everyday. Then I could make a purchase 6 months from now but at your old prices.

I see no flaw.

Put anything you want in your cart, but you'll see the real price at checkout.
14 years ago
imaging the scenario -

you go to the local supermarket and fill a trolley with items that are on special offer - buy 1 get 1 free - but leave the trolley in an ailse for a week and then go back and collect it (its a badly managed store, they left your trolley all that time) and head for the check out - would you really think you had been cheated when you found the offers had expired a couple of days earlier and you were having to pay for all the items in your trolley and not getting any free?
14 years ago
I am Visual Basic Programmer and I am building my web site for Internet visitors.

I not really can take for my web site nopCommerce ...

I am not familiar with all details of processing of payments between different banks but I need to find best way for processing of payments from visitors of my web site directly to bank where I would set up my business account.

I would be just grateful if you would let me know if here have a have to materialize my idea about haw to make work processing of payments from visitors of my web site by my way.

I need to add secure and simple processing of payments to my web site. I don't like to use pay pall and e. t. c. methods in common use as here always third party into chain who are able to manipulate with money of visitors and even can affect my business account in same cases ...

I am trying to get payments processing directly from visitors of my web to secured data base in certain form displayed in Internet and that directly to bank where I would set up my business account. I believe that for security of payments from visitors of my web site is better if visitors would be able to keep they private cards details for them self and will even not enter their details into my web site. If make special Page in Internet from where everybody can access his personal page with secured login and password into his bank . On this page should be presented access to different banks of World and visitor would be able select his local bank by country and access his personal page to make direct transaction from his account.

After it here should be statement from it’s bank for this person about transaction approved by bank . This Statement should be equal to virtual money ( with out any personal information related to visitor) .

Than from here these virtual money via database can transfer to bank where I would set up my business account.

I think that benefit of all wrote above is that everyone here:

Visitor of web site

Web site owner

Bank

Have independent access to their private information and this is provide 100% of security for everyone involved

In Internet is going on only virtual exchange of virtual money instead of entering encrypted card details available to third party - ‘processing provider’ into currently existing system.

If you can help me in any way you know please let me to know.

Sincerely yours

Aurora.

[email protected]
13 years ago
Hi..  i am using your Nopcommerce 1.4 posted..It's nice to work..
but i added products to shopping cart then when i am clicking  shipping method displaying error in sometimes.. i put error in below ..so pl find out and give solution of this error..

Exception of type 'System.Web.HttpUnhandledException' was thrown.
[The exception details for the log entry.] Exception:   System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.IO.FileNotFoundException: Could not find file 'C:\4833248\TEMP\btqupujx.dll'. File name: 'C:\4833248\TEMP\btqupujx.dll' at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) at Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters options, String[] sources) at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters options, String[] sources) at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters options, String[] sources) at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence) at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies) at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence) at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type) at NopSolutions.NopCommerce.BusinessLogic.CustomerManagement.Customer.set_LastShippingOption(ShippingOption value) in D:\GroceryXpert Source Code 27th March\Source Code\Libraries\Nop.BusinessLogic\Customer\Customer.cs:line 345 at NopSolutions.NopCommerce.Web.Modules.CheckoutShippingMethodControl.btnNextStep_Click(Object sender, EventArgs e) at System.Web.UI.WebControls.Button.OnClick(EventArgs e) at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace --- at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.checkoutshippingmethod_aspx.ProcessRequest(HttpContext context) in c:\4833248\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\70cecfa2\1ce479c4\App_Web_wkcvqrad.6.cs:line 0 at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
13 years ago
To be honest, the way nopcommerce is working now it is the correct one.
If saturday there is a special price, and the price is $50, nobody has the right to be angry if monday the promotion is over and the price is $100.

If i put something with $50 value in the cart, and after a price variation the price will not change, it will be a cart bug.

For example, in a real shop i saw some nice adidas clothes for $5. I come back two days later and the price was $30.
"Promotion is over", the clerk said.
I did not pretend to get them for $5 each.

Or, for electronic stuff, the price is always getting lower. If the price will not change, the customers will also pay more and be angry.

Ps: did you notice the spam post about cisco stuff by donaldjeo? It has to be deleted :P
13 years ago
It's not a business flaw IMHO.

You can't equate a high street shopping scenario with a web based scenario. They both use a 'basket' but the structure and dynamics of one are totally different to the other.

You would solve any issue by stating 'We reserve the right to change prices without prior notification' or similar.

HTH.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.