Page 1 of 1

Shocked! - Documentation for developers (or lack of...)

Posted: Wed Aug 22, 2018 9:41 pm
by nampara17
I'm a developer.

Started using Opencart... Looked for concepts and documentation (similar in quality to perhaps Wordpress codex, etc.).

Having developed plugins and modules for Wordpress and Magento, etc for several years I WAS SHOCKED!

Shocked to find out that there isn't any and it seems to be a bit of a 'free for all' with no definitive documentation system for developers, explaining concepts, system calls, variables, functions, usage examples, etc.?

'Even' the basics of how to decipher the MVC(l) framework used by Opencart. For such a large following I am shocked and amazed at the total lack of information out there.

Even to the extent that this forum is called Concepts -> Coding & concept discussion for OpenCart v1.x development (I mean could someone not update the title at least to say v1.x to v3.x). Looked everywhere only to discover that there is stuff in here for ALL versions!

How is the documentation coordinated? I find a docs. subdomain with 3 links to development documentation - and these are sparse on functions, internal calls, variable naming, etc etc. How on earth does anyone develop for this? AND what's more important HOW does anyone, with any confidence, UPGRADE their system once they have installed some modules. Just WOW! :o :o :o

I (kind of) like the idea of structured MVC, but in reality (having installed a few modules [commercial] claiming to be compatible with v3.x) - I am finding that at least 3 out of 5 of them are just not working correctly. When you contact the authors they say - "oh, yes we will bring a fix out for that..." - again WOW :'(

Anyway if anyone out there has got a lovely little book / website / support system called 'developers guide to implementation and deployment of modules for OpenCart' ... let me know - i'll even buy it!!

Yours (shocked) - developer

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Wed Aug 22, 2018 9:53 pm
by nampara17
hmmm, I did actually find this:

It's a start, but not much of one.

That's if anyone is interested :)

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Wed Aug 22, 2018 11:43 pm
by Johnathan
Lack of documentation on OpenCart coding structure has been lacking since the start, and unfortunately not much progress has been made on it. There were a few books and such for older OpenCart versions, but I don't know if those are outdated or still relevant.

All the developers would love to have that documentation, but I don't think anyone's willing to spend time writing it for free, so it would be up to Daniel to do it (which he's too busy to do) or he'd have to hire someone to do it. Hopefully that will happen at some point, but for now, I'd suggest studying some of the built-in extensions and modules. That's the best way to learn how they're coded and how OpenCart works internally, at this point.

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Thu Aug 23, 2018 10:17 pm
by nampara17
Thanks for getting back so quickly...

Most people focus on code, but a big take up of OS solutions is to do with the quality and depth of the documentation. IMHO that's why Wordpress has become such a standard; developers have found it very (very) easy to learn how to add value and therefore create great solutions just by looking at the comprehensive documentation that comes with the system.

Thanks again - I will look at examples and "reverse engineer" - but 'kind of' feel that should not be needed these days with such a developed product... :-\


Re: Shocked! - Documentation for developers (or lack of...)

Posted: Fri Aug 24, 2018 10:12 am
... that's why Wordpress has become such a standard
Well, this might be the Case, but, in contrary to OpenCart, WP is not a Shopping Cart Software, but more comparable with a basic Windows Edition Framework, with a couple of most used Progs installed by default. And it so attracts Millions of Users, not even thinking about, using it as a commercial moneymaker Tool, as it is the 'sole' Case and Purpose, when it comes to OC.

I was more astonished about the fact, that such a lot of OC Users have been sharing a lot of free OpenCart related knowledge, during it's existence. Unfortunately, to eventually then find out, that the vast majority of Downloaders just used that knowledge, to so hopefully generate income. And, in contrary to Wordpress, only a very small fraction of them ever came back to OC, to share their knowledge gained, since they never associated this kind of Software with a 'common goal' sharing Project, but a rather highly competitive Business Tool. Wich it is, in real, as well.

And the World has transformed into a global Village, during the past 10 Years. So, most everybody ended up to be everybody else's potential Competitor. In addition, most all OpenCart Extensions made it into Dark Web, some time ago already. But all that also had some dramatic effects, for Sellers as well as for Fan's, and as OC grew up more, as less Enthusiasm was part of it. For logical reasons, like in your 'personal' Case, since you would only be ONE MORE, trying to get a piece of the OC Cake, in an already overcrowded field of partly self-proclaimed OC Developers. And all, looking for a chance, to possibly generate some income. Mostly in the 'hidden' way, while beeing OC-Code Reseller, and by use of anonymous eMail Accounts only , they are not able, or willing, to at least present a working OC Site Link, or something else, so possibly disclosing their miserable Life ... :laugh:

But OC-Newbies are usually not aware of all this, they likely expect to have found a great big bunch of friends, able and willing, to help others, to successfully start their freely obtained Online Business. Based on knowledge of good people, trying to help others to get successful in Life. And some of those Newbies even try, to give something back to this Community. But to then eventually even find out, to get confronted with more wishes, and even demands, to upgrade older Version Extensions for later Versions, but, by nature of habits, also for free. Or then, some even start to complain ::)

