drB,
my opinion would be enhancing the architecture while adding the important features.
as you are asking my opinion, i will provide it. but please note, i'm a fan of the zen-cart project; and my comments are meant as constructive.
for me, the important features that i have had to look elsewhere (or code from scratch) include:
- adding additional product fields
- admin edit/add orders
- one page checkout
- responsive design template
i think those 4 items, and i know some, if not all of these are being incorporated into future releases, should be part of a vanilla install.
in addition, i know the current versions also has an ajax-add-to-cart; but i had already implemented an add-on to make use of that feature. I am a huge fan of more ajax calls when possible. unfortunately a lot of ajax add-ons are buggy, and my experience getting them to work requires lots of work on my part.
with regards to adding more features, the question becomes when does it become bloatware? how many excel/open office users use more than 15% of the functions available? i can only assume that you have more insight into the typical zen-cart user, and know what features they are requested, but the ones above would be the ones i would focus on.
as far as the architecture, do you want to go more like shopify in trying to make it as idiot-proof as possible, or more like magento where they try and isolate all of the enhancements from the core; to the point that their whole XML architecture gets to be ridiculously confusing for a developer or someone implementing a magento site?
frankly, i'm amazed when i look at the zen-cart forums, and see store-owners with little to no coding experience implementing a zc site. store owners with no idea what css is, forget about jquery, php, responsive design or html validation. now if they can get a ZC install up and running without professional help, with a modern look and feel, and it serves their business well, awesome! in my experience, rarely does anything work as required out of the box; but it's to the ZC team that some people can make that happen.
but for someone like me, i find it incredibly frustrating at times, the work required to do something. for example, i recently upgraded a client to 1.5.4. they have a ton of customizations that were done over the years, that now had to ported over to the new version. i tried to isolate as much of that customization; but it becomes impossible for any number of reasons. no big deal i suppose. but i then have to add some new menu items onto the admin side. does it really have to be this difficult:
https://www.zen-cart.com/content.php?327-Adding-a-menu-item-to-the-v1-5-0-admin
different files for defining the FILENAME and the BOX_ constant? requiring a constant at all? and if the constant is defined on the customer side, that is not good enough? or perhaps i defined it in the wrong spot? and then deleting the init_new_tool.php file or have extra dB hits if it is still there. and if i really want to be persnickety, a script called init_* that is not in the init_includes directory?
i suppose the development team has their reasons why, but requiring this level of complexity totally perplexes me.
please note that I am not looking for any justification here. i'm only providing my opinion.
on a last note, between live sites, development sites, and finding the right development environment for myself, i have constructed and destructed any number of ZC installs. yesterday, i decided to do a clean/vanilla install of V1.5.5 to troubleshoot another problem i was having. i have to say the install process went surprisingly easy and quick. i think its a big improvement over previous versions. and i'm still looking forward to future enhancements/releases...
best.
author of square Webpay, now with Apple Pay and Google Pay.
mXworks
donations: venmo or paypal accepted.
premium consistent excellent support. available for hire.