Jump to content
Sign in to follow this  
markosolo

[RESOLVED] Address has been updated...appears twice

Recommended Posts

First off, what a great open source script! Very kind of the author to make this available. Anyway, not sure if this is by design but during checkout after filling out billing and delivery info I click the "Checkout" button and the next page shows a green banner at the top with " Address has been updated and new shipping options may be available. Click "Checkout" to proceed. ". When I click "Checkout" again the same page loads again. The third click will finally take me to the payment page. This will confuse and annoy customers. Am I missing something? Thanks.

Share this post


Link to post
Share on other sites

Welcome markosolo! Glad to see you made it to the forums.

I am not sure, but I think the idea is that if shipping options could have changed, then the customer must acknowledge accepting the currently chosen shipping option, or choosing a newly made available option. Choosing a newly made available option will auto-submit the form. But, the acknowledgement must be made - and if not choosing a different shipping option, then either the Update Basket button or Checkout button will do that.

Given: The wording of the message can be made more clear.

(CubeCart effectively clears a "shipping has been selected" flag, so that progress to the next step in the checkout sequence is prohibited. This stops a potential bit of trickery where the customer can offer a shipping address close to you, getting a cheap rate, then changing the address to half-way around the world.)

Edited by bsmither

Share this post


Link to post
Share on other sites

Thanks for the reply bsmither. I understand your explanation but I still think that "Address has been updated and new shipping options may be available. Click "Checkout" to proceed." is confusing and redundant when there is only one shipping option available. Especially when a customer will have to see this notice two times. Anyway, I really like CubeCart and will keep looking for a solution. I don't give up easily :)

Share this post


Link to post
Share on other sites
On 11/27/2018 at 2:54 PM, markosolo said:

Thanks for the reply bsmither. I understand your explanation but I still think that "Address has been updated and new shipping options may be available. Click "Checkout" to proceed." is confusing and redundant when there is only one shipping option available. Especially when a customer will have to see this notice two times. Anyway, I really like CubeCart and will keep looking for a solution. I don't give up easily :)

 

I can't agree more. I've tried rewriting the dialog box statement to try to explain, account for, or apologize for the embarrassing double submit, when to the customer it appears nothing external has changed. Great system with several very nice touches, but I wonder why and how long this weird behavior has survived. Did I mention I really like CC? Others must as well, even though they've run into -and apparently ignored- this odd quirk before? 

I was teaching a MS Office class in a computer lab when one of the students shrieked and said "Am I getting hacked?!?" I guess his screen sort of flashed strangely a couple of times. People don't know what they don't know, you know? If they're smart, they're paranoid. Things like a double-submit confirmation may be enough to make some folks gun shy of following through with a cart purchase, in fear that their credit card number is being captured and telepathically transmitted to Mars. Just saying.

Share this post


Link to post
Share on other sites

Glad to see that I am not the only one concerned about this. I did notice that if the customer is logged in at checkout that the "new shipping options may be available" message does not appear. Problem is that some shoppers will want to check out as a guest and could be scared off with the redundant message. Al, If you are reading this, please help!

Share this post


Link to post
Share on other sites
16 hours ago, markosolo said:

 I did notice that if the customer is logged in at checkout that the "new shipping options may be available" message does not appear. Problem is that some shoppers will want to check out as a guest and could be scared off with the redundant message. 

That is the whole point though and unless you have free or fixed price shipping world wide (or at least to all countries that you are willing to take orders from) then this step has to be there.

If a customer is logged in, then the store knows their shipping address and can accurately work out shipping costs but a guest will see shipping (and tax) "estimates" based on the Store address (you can disable this feature).  If your store is in the UK then estimated shipping and tax costs for a guest will be for the UK address of the store.  Once an address is confirmed by a registered customer or a guest entering their shipping address then accurate shipping can be calculated.

Share this post


Link to post
Share on other sites

I've tried your all in one shipping, flat rate shipping, per price shipping and all of them still verify twice with new shipping options may be available.  I have checked my google analytics and on the second page is where all my carts are abandoned...  so...   this needs to be addressed with a plugin for shipping that has only one rate.  As noted above - most sites now only carry a single rate - the one package you should update to fix this is the by price module.  By Price When I set the price it still comes up with the message noted above twice.  Since there are no other shipping options this portion should be disabled by the module and should only display the rate noted in the module and finalize checkout.  This is a bug!  I have no other way to contact you all so I'm using this.  Please address this.

Share this post


Link to post
Share on other sites

And I do appreciate you as noted by the first person who posted on this.  I know it's not easy doing a free sourcecode platform.  This is amazing and I have loved it.

Share this post


Link to post
Share on other sites

After several hours, posts and attempts to figure out a way around this problem I finally had to give up and try another self hosted cart script. I spent a lot of time in CubeCart and there are a lot of things I love about it but I simply cannot hand off a store to my client with this behavior, bug or whatever it is.

I would suggest a fix for this problem ASAP and after that a PayPal donation link for the developer. In my opinion, technical support cost might be too high or not needed for most folks but I for one would certainly consider a donation for this great free script. Just a thought.

  • Like 1

Share this post


Link to post
Share on other sites

Ugh. Sadly, yesterday I had to face a similar conclusion: after many weeks making a very small store as good as I could for this client, I cannot wish away odd behavior like this, which comes at a crucial emotional point in the customer’s workflow.

