HomeHome Product Discus... Product Discus...SmithCartSmithCartUrgent - 5.62 Multiple Products Error After PurchaseUrgent - 5.62 Multiple Products Error After Purchase
Previous
 
Next
New Post
9/10/2013 11:20 AM
 
Hi, using 5.62 and the latest DNN 7 returns an error after customers purchase more than one product... for example, if 2 boxed products are in the cart, shipping is selected, when the card is processed the order is not recorded. Customers get "A critical error has occurred. An unexpected error has occurred". If a customer purchases a single product, there is no error.

The DNN event viewer shows:

InnerException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

FileName:

FileLineNumber: 0

FileColumnNumber: 0

Method: System.Data.SqlClient.SqlConnection.OnError

StackTrace:

Message: DotNetNuke.Services.Exceptions.PageLoadException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. ---> System.Data.SqlClient.SqlException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteNonQuery(String connectionString, String spName, Object[] parameterValues) at Smith.DNN.Modules.BuyNow.SqlDataProvider.OnSuccessfulPayment(String confStoredProc, String OrderID, String SCData) at Smith.DNN.Modules.BuyNow.ConfirmStatus.Page_Load(Object sender, EventArgs e) at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace ---


Do you know of any quick fix? I do have a backup of the previous install, but I want to resist adding this if possible.

Note that the customers do get the order email, but the store admins do not get an email confirmation, or the order in the cart is not marked as completed so the gateway has a purchase, but we have no idea that one has been made. and the customer does not get a confirm screen. Again, this is only when more than one product is in the cart.

Thanks,

Steve

 
New Post
9/10/2013 12:42 PM
 
Hello Steve,

To further assist you I will need to gather more information and screenshots of some of your cart settings. First, I would like to ask what type of payment gateway you are currently using. Also, just to confirm your running the latest version of DNN could you please provide the Version number you are running. As far as the screenshots, I will need to see your Cart settings and Product settings.

Thanks!
 
New Post
9/10/2013 3:34 PM
 
Charles,

I may have found the cause. Because the cart crashes with a mixed use purchase (a download product with a serial number and a boxed product), we had to write our own stored procedure that runs at the end of the purchase. But something changed in the cart that made our procedure stop working... and I think that is where the crash is.

I will examine this more to be certain. But when I disabled the stored procedure at the end, a test purchase did go through.

Note: There is a bug in the serial number system when activated. If you have 2 different products with serial numbers, they are correctly listed with numbers, but the 2nd product serial number has the first product serial number appended to it.

So you will have this:

Product 1, Serial Number = AABBCCDD
Product 2, Serial Number = AABBCCDD12345678

When it should be
Product 2, Serial Number = 12345678

Can I ask you this... It was proposed that we can buy 4 credits for support and you all would fix the mixed-cart bug to the top of the list. If we go ahead an do that, can you all jump on this right away? The bug to fix would be:

Allow both boxed product and download products (with serials) to be in the same cart without getting the Startindex error as outlined here....

http://www.smith-consulting.com/Forums/forumid/1/postid/15465/scope/posts.aspx

And of course fix the serial number bug also?

I have been wrestling with this for so long now, I must find a solution that fixes it once and for all, and maybe you all can do it fastest.
 
New Post
9/10/2013 5:42 PM
 
Hello Steve,

I have been able to confirm the issue you are experiencing at checkout when purchasing a product with a serial number and a product without a serial number. This issue has previously been logged to our bug tracker as BugId:222.

If you would like this bug prioritized to be resolved immediately the best way would be to purchase the support credits referencing the BugId:222.

In addition, I have also confirmed the serial number appending issue. I have logged this to our bug tracker as BugId: 256 to be resolved as soon as possible.

Please let me know if you have any further questions or concerns. Thank you for your feedback!

 
New Post
9/11/2013 10:09 AM
 
Hi Charles,

OK. I just purchased the 4 support credits.

Regarding BugId:222, make sure that it works with the serial number products of course, and if the non-serial number product is a box or download it should not matter. So you may have a cart that has a download product with a serial number, a download product without one, and a boxed product for shipping. But you all likely already know that part as it works now and it is likely just when the serial is added.

Of course BugId:256 is important but I would think that is a very easy fix... just clear the variable before adding the number to the string.

Unrelated to the above, I did find a small problem you may want to be aware of. During the normal checkout process folks may change their email address. They then try to purchase, but even if the order is approved in the gateway, the customer gets a red error text "Error processing payment. Please try again. The E-mail supplied is invalid." But actually it is a valid email, but the email already exists in another account and DNN is set to not allow duplicates. You may get users creating a 2nd account and then changing the email, so instead of getting the order approved in advance through the gateway, then getting the error, you should maybe see if a changed email address is a duplicate, and if duplicates are allowed in the cart or not, and notify the customer before the sale. Hope this explains it. I do not see it as a huge issue, but it could be something that happens from time to time.

Anyway, hope the above bugs can be done quickly. I have disabled serial numbers in the cart for now, and will email them to customers. But as you know this is kind of a pain, and customers want them right away. I look forward to the fixes as soon as you can get them!

Thanks,

Steve
 
New Post
9/11/2013 11:47 AM
 
Charles,

Just to clarify that you do not need multiple items in the cart to get the error. If you purchase a non-serial number item, but have "Product Serial Numbers - Assign from List selected, even if it is just 1 item in the cart, it will crash with the Startindex error.

Thanks,

Steve
 
New Post
9/11/2013 12:49 PM
 
Hi Steve,

Thanks for prioritizing these issues, we have moved these bugs into our programming queue and allow me to clarify the above.

Bug ID 222 is the issue with non-serial number products throwing an error if "Product Serial Numbers - Assign from List " is selected. This will be resolved using the support you purchased.

Bug ID 256 is the appending issue and we will do our best to also resolve this while we are working and testing the serial numbers.

You will be receiving a Ticket number shortly to track the progress of your purchase and please let us know if you have any questions.

Thanks!

 
New Post
9/11/2013 3:09 PM
 
Thanks Kevin,

Good luck on getting it all sorted. Hope Bug 256 can be done also... I would think it is just not resetting a string before the next product record is read, but not seeing the code of course I do not know for sure.

Steve
 
New Post
9/13/2013 1:20 PM
 
Hi Steve,

Programming was able to resolve both issues and we will be sending you a link to download the update first thing next week.

Thanks!
 
Previous
 
Next
HomeHome Product Discus... Product Discus...SmithCartSmithCartUrgent - 5.62 Multiple Products Error After PurchaseUrgent - 5.62 Multiple Products Error After Purchase