Ridiculous list of problems after auto upgrade from 2.1.2 > 2.1.3 > 2.1.4

[SIZE=“6”]I have a great idea…[/SIZE]



[SIZE=“3”]If they ever decide to change the name of CS-Cart, they should change it to:



1 Step Forwards, 2 Steps Back Cart[/SIZE]



I used the upgrade center to go from 2.1.2 to 2.1.3 and then to 2.1.4

so I guess that’s 2 steps forward…



and here’s the 4 steps back:



#1) The upgrade overwrote files within the custom skin I created !?!?!?

I should have the right to create a custom skin for a store and not have it wiped out by an upgrade!!! Imagine upgrading WordPress and having it overwrite your theme files!!! In my 5+ years as a developer, I have never had a CMS overwrite a skin or theme as part of an upgrade. I’m still trying to wrap my head around the fact that this happened. The whole entire point of a skin is to have your presentation separate from your logic. It would be in the absolute best interest of the CS-Cart developers, third party developers, and the CS-Cart users if the CS-Cart developers just focused on the core functionality and business logic, then handed over a nice set of API functions and left the entire development of skins up to the rest of us.



#2) Switching from SSL protected HTTPS back to HTTP no longer works

Switching from HTTP to HTTPS works fine, but then any links back to the non-secure portion of the cart throw 404 errors. I even installed a new skin from the repository to rule out the possibility of the error being part of my custom skin. Still doesn’t work. This worked correctly a few hours ago prior to the upgrades, so it also isn’t my htaccess (which has not changed).



#3) Image paths for thumbnails now have extra segment

Not only image paths for product images I have uploaded, but even things I have not even touched have become corrupted.

Take for instance the credit card logo images on the checkout page. The image path used to be:

[COLOR=“Blue”]/images/thumbnails/0/50/masterCard-icon.png[/COLOR]

but now it’s:

[COLOR=“Blue”]/images/thumbnails/0/50/50/masterCard-icon.png[/COLOR]

see the extra /50 in there?

this kind of non-sense has been done to most of the product preview thumbnails… but not all of them!!! So if you click on a product, that has multiple images, some of the thumbnails show up, and some don’t. Some will have the extra “/50” (or extra “/30” or even “/400” on full sized images) and some images won’t have the extra segment and display correctly?!?!?!

This problem occurs regardless of skin selection, so again, nothing to do with my custom skin.



#4) Sequential Options no longer work

Again, worked this morning, after upgrades, they don’t work.

Sequential options are where all of your product options are disabled, accept for the first one. After you make your first selection, the second option is enabled AND it’s values, are potentially affected by the first choice. Like a dropdown box for country, where a second dropdown box gets populated with the states or provinces from the country that was selected in the first dropdown.

Well anyways, these don’t work. You select the first option, the ajax_loading_box image appears, then dissappears, but the second option never gets enabled.

Firebug reports the response as: {text: ‘’, data : { ‘notifications’: [ ] }}

The POST info appears to go through ok, but nothing comes back.

And once again, not my skin’s fault, as this problem occurs in basic skin as well.



This is really unacceptable…



The cart I’m working on is completely busted now.



Can’t get a single item into the cart. The only good thing about this is the fact that this wasn’t a live store, or else the business owner would be losing money. Instead I’m the only one that is losing money.



I was supposed to be working on other things today, but instead I’m trying to fix this steaming heap.



[SIZE=“3”]Another day lost to CS-Buggy

and who’s going to pay the bill???[/SIZE]



I have no faith in this product…



but unfortunately I am so deep into it now that I have no choice but to continue and hope that soon I can publish this store, and then just pray that it all stays together.

I’m generally not a defender of cs-cart development.



However, one thing they did do very well was provide a way for your changes to be implemented where they will not be affected by the upgrade. That you chose NOT to use those facilities is not their fault.



There is TONS of business logic in the templates. The template engine (Smarty) was designed to offer “control” like looping constructs, conditionals, etc. and data. However, much of the business logic related to display of information is in fact embedded in the templates (mostly through the overuse of data variables). So when new features are added (like suppliers, companies, cascading options, or many other things), the templates have to be updated to support them.



In theory, your custom development should have been done using hooks to incorporate your own business logic and/or presentation additions or styling changes. These can all be accomplished using hooks of various types (PHP, template, javascript). If a hook doesn’t exist where you need it, adding a new hook to a core file is usually preferred over embedding code in a core file. There is absolutely no reason to modify distributed files like css files or most core templates. However, many times it is easier to do so. But easy now does not always translate to easy later.



