When I click the 'update order' button at /checkout, the page is returned with all the form information gone: email address, name, shipping address, etc. When I enter it again, I am required to 'update order' once more. I'm facing a seemingly endless loop.

I have enabled anonymous purchasing. The behavior is the same whether I'm logged in or not. I'm using the dev branch from July 8.

My experience seems similar to this issue-- http://drupal.org/node/501042#comment-1739514 --but remains unsolved.

CommentFileSizeAuthor
#12 529116.patch860 bytesxen

Comments

rc2020’s picture

Priority: Normal » Critical

I can confirm this bug and it prevents the system from processing the payment. I'm marking it as critical as the system can not function at all while this loop exists.

Note: This happens on rc-11 version for me, not the latest -dev. I'm putting on the latest -dev to test to see if this problem exists. I'll report back to see if it still does on -dev.

rc2020’s picture

I can confirm the bug still happens in the dev release.

gordon’s picture

Status: Active » Postponed (maintainer needs more info)

I have taken a look at this and it works for me.

If you install simpletest and run the ecommerce tests it will test this very situation.

gordon’s picture

Priority: Critical » Normal
xen’s picture

Doesn't work for me, I've hacked ec_customer_email_checkout_form in order to be able to work on my payment module.

The problem is as follows:
The default value for the email field gets set to $txn->mail in ec_customer_email_checkout_form, which is empty.
When the user types the real address, the javascript make disables 'place order' and the user has do 'update order'.
That apparently only runs the validation, which rebuilds the form, using $txn->mail (still empty) as the default value.
ec_customer_email_checkout_submit actually copies the submitted value to $txn->mail, but that never gets called.

(HEAD as of today)

Sounds like the same problem as the original poster is experiencing.

moodeyit’s picture

We have a similar issue. Whereby filling in form details, then clicking on 'Update order' button clears the email field. We are using IIS6, clean URLs are switched on using ISAPI Rewrite 3, and using the latest release.

I noticed that the issue arrises when the clean URL is being used. ie http://weburl/checkout.

When filling in details the 'Place you order' button is greyed out. Clicking on 'Update order' button changes the Clean URL to the full URL, ie. http://weburl/index.php?q=checkout. Then it will allow you to fill out the email address and only then we are able to click the 'Place your order' button.

funkyhat’s picture

I can also confirm this bug.

I've installed the simpletest module and run the e-commerce tests, it appears to be trying to run the product tests on nodes that are not products, but other than that, I can see some errors on the "anonymous purchasing" tests, this error appears:
"Call to undefined function ctools_include() PHP Fatal error ec_checkout.module 97 Unknown"

I don't know if that's helpful, let me know if/how I can provide any more information.

carissa85’s picture

I am also having this problem. I would like to be able to remove the update order function entirely. Is this possible? I don't want to have to post a list of directions for my customers so that they can trick the system and actually buy something without going through this never ending loop? Thanks for any help.

carissa85’s picture

Status: Postponed (maintainer needs more info) » Active
javelinarach’s picture

I'm also getting this error and cannot complete transactions on my site. Each time I enter info into one of the checkout fields, an error message appears at the bottom of my screen that says "* Checkout has been changed. Please update the order to ensure the totals are correct." When I fill out each field of checkout, I've got about 6 error messages (all the same) listed at the bottom of the page.

I've tried reinstalling eCommerce and also tried disabling clean URLs. Anything else I can try? My site is essentially down right now.

Thanks much!
rachael

carissa85’s picture

To clarify-I would like to have anonymous purchasing. I do not mind the "update order" function per se, as long as they only have to do it once. I would really like to have the "update order" function removed, but if that is not possible, I would like my customers to have the ability to click "Buy Now", enter their information, click "Update Order", review their order, and then be able to click "Place Your Order". As it stands they cannot click "Place Your Order" AT ALL because each time they "Update Order" their email address is removed and they must re-enter, thus making the system THINK that they must update their order again. This is neverending. Please help!

xen’s picture

Version: 6.x-4.x-dev » 6.x-4.0-rc11
Component: ec_checkout » ec_customer
StatusFileSize
new860 bytes

The attached patch allows me to submit an order, though I'm not convinced that it's the right fix, nor whether it behaves properly in real life (where users might type the wrong address, resubmit, use the back button, etc).

funkyhat’s picture

I can confirm that this patch seems to fix the issue. Have not tested extensively, and I can't comment on the method it uses, I don't know enough about how ec modules work.

epg’s picture

Priority: Normal » Critical