But OC has never been a social Project in the first place , it's Owner only depended on 'others' help, because it was not possible, to concentrate on the basic OC Software, as well as developing hundreds of Extensions, mainly by one Man only. So, the decision was made, to enage Dev's, to generate income, by getting a percentage of their Extension Sales. And that worked out for quite some time, as it looks. Because otherways, OC would have been long gone with the wind ....

But all this has changed dramatically, during the past few years, because meanwhile, Google is full of of info, where to get, what one is looking for, most likely for free. And this has turned many real Dev's away from this Place here, as well as from further developing OC Mods. It's no fun anymore for them, to waste their costly time, in a Place, wich obviously mostly consists out of 'hidden' Elements, just looking for a fast Buck, but without a single Bit of 'social' competence. But, they did NOT come here for this either, the FREE Software, and the Masses of FREE Mod's was all, they where looking for, and the chances, that some of the Forum Fan's would assist them, in such a giant Forum Place. Gattered by their first impression, after reading all about it, on the OC Welcome Page. So, better tax OC, like the 14'000 Extensions advertized. They really exist, but only about 2 percent of them will still work with in present versions OC. And this is also the case, when it comes to Support, where much less real knowledge exists for later Versions OC, by nature of things.
So, better don't expect more, than you will get. And better, just take it, as it comes, and never take anything of it personal. It's just Business, and in Business, it does not matter, if you like the guy, who wants to buy one of your Cars, as long as he is able to pay for it. But don't expect your Competitors to share their wisdom with you, for free, better use the only real Friend you have on the Web, and this Friends Name is Google. It will show you everything, you'll ever need, when it comes to MVC(L), OcMod, VqMod, Twig, or whatever it might be, to get familiar with OpenCart. And it might take a little while, but then, and especially, since you seem to know Magento already, it will work out well, I assume. Even I understud the most important things, and I am not even near of beeing a Coder. It only took a little longer than expected, to first test ~80% of the goodies, just to find out, what works best for me.
Still, it was not my intention, to scare you away from OC! It's a great Software, it just lacks on Cash, required, to eventually pay some fellows, to write detailled and understandable Manuals, at least in the english language. And this, mainly also due to the fact, that the Dark Web Market hinders OC, to generate enough income, to expand present Activities. So, it's kind of an endless loop, and of not much use anyway, trying to invest a couple of thousand hours, in some OC Version Documents, wich will not be the same anymore, after such Descriptions would be available, in the first place. :choke:
Life is full of surprises, and new OC Versions likely too ... :D

If you know, what I'm trying to tell ya 8) ::)
And it's just my very personal impression, after beeing around for a while.