In reality, the 2.1.3 release is one of the more stable that I’ve seen. I have no experience with 2.1.4 and personally wouldn’t upgrade for a couple of weeks at least to give time for all the "ah ha"s to surface. I would watch the bugtracker like a hawk and look for areas that might be mission critical for my business.



This is not a CMS system, it is an eCommerce platform (quite different from Wordpress). Obviously there was something that wet your whistle to get you to want to upgrade. So just restore your backup and re-evaluate your strategy. Like maybe upgrade a copy of your store first rather than attacking something that is working.

Before you do anything, let’s first revert your shop to the version that was working correctly. Luckily this can be done with one click in the upgrade center.



Then take a deep breath, and try to find out where and why the upgrade didn’t work.



I did the same upgrades on the shop that I’m building. I used hooks for most of my changes and it upgraded without any problem. In fact the new versions are faster and require less server power.



About your problems.


  1. Learn how CS-cart handles hooks and changes in the skin. I used hooks for almost all my changes (not that much) and the upgrades went flawlessly. I’m afraid this is the only way upgrades can be done without (many) issues. Every cart I know has problems with customized skins after an upgrade, so we should be thankful for the excellent hook functionality in CS.



    So what you could do is try to find your changes in the template, take them out, and install them again using hooks. Or you could try to make a copy of your template as is, and rename the folder. Then upgrade, and see how it works when you switch to your previous skin.


  2. I don’t have this problem (I don’t use SSL yet in this shop) but it does sound familiar. Did you try switching the “Keep HTTPS connection once a secure page is visited”. Just turn it off… save settings, turn it on again, save settings. This once fixed a similar problem for me in 2.1.1.


  3. This is weird… I have this too. My images all work though but I don’t have that many products yet. I will add it to the bugtracker. You could try erasing all your thumbnails by using yourdomain.com → CS-cart will make new thumbnails for all your images on the fly when the pages are visited for the first time.


  4. I don’t use this… but I suggest you add the problem to the bugtracker.

This is why any one running a serious website, or even a small one on any software based system, should clone the site to a development or staging area first and test all upgrades, file changes, features, etc, etc, before making the upgrade happen on a live site. Upgrading directly on a live site, is always a bad idea. Bugs are bound to happen.



I also agree with the comments about using proper hooks and template calls, ever since cs-cart 2.1.x, I’ve now been able to override everything you could even imagine in cs-cart without editing a single stock skin or core php file at all, where as before I had several core code level edits. There is both the template and php level hooks to change things, and now there is flat 100% “overrides” support, to flat override a file entirely.



I use new overrides support to flat override the main skin/customer/index.tpl file entirely, then I can just {include} and {hook} anything I need where its from stock points or custom files! Wahlah!



HTH.

Just a note… Renaming a skin will have no affect on the ipmpact of an upgrade. If it will overwrite modified files regardless of the skin name (as it should). Otherwise there is too much risk of the skin trying to do something in a way that is no longer supported.

So right off the bat, I’ll acknowledge that YES I should have learned about and used the hooking system more than I did (hindsight being 20/20 right?). That said, I also did not expect an upgrade to overwrite files within the custom skin I was creating. If I had simply edited the files within one of the existing skins, then I wouldn’t have been so surprised by the overwriting.



But here’s a few points you should know:


  • I am 99.9999999% certain that the only core file I modified was core.js (*see below if you want to know why), no other modifications were done to core files. The only modifications done were to files within my custom skin folder.



    - I was using hooks where I could, but…


  • I did not know that I could add my own NEW hooks where existing ones did not exist (thanks for yet another golden nugget of wisdom Tony, you are certainly one of the most helpful people in the forums)



    Anyways, that aside, everybody focused on the (assumed - but partially correct) point that I had not used hooks.



    BUT… my custom skin only affected point #1, and even after switching to two different stock skins (Basic and Austere), problems #2, #3 and #4 still occured!!!



    The upgrade center tells you flat out, and will even show you the exact lines of code that it has altered during the upgrade (nice!), so I can easily fix the changes done to my custom skin to correct problem #1, it’s the other 3 problems, which have basically rendered the cart unusable that really P!$$ me off. That and I have had the flu for the past 5 days, so I’m extra tired and cranky.


[quote name=‘tbirnseth’]This is not a CMS system, it is an eCommerce platform[/QUOTE]

A CMS allows you to manage content without having to hard code HTML pages or directly manipulate data within a database. This is what CS-Cart does, therefore it is a CMS. But if you don’t want to take my word for it, read the #2 point on the CS-Cart homepage entitled “Built-in content management”.


