Jump to content

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


markosolo

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.

Link to comment
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.)

Link to comment
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 :)

Link to comment
Share on other sites

  • 2 months later...
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.

Link to comment
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!

Link to comment
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.

Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
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.

Link to comment
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.

Link to comment
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.

Link to comment
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. :)

Link to comment
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?

Link to comment
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. 

Link to comment
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. 

Link to comment
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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...