Good Luck, no offense ! :)

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Fri Aug 24, 2018 4:25 pm
by nampara17
Still, it was not my intention, to scare you away from OC! It's a great Software, it just lacks on Cash, required, to eventually pay some fellows, to write detailled and understandable Manuals, at least in the english language. And this, mainly also due to the fact, that the Dark Web Market hinders OC, to generate enough income, to expand present Activities.
Thanks for the very comprehensive reply to my note.

Also being an old bastard I'm looking at opencart as being a way forward for a lot of developers. There are obviously comparisons with other content management systems, such as WordPress, Magento, etc. These are the systems seem to have thrived over the years based on their open architecture and the ease of which developers can integrate into them. It seems to me that these days the more you can make your architecture open and easy to understand the more chance you have of existing in the future.

Gone are the days of keeping things close to your chest! We live in an open world where the sharing of thoughts and ideas make systems and software prosper and grow.

Regards the costing of something like a comprehensive manual, I would suggest with the current audience of opencart it would be a fantastic book to have available commercially on Amazon and other platforms, as there are so many developers out there looking for Great Solutions and they would buy it in a heart beat. Although opencart itself adheres to an open architecture, similar to WordPress and the others, developers have latched on to this framework and are now making a good living from selling plugins and themes, etc. Commercialism will prevail in all areas of software.

There are lots of aspects of opencart which are quite refreshing. There are also a lot of areas that are just plain, frustrating.

The huge area to get right with software in my opinion, is the aspect of being able to keep current with the latest versions of software. Although the mvc(l) model is good, with the implementation within opencart, it's quite frustrating. For example with plugins; when upgrading the language files are generally overwritten. With other systems there are ways of being able to keep the theme, language and other files completely separate from the core of both the plug-ins and the core software (e.g. Child themes in WP and built into the architecture - integration). I'm sure that with opencart this is possible. The issue is more how to do this rather than can it do it.

The view part of the framework seems very comprehensive with the latest twig templating. The issue I have is that how do I override twig templates (for example) and tweak them and then still be able to upgrade those plugins and opencart in the future. Again I'm sure it could be done.

With systems like WordPress it's very very straightforward. You don't run into the risk of completely destroying your setup when you upgrade. Child themes and overrides are a great solution to this type of problem. Perhaps you can tell me if this is possible with opencart and if so, point me in the direction of where there may be some document explaining how this is done.

Perhaps one way forward is to have an open source wiki to maintain the programmers / developers documentation for this system and to get the community to contribute to making the documentation excellent...

I never buy into the concept that because something is open to the community then everyone should be grateful for what they get.

Open source and open architecture software lives and dies by its community. Over the last 35 years that I've been involved in the software industry, I've seen a lot of software die just because they haven't embraced the community and made the software easy to use for both end users and developers.

I sincerely hope the opencart is not one of those.

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Tue Aug 28, 2018 2:41 am
by JNeuhoff
Another reason why there is only sparse OC documentation is because its API isn't yet stable. Each new release introduces changes to its API. For instance, the past few OC 3.x releases have seen a number of changes with its event handlers, especially for modifying views (templates).

Also the marketplace vetting procedures aren't strict enough, thus resulting in a number of broken extensions.

Finally, some modification systems like OCmod or VQmod are a recipe for disaster, quite often multiple extensions tend to clash with each other. The worst area are probably the web themes, too may theme developers simply don't get it. This is in part due to a lack of web theme developer documentation.

Having said this, OC has a good and easy to understand MVCL design for developers. Often well designed software is self explaining.

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Tue Dec 11, 2018 1:24 am
by nampara17
One major thing troubles me with OC...

With (for example) Wordpress, there is some sort of 'override' or hierarchy if you will. This means you could install a theme or plugin, and, without affecting that theme or plugin add or alter functionality.