[quote name=‘Flow’]Did you try switching the “Keep HTTPS connection once a secure page is visited”. Just turn it off… save settings, turn it on again, save settings.[/QUOTE] Thanks for the good idea, but unfortunately it didn’t work.


[quote name=‘owenad’]

I use new overrides support to flat override the main skin/customer/index.tpl file entirely, then I can just {include} and {hook} anything I need where its from stock points or custom files![/QUOTE] which sounds like it would acheive the same thing as an upgrade not overwriting your custom skin files in the first place!!! If you can use hooks to basically bypass everything in order to have a custom skin, then why not just leave custom skins as is, because the upgrade isn’t going to affect your hooked files, so then CS-Cart still has this issue to contend with: [quote name=‘tbirnseth’]Otherwise there is too much risk of the skin trying to do something in a way that is no longer supported.[/QUOTE]

So ultimately, people can still develop skins that can try to do things that are no longer supported, so why not just leaves custom skins alone???



As I said before, it would be better for everyone if they left skin development up to everybody else, but then focused on creating a solid API with function calls that allow you to build your own custom skins, however you like.



CS-Cart does have the makings of a really good product. But the developers are trying to do absolutely EVERYTHING, which means that some things are not going to get done right. If they just focused on the guts of the cart, stripped out as much business logic from the presentation files as they possibly can, you would end up with a way better, more solid cart, with more imaginative, creative, and beautiful skins then the sorry lot they have now.





I purchased this cart to develop with because it had some ingenius ways of solving some problems that no other cart I found could deal with. Now, I’m simply trying to make the cart look nice and not have it break! And that is turning out to be a difficult task, which it should not be.




  • Why I modified core.js:

    Any and all combobox dropdowns, like the currency selector, are positioned absolutely from the top left corner of the screen. But for my design to work, I needed to change the CSS position attribute for some of the main container divs to either relative or absolute, which would then cause the comboboxes to be positioned from their closest parent container that pocessed a CSS position other than static.



    So for example: In my design, the currency selector is positioned in the bottom right corner of the header div, which on my screen would place it about 1200px from the left edge of the screen, and 55px from the top. In all of the CS-Cart skins, there are no div containers with a CSS position attribute other than “static” (the default). If I change the CSS position attribute for the header or ANY of the other parent divs (like “container”), then the currency selector now gets positioned 1200px from the left edge of the header div, which is beyond the viewable portion of my screen.



    It was relatively easy for me to change the core.js file, so that the comboboxes would determine their coordinates from the top left corner of the parent div they were within, instead of the top left corner of the screen. Then all I had to do was wrap each combobox in a div, and give that div a relative position. Now, I’m free to change the CSS position attributes for any element I want to without my comboboxes dissappearing.



    This is either a really poor understanding of CSS on the part of the CS-Cart developers, or an intentional way of making it difficult to customize things, meaning you then have to hire them to customize your cart (ka-ching). My soultion is easy and doesn’t interfere with a fundamental element of CSS, which is positioning. Of course, CS-Cart still uses tables all over the place for positioning things (whereas tables should only be used for tabular data), so they obviously don’t get CSS very well.

[quote name=‘brent’]which sounds like it would acheive the same thing as an upgrade not overwriting your custom skin files in the first place!!! [/quote]



First of, nice reply to everyone!



Yes. That was my entire goal, making my upgrade paths easier, as I maintain about 8 cs-cart sites now, and am rapidly growing at this time to have double or triple that by end of the year ;).



I do agree the skin overrides system is possibly questionable, however; it is because things sometimes have to be improved or changed entirely within cs-cart’s inner design, and thus the skin files need to reflect and support the changes.



This goes back to my statement in another thread, always upgrade and test everything on a clone copy of your site on a subdomain or something, so you know way ahead of time any issues, this is always how my company handles upgrades and big developments, makes sense, stops anything from breaking on a live site; gives you time to fix issues that may arise, lets you learn any new changes or improvements too.



I actually use the overrides system, to flat override the main skin/customer/index.tpl file, which then I can include any different path, copies, or stock original files as needed, thus leaving all stock skin files alone entirely, while customizing everything I could ever need without a hitch! Its wonderful!



You also shouldn’t be complaining about cs-cart, the amount of time, effort, logic and thought put into this shopping cart solution, and given out with all features with full source code and hook/overrides support for so cheap is the key amazing part about cs-cart. It is the best hands down by far.



Also, if you need any assistant with better hooks or new overrides system, PM me, I’ll be glad to point you in the right direction, as running a clean smooth, easier to maintain setup is very important to a successful business; don’t need to be wasting time, when time could be money.



Just my 2 cents… thanks.

