How To Stop User Profile Updating With Each Return Order

We have stores with both v2.1.4 and v4.24. Both have this same annoying function that can sometimes cause havoc when our regular customer places a new order.

The standard function of the cart will, of course create a user profile the first time a customer places an order. But the problem arises when the same customer returns to place another order. If the shipping address happens to be different for this order, then CsCart software will write the Shipping address of this new order to the customers profile!!!. Then if for their next order, they forget to check the “Same as Billing Address” box, the Shipping address will be Wrong !

This has resulted in a number of phone orders and customer orders being dispatched to the shipping address of their previous order simply because the shipping address has not been checked.

Yes, this is human error, but IMO this is the wrong behavior.

Is there a setting to turn this off, so that:

  1. If the Customer Profile has “Order will be delivered to the billing address” checked, and the customer alters the shipping address at checkout, it needs to not update the Customer Profile shipping address details?
  2. If the Customer Profile has “Order will be delivered to the billing address” UN-checked, standard cart function, but again if the customer alters the shipping address at checkout, it needs to not update the Customer Profile shipping address details?

    I do not understand why a customers Order Addresses will update their Profile every time they order!

    We have many customers that are Installers, and have orders sent to different addresses on a per-order basis. But when they place a new order, this time to be shipped to their regular address, they may not think to check the shipping address, assuming it is their usual address.

    Help to solve this would be appreciated… Has anyone encountered this issue and found a fix?


this is a feature of internal CS-Cart logic:

The user's cart contains user profile information and it is retrieved from user profile (database) on every page

That is why on the checkout when user changes profile information, it is updated in the database and on page reload it is again retrieved from the database to fill user's cart

to change this feature, complex code modification is needed so we are at your service.

best regards,

WSA team

I agree with Remoteone. Changing the shipping address on an order should NOT update the user's profile information if the user already exists. Not sure how complex it would be to prevent this, but it is certainly a bug and should be addressed within the core code. I.e.:

if( empty($auth['user_id']) )

A user's profile information should be used like a template. I.e. it should pre-fill the order information. But if the user already exists the profile should NOT be overwritten.

Well, its at least comforting to know that others agree, sometimes I feel like Im the “Maverick” with all my complaining.

Having multiple user profiles is one way to address this, but I know that 0% of our users would not notice or use the multi-profile function.

I want to wait until v4.bug.fix is available before updating the v4 store, but the v2.1.4 store will not be updated.

Ive noticed with some other websites, that each time you change your shipping address, a the shipping address is saved along with older ones. Maybe Im just thinking of payPal and ebay here.

So maybe an idea for an addon, something like:

  1. The first time a customer register/checkout, their “Main” profile is created.
  2. If their Future orders use different address details, a new profile is created on their account, with an auto generated name like “$firstname_s . $lastname_s . $order_id” (not sure of actual variable names)
  3. Then for customers with multiple profiles, the Cart will pop up a message asking to confirm Shipping Address or select a profile.
  4. If any address details are changed, then a confirm “update” or “new” message apears.

    Even though our customer will most likely only use each profile once, at least they will be prompted to check the shipping address, the default of course being the “Main” profile as a template.