I have the same problem, running rc11 on Drupal 6.13. Problem occurs both with FF and Chrome. (Haven't tested in IE6). I cannot complete checkout because after entering email address the "update order" button clears the email address.

And an "you must update your order" messsage pops out every time I hit "enter" after I fill the email address field. This occurs both with anonymous and logged in checkout.

I updated the priority to critical because being able to check out or submit an order is a crucial task of any shopping cart or ecommerce system!

carissa85’s picture

The patch posted above does not work for me! Please help! It's really important that I get this to work!

nerkn’s picture

+1
Patch didn't worked for me either!

gordon’s picture

Status: Active » Fixed

Thanks, I have committed this to dev, and will be in the next rc.

I have also added a test so this doesn't break in future.

funkyhat’s picture

Version: 6.x-4.0-rc11 » 6.x-4.0-rc13
Status: Fixed » Active

This is still intermittently an issue in rc13

xen’s picture

Status: Active » Fixed

"This is still intermittently an issue in rc13"

Likely, but try RC15 and see if that doesn't fix it.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

SestuDeus’s picture

Version: 6.x-4.0-rc13 » 6.x-4.0-rc18
Priority: Critical » Major
Status: Closed (fixed) » Closed (won't fix)

Hi,
seems I'm here too late, but I've just installed the rc18 and this bug appears.

I thought it was fixed from rc15

please help

SestuDeus’s picture

Priority: Major » Critical

I have tested out every combination I can think of. I've noticed if I login as first user, the problem doesn't appear, but for anonymous purchasing the bug is still there.
I'm interested in anonymous purchasing for many reasons ... I've upgraded the priority to critical because no one is able to use the e-commerce module in my site (not for paying).

Hope someone read this.

SestuDeus’s picture

I ran simpletest and here the results:

Cart Login
Check that when a customer logs into the system the current cart is retained.
15 passes, 2 fails, and 0 exceptions:

Product exists in cart Other ec_cart.test 132 ecCartLoginKeepCart->testCartLogin()
Product still exists in cart after login Other ec_cart.test 138 ecCartLoginKeepCart->testCartLogin()

Check loading address on checkout
Check to make sure that changing payment gateway is not losing address information on the page
34 passes, 0 fails, and 2 exceptions:

implode() [function.implode]: Invalid arguments passed Warning form.inc 833 form_get_error()
implode() [function.implode]: Invalid arguments passed Warning form.inc 833 form_get_error()

Test Update Order
Test update order to make sure an entered address is retained
24 passes, 0 fails, and 1 exception

implode() [function.implode]: Invalid arguments passed Warning form.inc 833 form_get_error()

eMail Update
Check that when updating the order the email for anonymous customers is retained.
9 passes, 0 fails, and 2 exceptions

implode() [function.implode]: Invalid arguments passed Warning form.inc 833 form_get_error()
implode() [function.implode]: Invalid arguments passed Warning form.inc 833 form_get_error()

Check Generic Transaction
Check that when a general product is purchased the transaction will be complete
18 passes, 0 fails, and 1 exception

implode() [function.implode]: Invalid arguments passed Warning form.inc 833 form_get_error()

Check Zero Charge
Check when a zero charge transaction is made allocation is set correctly
18 passes, 0 fails, and 1 exception

implode() [function.implode]: Invalid arguments passed Warning form.inc 833 form_get_error()

... that's all

SestuDeus’s picture

I tried now the 6.x-4.x-dev and the simpletest run without errors, but the issue remains. Same loop, same useless checkout.

gordon’s picture

Status: Closed (won't fix) » Active
gordon’s picture

Version: 6.x-4.0-rc18 » 6.x-4.x-dev

Just reactivate and fix the issues

SestuDeus’s picture

nope, won't fix for me. I've tried in a simpler test-site too (with everything functioning right).
I think the module is too much unstable.

If someone has experienced this particular issue AND resolved it, AND now is using ec module for real-life commerce, please write down some instruction on how has done. PLEASE.

GemVinny’s picture

Did you manage to fix it? Or come up with a solution?
Gemma

GemVinny’s picture

Did you manage to fix it? Or come up with a solution?
Gemma

gordon’s picture

Status: Active » Postponed (maintainer needs more info)

At this stage I have not been able to replicate this issue. However I did find what I consider a bug in SimpleTest #883520: Form errors should automatically assert an error where form errors are created there is no assertion in the tests, so the errors are ignored.

The only thing that I can ascertain is that this only occurs for anonymous users. Does this happen with caching on and off? is there anything else that maybe relevant.

Please let me know.

johngonole’s picture

Yea this is still occurring even in the latest release of the drupal 6 version. I know this project appears to be dead but thought I'd post this anyways. I'm trying to set up a receipt to be emailed using rules. However to do this I must have the customers fill out their address when they checkout. Sadly as soon as I mouse click from one address box to the next it blanks out the place order button and prompts to update. Upon updating the credit card info is lost in most cases. Checkout can still work but can't have my customers getting aggravated. So I'm back to PayPal standard for the time being. Of course I upgraded to PayPal pro because they were having some serious issues last week with PayPal standard.

At any rate I'm going to keep toying around with combinations to see if I can find a solution. If I do I'll post it here.

Update: 3-5-17 - So I found the javascript for the update button and just deleted it and then used CSS to make the button invisible. My products are all No Quantity so this has worked as a temp work around. Since they don't need the update button I just removed it. I'm now using PayPal Pro. Every now and then I get some PHP errors and trying to track down the cause. But yea I have no idea why this particular issue was never corrected. Pretty consistent problem.