The benefit is that when there is an upgrade of the core or theme, etc. you can rest assured that your modifications are not being obliterated. In fact we are in that exact situation. Installed latest OC3.x and Journal theme. Both did not 'quite' do what we needed. Only way to modify core files and theme are to overwrite the originals. Now of course we are stuck with versions of both theme and OC that are not update-able by the usual conventions and we are having to use DIFF tools to see what's changed (BTW A LOT!! so realistically Impossible).

Guess there is an answer (always is) - but looking for the 'easy' answer as it would be with other systems...?

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Tue Dec 11, 2018 3:21 am
Well, latest OC Version is still a BETA Version, it's therefore useless, and
fully unprofessional too, trying to use something like this for a real Shop.

And it's Follower will also be an 'intermediate' Solution again, until it will
replaced again by another Version Number. And every 'Follower' will again
have changed, in certain Sections, mainly, to also keep up with latest Web-

And OC is no Wordpress, and it never was, so better don't compare Apples
with Pears, but accept the OC way of doing things, or then, move on to
something else, better meeting your expectations. It's the only way to go,
since nobody around here has any influence on this, OC is a one Man Show,
and nobody cares, if others like this, or then not.

Take it, or leave it, it's your FREE Choice!

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Tue Dec 11, 2018 11:15 pm
by Johnathan
nampara17 wrote:
Tue Dec 11, 2018 1:24 am
Only way to modify core files and theme are to overwrite the originals.

This is not true, and is actually very bad practice. If an extension or theme overwrites core OpenCart files, it's not well made. This is why vQmod and ocMod exist --- to virtually modify the necessary core files, without actually doing so. That way, if something causes an issue, you can easily disable it so the edits no longer apply. Personally, I would never install something that overwrites actual core files, because it's just lazy, and causes issues.

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Wed Dec 12, 2018 7:38 pm
by JNeuhoff
Johnathan, you are right. However, VQmod and OCmod are not good ways to modify core files. The way forward are really event handlers. Unfortunately, the view/*/before triggers are really quite messy now, made even worse in OpenCart 3.1 with the need to use Lambda functions.

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Wed Dec 12, 2018 11:13 pm
by Johnathan
Yeah, if there was a good events system I would recommend that, but it changes ever OpenCart release, so it's pretty unusable. Hopefully they'll standardize it more going forward, though I'm doubtful about that.

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Wed Dec 19, 2018 1:16 pm
by dhruvin
one of the book i am referring called OpenCart Theme and Module Development by Rupak nepali. it serves as a good starting point for beginners rather than just wondering hopelessly around to understand how things work in OC.

Re: Shocked! - Documentation for developers (or lack of...)

Posted: Thu Feb 07, 2019 6:08 am
This youtube videos playlist can also be helpful for some:
OpenCart Videos Tutorials

Introduction and Table of Contents
This video goes through the introduction of the series
OpenCart installation localhost
This video go through the OpenCart installation in localhost
Files and folder structure of Opencart
It describes files and folders structure of OpenCart
Creating Database Table schema in OpenCart
It shows database table schema and shows how to create database tables in OpenCart
OpenCart Library Predefined Objects’ Methods
It describes OpenCart Library Predefined Objects’ Methods and shows where to find them.
MVCL pattern, code flow and request & response in OpenCart
It shows MVCL pattern, code flow and request & response in OpenCart. They describe the flow as in the picture below: MVCL described with Code
Install, Configure and Uninstall Opencart module
It shows three ways to upload modules, then install, configure and uninstall the OpenCart 3 module/extension.
Layouts and position in Opencart 3
It describes the OpenCart 3 layouts and positions. It shows how to show customize layouts for different pages, giving examples of categories pages. We show the different layout for a different category.
Event overview of Opencart
You will learn what Events are in OpenCart, how they work and what makes them so useful.
Opencart API documentation for developer
This video will show how to use and make custom opencart API

Once you see these videos then I hope you can start coding :)