Weird behavior on product descriptions


I have noticed some weird behavior on my store. I have created a new language (brazilian portuguese, code BR) and translated the storefront and backend before adding any products or categories. After that, I have simply disabled the english language so that the store and the backend always show up in portuguese.

So I started adding some categories, adding and cloning some products and setting things up. Whenever I clone a product, CS-Cart creates a new product with the same name and the suffix [CLONE], so I just go back there and change it to the correct name.

The weird behavior is that in the backend, whenever someone buys that cloned product, the order view screen (admin.php?dispatch=orders.details…) shows the old name still with the [CLONE] suffix, while everywhere else (storefront, products list in the backend, etc) the correct name shows up.

So I fired up phpmyadmin and opened up the product_descriptions table, and oddly enough, these [CLONE] products were there with the language code 'EN'. Deleting them fixed the above problem, however this is the weird behavior: why would CS-Cart add an 'EN' description to the database if the english language is disabled in the store? I understand that this would be correct only if I had more than one language enabled in the store (ie. i would be able to change the description for the other language by clicking the flag button).

My guess:

It's disabled, which means it's still there and you can turn it on. So cs-cart is so smart to take this into account.

Sure, however as stated above the order view page is showing up the wrong product names. Also, I believe CS-Cart should not store descriptions in disabled languages (and also in english) as it would be pretty easy to copy all the descriptions to a new language whenever the user enabled or added a language.

With the current behavior the store would “fall out of sync” as products and categories are renamed, and from time to time one would have to manually search the database and erase the undesired languages' descriptions.