A Cs-Cart Developer's Dilemma

I guess every software developer knows that building and selling modular digital products can be tricky, especially in terms of compatibility.
Any incompatibility uncaught by the add-on developer translates to bad customer experience, not only with the add-on itself, but with the CS-Cart platform as well. See how Magento/WordPress platforms handles such faulty modules. CS-Cart fails to do that, potentially resulting in a bricked website.

So, as it makes sense, the burden of finding these incompatibilities falls on a developer's shoulder: find ALL incompatibilities between ANY version of your add-on and ANY PLATFORM version ever released (overgeneralization).

That can be a tough job, but we love building software, and we do it anyway, because we love making our customers happy. Right?

So we've build a system that does automated testing on our CS-Cart add-ons and WordPress plugins that we develop.
Most of our products are add-ons for private businesses, and in that case we only test the add-ons on a very limited number of CS-Cart or WordPress versions (ie. the ones our client's websites are running).
This runs nicely especially with plugins build for WordPress: we can test a plugin release against all WordPress releases, automatically - because all WordPress releases are public - always.
All nice and well there.



Now... the problem.

When contributing with public add-ons for the entire CS-Cart market (via the CS-Cart marketplace), we face a challenge: there is no way for us, the developer, to access all the CS-Cart releases.
Which means we cannot test our products/add-ons that we publish (or would like to publish) to the marketplace against ALL CS-Cart versions.
Which translates in customers finding incompatibilities for us, and bad customer experience overall. Of course, our support makes up and we are prompt to solve all the incompatibilities our customers throw in our way, and the customers are happy in the end, but... is this really necessary?
We think not. We think we can improve this, not only for the CS-Cart customers, but also for the CS-Cart community as a whole (by sharing these tools and knowledge with other CS-Cart developers).



Solution?

So we turned to CS-Cart for help.
We explained this problem to them, and asked them: how can a CS-Cart developer access all the CS-Cart for testing purposes? Or what other solution can they offer?

Their answer to this question? "BECOME CS-CART RESELLER AND MAKE PROFIT ON SELLING OUR SOFTWARE". I wrote them back to make sure they understood the question, and the problem. Nothing.
They have completely ignored the subject of the matter :)
We then tried to play their game, and we asked: "if we become CS-Cart resellers, do we gain access to all the CS-Cart releases, so we can fulfill our objective?".
And their robotic answer was the same scripted "BECOME A RESELLER" pitch WITHOUT EVEN TOUCHING our question.

So while our concern was to help the CS-Cart customers and community, CS-Cart's main concern was to increase their sales.

And we are not interested in selling CS-Cart licenses.
But even so, we would've bought into the reseller programme if they would've confirmed we would have access to all their releases. But they didn't.

And why isn't there a "Developer program" already anyway?



Dilemma

So... Is there any future for the CS-Cart developer?
And, if not, is there any future for the CS-Cart customers?

Should we consider shifting our main focus as developers on WordPress/WooCommerce or Magento, where the market and community are way bigger?

How do you tackle this problem as a CS-Cart add-on developer?

And what do you, the CS-Cart developer, think about all of this?
I would love to hear about what other developers think.

Thanks.
And sorry for the long rant :)

Their answer to this question? "BECOME CS-CART RESELLER AND MAKE PROFIT ON SELLING OUR SOFTWARE".

Try to contact someone of their team here http://forum.cs-cart.com/index.php?app=forums&module=extras§ion=stats&do=leaders

Also they should answer to this post, not in a private message. I would love to see their "related" answer. Anyway... we have all versions saved since 2.1.3 if you will be interested :grin: :grin: :grin:

We deal with this by establishing a minimum version level that is managed by our license manager. I.e. you can't upgrade a V3 addon to a V4 site. We try very hard to ensure that all our addons will run on any version of cs-cart that they are developed for (V2, V3 or V4). I.e. we have a compatibility table on our homepage that shows the versions each production addon we sell is supported for (separate archives for each major version and sometimes the edition like MVE versus ultimate). One of the pains and advantages of cs-cart changing the file layout for V4 is that it prevented any addons from V1, V2 or V3 from being able to be seen/run even if they were extracted into the document root.