[quote]

  • I am 99.9999999% certain that the only core file I modified was core.js (*see below if you want to know why), no other modifications were done to core files. The only modifications done were to files within my custom skin folder.

    [/quote]

    Sorry, vernacular difficulty. When I refer to a core file, I’m not referring to the core directory, I’m referring to a file name/path that is distributed by cs-cart. Maybe I should use “standard file” instead. This would include any variable template path based on the skin name that matches var/skins_repository/base directory which is what everything is based on.

[quote]

So ultimately, people can still develop skins that can try to do things that are no longer supported, so why not just leaves custom skins alone???

[/quote]

Because they dependi on underlying functionality. A good example is the new 2.1.x url() function that is used to ensure all URL’s meet certain requirements and uniformity. The old SEO function went away so it’s no longer there for templates to call.

[quote]

ny and all combobox dropdowns, like the currency selector, are positioned absolutely from the top left corner of the screen.

[/quote]

You sure about that? My experience is that they are positioned absolutely to the container div that has position:relative. But if true, that’s a good reason to modify. You do know that you can use js hooks too! They are implemented like the php hooks. Just FYI. But they are not widely used. Same reason that load the central column first and then use these really wide margins to position everything! On my site, I do a more natural load order and let things float naturally (left, center, right). This allows the right/elft columns to be variable width too.

[quote name=‘brent’][SIZE=“6”]I have a great idea…[/SIZE]



[SIZE=“3”]If they ever decide to change the name of CS-Cart, they should change it to:



1 Step Forwards, 2 Steps Back Cart[/SIZE]



I used the upgrade center to go from 2.1.2 to 2.1.3 and then to 2.1.4

so I guess that’s 2 steps forward…



and here’s the 4 steps back:



#1) The upgrade overwrote files within the custom skin I created !?!?!?

I should have the right to create a custom skin for a store and not have it wiped out by an upgrade!!! Imagine upgrading WordPress and having it overwrite your theme files!!! In my 5+ years as a developer, I have never had a CMS overwrite a skin or theme as part of an upgrade. I’m still trying to wrap my head around the fact that this happened. The whole entire point of a skin is to have your presentation separate from your logic. It would be in the absolute best interest of the CS-Cart developers, third party developers, and the CS-Cart users if the CS-Cart developers just focused on the core functionality and business logic, then handed over a nice set of API functions and left the entire development of skins up to the rest of us.



#2) Switching from SSL protected HTTPS back to HTTP no longer works

Switching from HTTP to HTTPS works fine, but then any links back to the non-secure portion of the cart throw 404 errors. I even installed a new skin from the repository to rule out the possibility of the error being part of my custom skin. Still doesn’t work. This worked correctly a few hours ago prior to the upgrades, so it also isn’t my htaccess (which has not changed).



#3) Image paths for thumbnails now have extra segment

Not only image paths for product images I have uploaded, but even things I have not even touched have become corrupted.

Take for instance the credit card logo images on the checkout page. The image path used to be:

[COLOR=“Blue”]/images/thumbnails/0/50/masterCard-icon.png[/COLOR]

but now it’s:

[COLOR=“Blue”]/images/thumbnails/0/50/50/masterCard-icon.png[/COLOR]

see the extra /50 in there?

this kind of non-sense has been done to most of the product preview thumbnails… but not all of them!!! So if you click on a product, that has multiple images, some of the thumbnails show up, and some don’t. Some will have the extra “/50” (or extra “/30” or even “/400” on full sized images) and some images won’t have the extra segment and display correctly?!?!?!

This problem occurs regardless of skin selection, so again, nothing to do with my custom skin.



#4) Sequential Options no longer work

Again, worked this morning, after upgrades, they don’t work.

Sequential options are where all of your product options are disabled, accept for the first one. After you make your first selection, the second option is enabled AND it’s values, are potentially affected by the first choice. Like a dropdown box for country, where a second dropdown box gets populated with the states or provinces from the country that was selected in the first dropdown.

Well anyways, these don’t work. You select the first option, the ajax_loading_box image appears, then dissappears, but the second option never gets enabled.

Firebug reports the response as: {text: ‘’, data : { ‘notifications’: [ ] }}

The POST info appears to go through ok, but nothing comes back.

And once again, not my skin’s fault, as this problem occurs in basic skin as well.



This is really unacceptable…



The cart I’m working on is completely busted now.



Can’t get a single item into the cart. The only good thing about this is the fact that this wasn’t a live store, or else the business owner would be losing money. Instead I’m the only one that is losing money.



I was supposed to be working on other things today, but instead I’m trying to fix this steaming heap.



[SIZE=“3”]Another day lost to CS-Buggy

