Using IE (tested in 7 & 8) the payment summary within the Payment method fieldset on the checkout page never loads. I assume this is an issue with the JS not working cross-browser.

(See attached image)

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

longwave’s picture

Following our conversation in IRC, hunthunthunt was able to reproduce this on two separate sites in both IE7 and IE8, while I could not reproduce it on either site - the checkout pages always loaded correctly for me.

I have a suspicion that Ubercart is triggering an obscure bug in IE's JavaScript engine that only occurs in particular circumstances, related to either a specific version/patch of IE (though our version numbers matched exactly) or an interaction between IE and some other unknown software. A similar bug was reported to me a while back by a customer of one site that I manage, but again I was unable to reproduce it.

hunthunthunt’s picture

Looking in to this further I am experiencing the same problem with IE7 & 8 at http://livetest.ubercart.org/uc2/

As I am testing in parallels in a workplace the issue may be VM or firewall related.

ferrangil’s picture

I'm having the same issue right now, but with all browsers, not just related with IE7 and 8. The site was working perfect on my computer, but on the live server it doesn't (and it's the same files, same database). Very odd...
We are trying to find the problem. The site is www.lynxeds.com (just add a book and go to checkout). If you try to change the payment method it never loads but I get notifications on watchdog, like...

Type page not found
Date Wednesday, February 24, 2010 - 14:14
User ferran
Location http://www.lynxeds.com/cart/cart/checkout/payment_details/directdeposit
Referrer http://www.lynxeds.com/cart/checkout

Of course, that double /cart is not correct and the correct url should be http://www.lynxeds.com/cart/checkout/payment_details/directdeposit
On my local system, it loads the correct information and everything works just fine.

Any hints will be greatly appreciated (and followed!).

FYI: Everything was great 2 days ago, when I was using (still) D6.13 and Ubercart beta... Now with D6.15 and UC 2.2 (and everything updated), problems arise..

xacobe’s picture

Same problem here!

Im using conditional_payment module.

Subscribing

ferrangil’s picture

xacobe, is it working on your computer? That is very odd... Mine is working perfect, but online... you saw it...

TR’s picture

Priority: Critical » Normal

@ferrangil: Your problem is not the same as the OP - your problem is a duplicate of #585964: progress bars to scroll indefinitely

@xacobe: "me too" doesn't help diagnose the problem - are you seeing the same thing as the OP or the same thing as #3 ? It would greatly help if you would specify exactly what your problem is and how to reproduce it on a new install.

xacobe’s picture

Sorry for taking so long to get back, I did find a solution to my problem changing "secure page" settings which I had wrong, and I lost this thread.
@ferrangil: not, I was on a production site, that is why I was a bit stressed :o
@TR: Sure, Ill try to give more information next time.

ferrangil’s picture

I could manage to avoid this error by re-upgrading to the newest ubercart module but upgrading first to intermediate versions (I was veeery outdated...).

cbhdtech’s picture

FileSize
7.48 KB

I'm experiencing the same problem with IE8. I have no problems in Firefox, Safari, Chrome, Opera, Flock, or Camino. This is the error IE8 is giving:

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Timestamp: Wed, 31 Mar 2010 19:49:07 UTC

Message: Object doesn't support this property or method
Line: 1426
Char: 5
Code: 0
URI: http://www.cbhd.org/sites/default/files/js/xxxx.js

And here is line 1426 with a few additional lines for context:

// Set the global timestamp for the update.
payment_update = this_update.getTime();

if ($('#edit-payment-details-data').length) {
data = { 'payment-details-data' : $('#edit-payment-details-data').val() };
}
else {
data = {}; ----- line 1426
}

Any suggestions?

TR’s picture

@joshuacarter: Start by turning off JavaScript aggregation - that makes it difficult to debug problems. Your problem probably has "typical" causes like jQuery update conflicting with the Ubercart .js, or some other JavaScript you have on that page conflicting. If you post a link to your site we can take a look at it.

cbhdtech’s picture

@TR: I appreciate your response. I disabled the JavaScript aggregation. Here is the link: http://cbhd.org/content/supportjoin. (Just add a membership/donation option and that will take you through the cart process.)

Thank you for your help!

TR’s picture

Status: Active » Needs review
FileSize
698 bytes

I see what you mean now. Seems like IE doesn't like something in the Ubercart JavaScript.

The IE debugger shows an error in uc_payment.js and and error in simplemenu.js. For the latter, search drupal.org for bgiframe and you'll find lots of info (don't know if there's any solution, but lots of info ...).

For the uc_payment error, try the attached patch and let me know if it fixes the problem.

bentekwork’s picture

Just tried the patch in #12 and it does not resolve the issue. Thanks for your help.

TR’s picture

Status: Needs review » Active

Yeah, it was a long shot. None of my test sites show an error with uc_payment.js under IE, so it's curious I see the error on #9's site. At this point, I suspect it's some sort of conflict with all the other JavaScript he loads on the checkout page. The only way to test that and narrow down the problem is to turn off any JavaScript that isn't supplied by either Drupal or Ubercart and see if the error goes away.

cbhdtech’s picture

@TR: Thanks for the suggestion. I will try this.

cbhdtech’s picture

@TR: Your the man and I'm obviously a n00b. Declaring the the variable 'data' before the if statement resolved the uc_payment error. Thanks a million!

Island Usurper’s picture

Status: Active » Needs review

So that's one for "patch works", and one for "patch doesn't work".

Needs more reviews.

TSE’s picture

Priority: Normal » Critical

Hi,

sad to say that im another one for: this patch does not solve the problems.

Also the ubercart demo is giving me the script error AND the side http://cbhd.org/content/student-membership from the one who said it now works for him is giving me this error.

I must say that i had simliar errors earlierer, fixed it by disabling modules, loading backups, etc. http://drupal.org/node/681886
But nothing where i could say this might be it, perhaps only luck.

Since i think this problem is critical i changed the priority.

Grretz TSE

EDIT: i played around with other ubercart sites and always got these script errors, but when you add these sites to your secure sites in IE it WORKS !!!!

EDIT2: Normally i got errors in payment.js L 237 (automating object cant be ...), but when i switch to secure sites (it works then) and after that switching back to normal internet secure settings in IE without reloading the page but by reclicking the "calculate shipping" button the error is now in tableheader.js L 71 and drupal.js L 226 with permission denied

I really hope this helps !
SO this error must have something to do with security settings in IE

tigerfist’s picture

This issue has been plaguing one of my clients ever since we launched the site a month ago. He has had numerous reports that customers cannot get past the checkout page, always when using Explorer. I couldn't track the problem to IE6 or 7, as it was affecting IE8 as well. However, each time I tested it with IE 7 or 8, it would work fine.

Finally, i tried setting Security to high, which disables javascript, which affects the shipping cost calculator and payment calculator.

(As an experiment, I reset Security to Medium, but set privacy to high, which blocks cookies, and this does not even allow products to be added to the cart. Just throwing that out there, I know its a separate issue.)

I'm not much of a php developer, so I don't even know if there is a solution to accommodating IE's High Security setting. If not, the probable solution is inserting a warning message on the checkout page that tells users to adjust the Security settings.

tigerfist’s picture

tigerfist’s picture

@ ferrangil

The problems on your site also seems to be related to IE Security settings.

I tried your site with FF - no problem.

I tried your site with IE8 Medium security - no problem.

i tried your site with IE8 Medium-High and High security settings - doesn't work because javascript is disabled.

tigerfist’s picture

FileSize
46.63 KB

Update

Went to http://MYSITE.com/admin/reports/dblog and found the following PHP error.

mmtt’s picture

any new solutions for it?

xxm’s picture

Maybe an simular reason like this fault here: http://drupal.org/node/839170

Keith Hurst’s picture

Subscibing, issue reported on client test site with IE7.

KH

joyseeker’s picture

Title: Payment summary never loads in IE (Checkout) » Payment summary never loads in IE (Checkout) -- but in FF

moved to separate bug report because problem is 6.x-2.4, not 2.2

joyseeker’s picture

separate bug report

DamienMcKenna’s picture

DamienMcKenna’s picture

FYI I'm experiencing this with IE8 with the privacy & security settings set to default:

  • Security: internet zone: medium-high
  • Privacy: medium

Neither of these have been altered from their out-of-the-box settings on an XP SP3 virtual machine.

DamienMcKenna’s picture

@tigerfist: in IE8 the Medium-High security setting (system default) does not disable Javascript, that only happens when you change it to High. FYI I just documented all of IE's security settings in a post on my blog:

DamienMcKenna’s picture

FYI when I load up the checkout page first and don't fill in anything it's clearly running into #629964: Patch to Cut Down on Tax Calculation Ajax Calls on Checkout Form.

DamienMcKenna’s picture

To further confuse the issue, I've had /cart/checkout work differently depending on the individual page load, and then eventually go from showing the long bar from the original issue to the "Order total preview" spinner never stop spinning (#629964).

On one occasion, it had started with the long bar at first, after a while it changed to the "Order total preview" spinner, and after longer still it finally returned the following error:

Line: 76:
Error: "2" is not a string

In this case, opening the script debugger displays:

'2' is not a string
eval code, line 1 character 21669

and highlights "z=a[D.propos[m[2]]||m[2]];"
After skipping through the debugger it finally gets to the following:

Object doesn't support this property or method
uc_payments.js?V, line 76 character 3

This is the following code:

  var s_street2 = $("input[name*=delivery_street2]").val() || '';

Pretty innocuous. However, what's interesting to note is that I had left that field blank but filled in the other fields. I had also left the Company field empty but that field is not queried in this block of code.

DamienMcKenna’s picture

An example of what I did:

  • Added an item to the cart.
  • Went to the checkout page.
  • After leaving the page alone for about a minute the horizontal bar in the Payment Method fieldset disappeared and was replaced with the "Order total preview" spinner.
  • Once I checked the "My billing information is the same as my delivery information" it updated the "Calculate Shipping Cost" fieldset with a rate (as it should per the site's configuration).
  • I filled in all of the required fields on the "Delivery information" fieldset (First name, Last name, Street address line 1, City, Country, State/Province, Postal code) an after about twenty seconds the "Payment Method" information finished updating.
  • I filled in the credit card payment information, previewed the order and successfully completed the order.

So a key problem seems to be simply that the AJAX calls take WAYY too long to run, or are running too often (as suggested by #629964) and possibly causing conflicts with other changes on the page.

DamienMcKenna’s picture

Seems that #646660: Javascript issue with getTax() in uc_taxes may be causing some of the other issues.

DamienMcKenna’s picture

Please see if my patch from #646660 fixes this problem for anyone else.

ZoeN’s picture

FileSize
1.32 KB

We had this problem, and arrived at a solution much like #35. Our JS guy says it results from IE's penchant for going inside "For...In" loops even when the array it's told to loop through is empty. In some cases, depending on what the code inside the "For..In" does, this causes infinite loops. This was happening to us not only in uc_taxes.js, but in .js files for other contributed Ubercart modules.

I'll attach his patch here, just in case it may help shed light on this, though it's basically the same as what DamienMcKenna did.

acondiff’s picture

I am having the exat same problem as #32 and #33 that DamienMcKenna posted. Does anyone know of a solution? I believe too that it is an AJAX call that is taking way too long. So when the user finishes the form before that call, he is presented with the same blank form he just filled out. A lot of my customers are sending complaints. Is there any possible workaround? I can not leave my shop like this much longer. Thanks.

DamienMcKenna’s picture

@acondiff: please try out the patch that ZoeN posted above or my patch in the other issue resolves the problem for you.

corey.aufang’s picture

I also had this same issue with a client.

Not only would the totals not display, but if they clicked "Review Order", it would break the transaction, sometimes taking them back to the cart page.

Applying the patch from #684552-36: Payment summary never loads in IE (Checkout) -- but in FF fixed both issues.

YK85’s picture

subscribing

garbo’s picture

I think I might have found the conflicting module here: Shadowbox. When I have disabled the Shadowbox module checkout works fine. But as soon as I enable it, the costs summary never gets loaded.

Solution1: Use an alternative for Shadowbox (e.g. Lightbox2)
Solution2: If possible for your website, set "cart/checkout" and "cart/review" as pages where the Shadowbox script shouldn't be loaded! (under "Page specific activation settings" at the Shadowbox settings page).

I hope this helps others and relieves the Ubercart team from searching for the root of the problem (which is obviously not in the Ubercart software)!

garbo’s picture

P.S. If others can confirm the above then I think I will stop using the Shadowbox software at all en replace it for Lightbox or something else. I had a similar conflict in IE with Shadowbox and the OpenLayers module (maps never loaded in IE until Shadowbox was disabled) for a different project.

DamienMcKenna’s picture

I didn't have that problem, I wasn't using that module.

garbo’s picture

@DamienMcKenna, hmmm so I was cheering too soon. But maybe my finding indicates there could be other conflicting javascripts (from different modules) that cause the problem here?

Poieo’s picture

I have the same issue with IE7 when js compression is enabled, the order total and CC fields do not display. However, when js compression is disabled, everything works fine.

Status: Needs review » Needs work

The last submitted patch, taxes_IE_compatible.patch, failed testing.

longwave’s picture

Version: 6.x-2.2 » 6.x-2.x-dev
Status: Needs work » Needs review
FileSize
1.18 KB

Seems hasOwnProperty() is the recommended way to fix this.

Poieo’s picture

Just a note, I don't have the taxes module installed and I'm still seeing a similar issue.

TR’s picture

@Poieo: Similar is not the same. This issue is addressing something that works in FF but not in IE, and is directly traceable to the a problem with the JavaScript in the taxes module. If you want help on your problem please open a new issue and provide some details.

longwave’s picture

"when js compression is enabled, the order total and CC fields do not display" suggests you have a missing semicolon or some other error in one of the JS files included on your site - this is (probably) not in Ubercart's code, but something from another module or your theme. This will be unique to your site's configuration, so it's up to you to track it down and open a new issue if you determine this is in fact Ubercart at fault.

longwave’s picture

Status: Needs review » Fixed

Committed #47.

Status: Fixed » Closed (fixed)

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

delugestudios’s picture

We just ran into this problem, and the culprit was the Shadowbox module. It only effected IE8, and when we followed Solution 2 in #4 it fixed the problem.

dlx’s picture

Had the same problem (IE JS must be enabled message) with the latest 6-dev release and had jQuery update module enabled. Disabling it fixed the issue.

WoozyDuck’s picture

Version: 6.x-2.x-dev » 7.x-3.1

I am having similar issue on version Drupal 7 and unable to fix it!

ewyglend’s picture

I am having this issue as well. I have also noticed that ajax seems broken on checkout page in IE so I cannot check shipping addy same as billing nor can UPS quotes be processed. I am assuming whatever is not allowing the customer to proceed is causing this issue. I feel as though this problem did not start happening until I had an SSL cert installed on the server. Would that make sense?