It is not very difficult to ensure compatibility with future versions if you use best practices. I.e. don't modify distributed files and only use published hooks. However, one of the reasons we generally stay away from front-end addons is that the front-end is way to vulnerable to changes (3rd party themes, css changes, etc.) Almost every compatibility issue we've encountered can be handled by a rather simple condition (and it's pretty rare). The biggest issue for us has been having to implement our own archiving classes, file_recursion listing and and other issues with specific PHP versions (I.e. using Phar) or on specific versions of cs-cart where they did not issue a service pack for fixing a critical problem (to addon developers versus distributed addons).

I keep an archive of every version/edition of cs-cart since V2.2.2. On the rare occasion where I really need to validate against a specific version, I can always simply create a test sub-domain built with a specific version/edition for testing/validation.

In general, cs-cart's priorities are core first, followed by their distributed addons and then maybe for 3rd party developer addons. But issues in the core that affect 3rd parties are rarely ever addressed with service packs. Instead they rely on addon developers to work around their issues and redistribute their addon.

It's not perfect, but it's certainly better than wordpress and many other CMS platforms.

Note that since cs-cart distributes all their addons with the distribution, they rarely get hit with the version issues since they are all present during testing of each release.

HELOstore, I checked your Help desk communication history and as far as I see, our specialists provided you with the installation packages from each minor branch per your request (3.0.x, 4.0.x, 4.1.x, 4.2.x, 4.3.x, 4.4.x).

Basically this should be enough for testing add-ons, but if you need some other specific version, we can always provide it to you via Help desk. I am afraid we cannot upload all the CS-Cart versions to your account.

@martfox, thank you for your suggestion. I might try to do that too.

@tbirnseth, thanks for the detailed answer, describing your process. It's true, following certain practices yields better results. And we do follow these practices. Personally, I've been developing with CS-Cart for the last 8-9 years (not with HELOstore, but with another company).

"I keep an archive of every version/edition of cs-cart since V2.2.2. On the rare occasion where I really need to validate against a specific version, I can always simply create a test sub-domain built with a specific version/edition for testing/validation."

That's great if you already have an archive to keep. And we do keep an archive from our CS-Cart clients too, but we do not have every version/edition. So we have big testing gaps.

@CS-Cart team, it's true, HelpDesk did give us access to 7 versions in December 2017 and we are grateful for it.
And if you look further into the HelpDesk communication history, you can see that in our last ticket our request for a few more versions was declined: "I am afraid, we cannot provide you with all the mentioned distributives. Our partner relationship manager will contact you shortly regarding the details." (ticket: "Access to CS-Cart versions for development/testing purposes", March 2018).
No explanation whatsoever.
Do we need to renew our license? Do we need to get into the reseller program and THEN will get access to new versions? Or what?
These are the versions we have access to, thanks to HelpDesk:
multivendor_v4.4.1.tgz   80446 kb Igor Oryol Jan 27, 2017, 14:16 Download
multivendor_v4.3.1.tgz   68347 kb Igor Oryol Jan 27, 2017, 13:34 Download
multivendor_v4.2.1.tgz   68368 kb Igor Oryol Jan 27, 2017, 13:26 Download
multivendor_v4.1.1.tgz   63954 kb Igor Oryol Jan 27, 2017, 12:21 Download
multivendor_v4.0.1.tgz   62622 kb Igor Oryol Jan 27, 2017, 12:15 Download
cscart_v4.4.1.tgz   80567 kb Alexey Maisuradze Jan 24, 2017, 14:11 Download
cscart_v4.3.1.tgz   68282 kb Alexey Maisuradze Jan 24, 2017, 14:10 Download
cscart_v4.2.1.tgz   68334 kb Alexey Maisuradze Jan 24, 2017, 14:08 Download
cscart_v4.1.1.tgz   63929 kb Alexey Maisuradze Jan 24, 2017, 14:07 Download
cscart_v4.0.1.tgz   62646 kb Alexey Maisuradze Jan 24, 2017, 14:06 Download
cscart_v3.0.6-professional.tgz   45989 kb Evgeniy Tyulenev Dec 27, 2017, 16:13 Download
cscart_v3.0.5-multivendor_100076156.tgz   67906 kb Svetlana Tolpegina Jun 24, 2016, 09:59
It's basically 7 versions in two editions. It helps, but it's not nearly enough.
We have asked access to these versions:
CS-Cart 4.6.2 (2017-08-09)
CS-Cart 4.6.1 (2017-06-27)
CS-Cart 4.5.2-SP2 (2017-04-11)
CS-Cart 4.5.2-SP1 (2017-04-08)
CS-Cart 4.5.2 (2017-04-06)
CS-Cart 4.5.1-SP1 (2017-03-06)
CS-Cart 4.5.1 (2017-02-28)
CS-Cart 4.4.3 (2017-01-26)
CS-Cart 4.4.2 (2016-11-29)
CS-Cart 4.4.1 (2016-11-14) OK
CS-Cart 4.3.9 (2016-07-15)
CS-Cart 4.3.8 (2016-06-08)
CS-Cart 4.3.7 (2016-05-10)
CS-Cart 4.3.6 (2016-03-02)
CS-Cart 4.3.5 (2015-12-15)
CS-Cart 4.3.4 (2015-09-09)
CS-Cart 4.3.3 (2015-06-25)
CS-Cart 4.3.2 (2015-06-09)
CS-Cart 4.3.10 (2016-10-18)
CS-Cart 4.3.1 (2015-04-29) OK
CS-Cart 4.2.4 (2014-11-27)
CS-Cart 4.2.3 (2014-10-16)
CS-Cart 4.2.2 (2014-08-28)
CS-Cart 4.2.1 (2014-07-22) OK
CS-Cart 4.1.5 (2014-05-20)
CS-Cart 4.1.4 (2014-04-23)
CS-Cart 4.1.3 (2014-03-18)
CS-Cart 4.1.2 (2014-01-28)
CS-Cart 4.1.1 (2014-01-15) OK
CS-Cart 4.0.3 (2013-11-06)
CS-Cart 4.0.2 (2013-09-26)
CS-Cart 4.0.1 (2013-06-26)
CS-Cart 3.0.6 (2013-02-14) OK
CS-Cart 3.0.5 (2013-01-16) OK
CS-Cart 3.0.4 (2012-11-07)
Meanwhile, there have been 2 or 3 more releases to which we don't have access.
"I am afraid we cannot upload all the CS-Cart versions to your account."
Care to explain why not? Don't you keep a version of your own releases? :))
And in the ticket we said "access to ALL versions via an API would be great", BUT we would be happy with access to only a few (the 2nd list above). And you have declined.
Or do you mean that you cannot provide us with ALL THE PATCH versions (*.*.X) for some technical reason, and can only provide the minor releases? Great. That's fine, if you follow semantic versioning. But be specific in your communication. Don't worry, we can understand.
Or do we need to hire a person just to hunt down the moment when you release a new version, so that he can order a trial and then download that version, and archive it for us for further use?
I think a more modern solution would be to have a Developer's Program. If you need to take a fee for that from every developer, okay, do it. And this program should give you access to all CS-Cart releases (including early access!), not only through a web page, but also through a tiny API (can be coded in hours!).
That way, you can automate things like: deploy new testing environment with a cli tool (we already have this, eg. dev deploy cscart 4.4.1) of ANY CS-Cart version (we don't have this).
Wouldn't that be great for the CS-Cart developer?
And why early access? Here's a real case: CS-Cart 4.7.2 is released on day X, on day X+1 customers buys from us an add-on ignoring the mention that "the add-on is compatible only up to CS-Cart 4.7.1, and installs it on his store which he updated to 4.7.2 on that same day; his store crashes.
Sure, mistakes have been made (overlooking incompatibility, installing directly in production, etc), but it's developer's responsibility to make this better & easier for the customer, if the community is to grow. Isn't it?
So what can be done is that you could offer early access to add-on/theme developers to future releases, so that the developer has the chance to test their products on those releases.
And this is important especially for custom add-ons / themes that are ALREADY installed in stores. Usually, when CS-Cart releases a new version, and the customer upgrades to it, ALL THE CUSTOM ADD-ONS that are already installed are virtually UNTESTED with the new CS-Cart version. It's a landmine.
So early access would translate in better CS-Cart customer experience, and would make developers happy too (no need for extra hours on support, more time to focus on new & cool features and add-ons).
What do you think, is there a middle way?
Should we expect a solution? Or should we move on?
Cheers.

HELOstore, we do not provide access to all CS-Cart installation packages to anyone. This is our company policy. However, big resellers have access to the repository, were they should be able to build any CS-Cart version if necessary.

As for the early access, beta versions of new releases are available for beta-testers before the release. We can add you to the beta-testers list per your request. We also publish information for developers in Slack (http://forum.cs-cart.com/topic/46339-chat-for-cs-cart-developers-in-slack/).

@CS-Cart team, that would be great. Can you please add us to the Beta Testing group? Our HelpDesk account email is sales at helostore.com. Same email on Slack. Thank you!

We checked your Help desk account and you are already in this group

@CS-Cart team, that would be great. Can you please add us to the Beta Testing group? Our HelpDesk account email is sales at helostore.com. Same email on Slack. Thank you!

We checked your Help desk account and you are already in this group

It would be great if you could add us to this test group too?

Slack is also interesting for us. Should I contact Imac about the invitation to Slack chat? Are you also responsible for an invitation?

We checked your Help desk account and you are already in this group

Oh, you mean the "Beta Testing" section we have in our HelpDesk > File Area?
I even forgot about that, and that's because I think your system is not functioning properly. In HelpDesk we only received access to 1 "beta testing release" once, which was back in 21 June 2017 (CS-Cart 4.6.1.Beta1dev). I just assume that feature is defunct.
Even now, in Beta Testing we can only see that "CS-Cart 4.6.1.Beta1dev" from mid-2017.
@CS-Cart Team, If you could fix that "Beta Testing" feature such that we can see all future beta releases, now that would be pretty useful.
I could even build an API around that, and automate the testing process, as per our initial plan!

It would be great if you could add us to this test group too?

Slack is also interesting for us. Should I contact Imac about the invitation to Slack chat? Are you also responsible for an invitation?

You should PM imac

Oh, you mean the "Beta Testing" section we have in our HelpDesk > File Area?
I even forgot about that, and that's because I think your system is not functioning properly. In HelpDesk we only received access to 1 "beta testing release" once, which was back in 21 June 2017 (CS-Cart 4.6.1.Beta1dev). I just assume that feature is defunct.
Even now, in Beta Testing we can only see that "CS-Cart 4.6.1.Beta1dev" from mid-2017.
@CS-Cart Team, If you could fix that "Beta Testing" feature such that we can see all future beta releases, now that would be pretty useful.
I could even build an API around that, and automate the testing process, as per our initial plan!

This feature is working properly. New versions are usually available for this usergroup for a week or two earlier. After the release new version is available for all users with valid upgrade subscription.

Man, just read through the whole thing, talk about pulling teeth. Good luck @helostore, this thread itself proves why I am having such hard time to find developers to work on our CS-Cart platform except 7-10 companies that are regularly posting on this forum but they don't even follow what is latest and greatest in ecommerce field. Really sucks.

@mazter, thank you! :)

I am pretty optimist about our future as e-commerce web developers, but not necessarily as CS-Cart developers. That's pretty rough with little return.

However, we'll be around for a while longer for sure. As long as our long-term customers still use CS-Cart, which is a great platform nevertheless, we'll never turn our back on them.

Cheers!

1 Like