and who’s going to pay the bill???[/SIZE]



I have no faith in this product…



but unfortunately I am so deep into it now that I have no choice but to continue and hope that soon I can publish this store, and then just pray that it all stays together.[/QUOTE]





So feeling this post I dread the release of upgrades considering we are about 15 to 20 shops in, how come the upgrades create so many major issues was the cart coding that shite in the first place ?



the statement of one step forward 2 back doesnt even cover it, more like 1 step forward 2 weeks back .



Like you said lost time in fixing shit that already been done , who is paying the bill we are the users.



Please sort this out CS cart and also the promised ebay module, Magento have it zen cart have it and these are cheap FREE piece of shit carts.

[QUOTE]So feeling this post I dread the release of upgrades considering we are about 15 to 20 shops in, how come the upgrades create so many major issues was the cart coding that shite in the first place ?[/QUOTE]



Things can be done on your end to greatly reduce the amount of work required after an upgrade. Have you implemented any of your 15-20 sites to use hooks? With that many sites in operation you should put some effort into reading about this technique…

Ok, I posted a bug about the double directory and this is working correctly according to CS-cart:



The double directory is created, because the height parameter is defined for the thumbnails on your site and it equals to the width parameter.

So one directory is for the width and the second one is for the height.



I hope this explains the situation.



Thank you.



As said I also have the double directories but all my images work fine so I think your problem lies somewhere else.

I always find it interesting how few people really investigate the capabilities of a system before they launch off and start using it. To invest in 20 sites without understanding how to implement your changes in a manner that gives you the ability to upgrade is shear stupidity.



There are tons of resources on this forum (I’ve written many) that describe the mechanisms, methods and have examples of how to do things in as transparent a manner as possible.



But even with that, I’ve found that in moving my site from 2.0.15 to 2.1.4 that I have issues that could not have been considered in doing the initial work (use of fn_url in templates for example). But I’ve had very few issues ever upgrading within the 2.0 or 2.1 upgrade path. Sure, there are bugs to catch due to something unique that was being done, but usually not anything too major.



So nothing is perfect and the more flexibility, configurability and features you add, the harder it is to ensure compatibility between releases. CS-cart’s internal testing could use improvement, but the developers are sharp and do a pretty good job of thinking things through as to their impact down the road. I’ve been pleased to see them re-implement an area rather than try to scab on one more feature when necessary.

[quote name=‘Flow’]Before you do anything, let’s first revert your shop to the version that was working correctly. Luckily this can be done with one click in the upgrade center.



I just learned that when I purchased my license the licence number didn’t migrate into the program but it was fully operational except that I was never notified of upgrades. I wondered why there hadn’t been so I checked and learned of the problem but couldn’t access the upgrades. I had that resolved and one by one did the upgrades. Now the store is no longer working.



When I go to the upgrade center to “revert” nothing appears for me to click on to revert back to.



Why would this be and how do I get my store back up?



John

I should add that I can navigate via the server path button to where the tgz files are but nothing appears on the preview screen.

[quote]

When I go to the upgrade center to “revert” nothing appears for me to click on to revert back to.

[/quote]

Did you remove upgrades? If so, you will no longer have the ability to revert to them.

[quote]

I can navigate via the server path button

[/quote]

What is a server path button?

No I didn’t remove them. I just upgraded one by one until it was current. I can view all 6 of them via FTP software in: var/upgrade.



They are named like this: upgrade_2.1.3_professional-2.1.4_professional.tgz



John

Server path button is on the database restore page:



Select a file or enter a URL

Local | Server | URL

John, this sounds like a permission problem at least on the upgrade files or directory but, there could also be file corruption somewhere because of the upgrades…



Someone may need to access your server to help you but try this first.



Create a phpinfo script and check the Server API section. If that says CGI or CGI/FastCGI then you should not have any files or directories with 777/666 permissions. If it says Apache/Apache2 or similar then those permissions are required on writable directories/files.



If it does say CGI then FTP to your account and ensure the following permissions are true (you will likely see many 777/666 permissions have been applied by cs-cart itself)



chmod 755 /var

chmod 755 /var/upgrade and all underlying directories

chmod 644 all files in and below the /var/upgrade directory



If you did need to change permissions here then more changes will also be required but first, see if you can view everything in the upgrade center. If you can then see the missing files/options, Do NOT attempt any further up/downgrades yet. If you didn’t need to adjust any permissions or, if you still cannot view the missing content after fixing the permissions above then there are more serious problems.



Post back here or contact me with the results.









Changing permissions on nested directories and files can be a real pain but some FTP clients like FlashFXP make it simple to do all at once.