Definition of terms

As new developers come along, I think it confuses users when people start mixing terms.



In my mind, there is a clear distinction between some terms and I'd like to define my meaning here. Maybe developers could then adopt this usage so that the message we give to merchants is consistent.



Areas where I've seen confusion are:



MOD - A change to the distributed source code for cs-cart to change the display or behavior of information. It will almost certainly generate an upgrade conflict during a future upgrade. This excludes changes to the distributed my_changes addon.



ADDON - A wholey separate code base distributed as an archive of addons/ and var/skins_repository/base/{customer,admin,mail}/ with ZERO modification to distributed source code that is not in the distributed my_changes addon. Done correctly, this will NEVER cause a conflict during an upgrade, but an upgrade could change functionality due to changes in the underlying system.



3rd Party Improvement - Could be an ADDON or MOD as described above and could also be a non-cart change such as using 3rd party products to cache/optimize a site regardless of its content. A developer should clearly state whether their proposed/delivered solution is a MOD or ADDON(as defined above) or some type of hybrid solution. The developer should be clear on what is being modified in the merchant's cs-cart site (if anything).



As in most worlds, there will always be exceptions or where someting is distributed as an Addon but requires editing of a single core file (or other change) causing gray areas. If developers can simply be clear about the impact of installing what they are providing has on a merchant's store then it will put everyone at ease and make it easier for us to help merchants and maybe make a little coffee money along the way.