I understand the need to integrate valid addressing into the payment process, but realizing once more that the “Secure Checkout” button has to be clicked ::three:: times after the addresses are entered? Sloppy. Just wish I was strong enough in php to figure out a cure myself.

Share this post


Link to post
Share on other sites

My customer is begging me not to make them do another migration, but this bug is horrid.  The google analytics and her sales since are proof.  I submitted https://github.com/cubecart/v6/issues/1668 .  We'll see where it goes.  You'd think their own add-ins that are supposed to be one shipping method would actually work.

Edited by Jeff Barton

Share this post


Link to post
Share on other sites

I'm surprised that the developer of CC has not chimed in here. Even a "will be fixed in the next update" would be nice. Makes me wonder if all the effort is now focused on the hosted version of CC.

Share this post


Link to post
Share on other sites
13 hours ago, markosolo said:

I'm surprised that the developer of CC has not chimed in here. Even a "will be fixed in the next update" would be nice. Makes me wonder if all the effort is now focused on the hosted version of CC.

These forums are here for peer to peer discussion. My time is totally tied up with technical support, product development and bug fixing. I look in the forums when I can but the fact is that I struggle to get here. @Jeff Barton  (thank you) has just open a technical support ticket which I saw immediately when I logged in at 8:30am pointing me to this thread. As you can see from this response the technical support service is my #1 priority. If it consumes me all day (which it regularly does) I can't make it here.

I haven't started investigating yet but the message should show once when the shipping options created but it will show again if they have changed! This ensures the customer isn't taken to payment with incorrect (or no) shipping or having possibly missed out on other new options. If the message shows more than once, then it would appear that for some reason the coding thinks the shipping methods have changed.

I will post back to our client on the support ticket first and share my finding here later.

Share this post


Link to post
Share on other sites

This issue has been resolved. The form field had been removed and replaced with a hard coded message about shipping rates. As there was only one flat rate shipping option I reinstated it as a hidden field to keep the code logic happy whilst preventing an input field from showing to the customer. 

Essentially CubeCart needs the past value (stored in the input field) to make sure shipping hasn't changed. As it was missing it is considered a changed or not set at all. The introduction of the input field now keeps it happy and the checkout proceeds without even displaying the shipping confirmation message once (let alone twice).

I can confirm that in @Jeff Bartons case this was not a bug in the core of CubeCart 6.2.2. :)

Share this post


Link to post
Share on other sites

Al, this is wonderful news - thank you! The issue seemed baked in, maybe present for a while?

In any case, how might we implement this change on existing test/live installations? Is the hidden-value change you made within the core files of CC 6.2.2 (not a bug?) or in a payment gateway extension?

Share this post


Link to post
Share on other sites

I took a backup first but the file in question is skins/foundation/templates/content.checkout.medium-up.php 

Share this post


Link to post
Share on other sites

There is a bug here even after putting back the customised code. Please follow this but note that none of the commits so far resolve the issue. 

https://github.com/cubecart/v6/issues/2232

I hope to have this one resolved on Monday. The good news is that I can see where it is going wrong so a fix should be soon. 

Share this post


Link to post
Share on other sites

Here is the fix.

classes/cubecart.class.php

Find:

$old_addresses = md5(serialize(array_merge($this->_basket['billing_address'], $this->_basket['delivery_address'])));

Replace with:

$old_addresses = $GLOBALS['user']->addressCompare($this->_basket['billing_address'], $this->_basket['delivery_address']);

Find:

$new_addresses = md5(serialize(array_merge($this->_basket['billing_address'], $this->_basket['delivery_address'])));

Replace with:

$new_addresses = $GLOBALS['user']->addressCompare($this->_basket['billing_address'], $this->_basket['delivery_address']);

Save then open classes/user.class.php

Find:

     /**
     * Change a user password
     *
     * @return bool
     */
    public function changePassword()

ABOVE this add:

public function addressCompare($address1, $address2) {
        $allowed_keys = array('line1','line2','town','postcode','state_id','state','state_abbrev','country','country_id','country_iso','country_name');
        $address1_filtered = array();
        foreach($address1 as $key => $value) {
            if(in_array($key, $allowed_keys)) $address1_filtered[$key] = strtolower($value);
        }
        $address2_filtered = array();
        foreach($address2 as $key => $value) {
            if(in_array($key, $allowed_keys)) $address2_filtered[$key] = strtolower($value);
        }
        return md5(serialize($address1_filtered).serialize($address2_filtered));
    }

This will be released in 6.2.3. 

  • Thanks 1

Share this post


Link to post
Share on other sites

The same code working on your site isn't working on @Jeff Bartons site??!! There are some database issues however.. I'm still banging my head on the wall. 

Share this post


Link to post
Share on other sites

A glitch from a bug in a skin derived from an earlier version was adding a layer of complexity for @Jeff Barton. Fixed now. So long as you store uses a recent version of the Foundation skin or a 3rd party skins all together that fix above is all good. 

Share this post


Link to post
Share on other sites
22 minutes ago, Al Brookbanks said:

So long as you store uses a recent version of the Foundation skin or a 3rd party skins all together that fix above is all good. 

Can you give more detail about what that bug was and the github issue or commit that fixed it ?

Share this post


Link to post
Share on other sites

I understand that !  However you said a bug in earlier versions of the foundation skin was partly to blame but haven’t given any details about that - I have been following the thread and know about those patches to the class files but one isn’t any good without the other and plenty of people use custom skins based on older versions

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...