Page 1 of 1

First impressions

Posted: Thu Jan 14, 2010 7:46 pm
by Malaiac
Hi all,
pardon my english, je suis francais :)

I'm new to OpenCart.
Webmaster of a medium ecommerce website since 2003 (Actinic > OsCommerce), we were feeling the need for a change since 2007, but waiting for OsCommerce v3 to be released. Since the first RCs are basically a joke (no OOP, no templating, etc), I choose to switch from OsCommerce. After a few comparisons (mainly Prestashop vs Opencart vs WP eCommerce - I'm a WP developer since 2006), OpenCart seems the good choice.

+ of Opencart :
+ very fast (time to first byte under 0.5 sec, full load of front end demo page - not optimized btw - under 8 sec, versus 10 sec for PS)
+ young (more flexible)
+ relatively easy to customize (vs Prestashop)
+ no Smarty (a pita)

- of OpenCart
- MVC. which means useless complexity
- young (less features)
- 3 to 6 files to code the smallest module
-- no hooks !! that's a big - , see WP which greatly benefits from the hook system, allowing even junior developers to achieve complex plugins.
- (hook related) no pre coded way to do small things (add an admin menu / submenu, filter the description of products, etc.)
- translation system is file based, I'd much rather have a po/mo translation system, which is error proof, degrades nicely (instead of missing file Fatal Error)


Background:
2 OsCommerce websites, heavily customised
more than 20 WP websites in production, some with more than 100k PV / day

The main tasks I'm going to work on :
OsCommerce importer (full import, products, attributes, customers, orders)
Automated SEO URL (translate products and categories names into clean URL slugs)
Adding hooks : I don't know the viability of this, but I know hooks are a powerful boost to community development.

Re: First impressions

Posted: Fri Jan 15, 2010 12:34 am
by Malaiac
A few questions :

MySQL schema :
why are tables utf8_unicode and not utf8_general ?
why are tables MyISAM and not InnoDB ? ecommerce generally goes around with the level of strictness that comes with InnoDB and foreign keys constraints.

Is there any hope / way that a hook API (actions and filters) be implemented one day ? or does the general structure of OpenCart prevent such thing ?
(for example, is there any easy way to filter the product description text before display ?)

Re: First impressions

Posted: Fri Jan 15, 2010 1:05 am
by Qphoria
All pages are loaded through the system/engine/controller.php render() function so that is a possible place.
I have a topic on hooks here:

http://forum.opencart.com/viewtopic.php ... oks#p29654

I did create a hook that would change all links to red via the str_replace method mentioned there, but I couldn't think of a lot of applications for it.

Re: First impressions

Posted: Fri Jan 15, 2010 3:04 am
by i2Paq
Malaiac wrote:Hi all,
pardon my english, je suis francais :)
Bienvenue et bonne soir!

Thats all the French I can manage :D

Welcom to our forum and the osCommerce importer you plan to work on sounds great!

I have a heavely modded osCommerce shop and also waited on v3.x, after looking at PrestaShop I focus on OpenCart as this is by way the best I've seen after osCommerce 2.2.

Re: First impressions

Posted: Fri Mar 05, 2010 11:22 pm
by levon
Malaiac wrote:A few questions :
why are tables MyISAM and not InnoDB ? ecommerce generally goes around with the level of strictness that comes with InnoDB and foreign keys constraints.
First of all sorry for my English.
I'm totally agree with Malaiac. Using MyISAM on all tables is unacceptable. I'm new in e-commerce, but have 5 years experience in web development(PHP, JS, MySQL etc.). After trying demo of 15-20 e-commerce frameworks(site templates) I have downloaded 5 of them to have a look on a code. The best was opencart (v1.4.0)! The only one codded in right MVC(L) model. JQuery also a plus. Unfortunately v1.4.0 still has bugs and when I have a look on database to fix one (see bellow) I saw that all tables are MyISAM.
I suggest authors of this very nice project to make one stable realise. And begin from InnoDB tables and foreign keys constraints.

BUG: (It's not official bug report, just to understand importance of foreign keys constraints)
In admin: After adding new GEO zones and using them in shipping methods I can remove GEO zone (without any prompting, that they are in use). Shipping method still works :-?
In shop: After adding new GEO zones and using them in shipping methods new shipping method appears if Country/Region corresponds to new GEO zone. After removing GEO zone. Shipping method still works :-(
In admin: Add new GEO zones and use them in shipping method.
In shop: Shipping method for new zone doesn't work :-( It is not appear :-(

The main idea is if you add/remove/add/remove same thinks many times. Probably you forgot to do it in one of the tables (now I don't know in witch one but will inform in bug trucker after debug).
This bug just an example that if you have foreign keys connections you will never have such bug.

Re: First impressions

Posted: Fri Mar 05, 2010 11:29 pm
by Qphoria
levon wrote: In shop: After removing GEO zone. Shipping method still works :-(
Thats not entirely accurate. I agree there is a bug, but it's a little "feature" that checks if the shipping method session was already set once, then it won't try to reacquire shipping rates unless the cart status changes or address changes. So if you load the shipping page, then go delete the shipping option, and reload the shipping page, it will still show that shipping from the session variable. Only after clicking "update" on the cart page or changing your address will it recheck the shipping rates and then see it is not available.

So you are likely seeing this behavior. And in my mind it's not the best way because it leads to confusion in testing. Might be ok for a live shop but its more of a hack and not something that should be in the core. I've already wrote a bug for this particular "feature" as well.
[/quote]

Re: First impressions

Posted: Sat Mar 06, 2010 12:02 am
by levon
Qphoria wrote:
levon wrote: In shop: After removing GEO zone. Shipping method still works :-(
So if you load the shipping page, then go delete the shipping option, and reload the shipping page, it will still show that shipping from the session variable. Only after clicking "update" on the cart page or changing your address will it recheck the shipping rates and then see it is not available.
Dear Qphoria,
I'm not sure that this topic is a place to discuss about this particular bug ... in any case ... The bug reason is much deeper, not the sessions (I sow that You hold in session sometimes much more than needed :-) ). During my tests, I clear each time cookies and sessions and begin new checkout. (By the way I got also js error "getMethods is not defined" wile changing country).
But I would like to listen comments about database tables (InnoDB). Are you going to make version with revised tables structure (indexes are also not setted as needed)?
Thanks for reply.

Re: First impressions

Posted: Sat Mar 06, 2010 12:07 am
by Qphoria
levon wrote: By the way I got also js error "getMethods is not defined" wile changing country).

yea that was also already reported and fixed. You've come to us at a crossroads of new design. 1.3.2 was the most stable.. then 1.3.4 came out and 1.4.0 changed quite a bit in the template area.. so it hasn't been hammered down to stable yet. There are some project management issues to work through.

levon wrote: But I would like to listen comments about database tables (InnoDB). Are you going to make version with revised tables structure (indexes are also not setted as needed)?
Thanks for reply.
Regarding innoDB, this would probably be best discussed in the Development forum. It has been discussed before. Daniel is the only core developer of OpenCart so only he makes those calls.

Re: First impressions

Posted: Sat Mar 06, 2010 1:04 am
by Daniel
+ of Opencart :
+ very fast (time to first byte under 0.5 sec, full load of front end demo page - not optimized btw - under 8 sec, versus 10 sec for PS)
+ young (more flexible)
+ relatively easy to customize (vs Prestashop)
+ no Smarty (a pita)
How cares about smarty!

- of OpenCart
- MVC. which means useless complexity
Its not complex if you understand it. and offers better flexibilty than a procedurally programmed page.

- young (less features)
OpenCart is not young and is older than prestashop! In fact it has just as many if not more features than prestashop. Just not the same features such as prestashops RMA system. I'm not sure but I don;t think prestashop handles downloads. I could be worng because it didn;t do it when i last looked at it. thats a big missing feature!

- 3 to 6 files to code the smallest module
Well that because of so many layer like language files. all needed.

-- no hooks !! that's a big - , see WP which greatly benefits from the hook system, allowing even junior developers to achieve complex plugins.
you don't have a clue about programming. this is handled by the front controller. opencart does things the right way using pre actions. the front controller is a design pattern and hooks are not. look it up.

- (hook related) no pre coded way to do small things (add an admin menu / submenu, filter the description of products, etc.)
- translation system is file based, I'd much rather have a po/mo translation system, which is error proof, degrades nicely (instead of missing file Fatal Error)
Well thats your stupied opion. maybe when you have developed as many thought out applications as i have then i might listen to you.

Prestashop is structured badly. you can not stucture code well having pages programmed procedurally.

Re: First impressions

Posted: Sat Mar 06, 2010 1:10 am
by Qphoria
Daniel wrote:+ of Opencart :
+ no Smarty (a pita)
How cares about smarty!
I think he was saying that NOT having smarty was a PLUS (good thing)
- (hook related) no pre coded way to do small things (add an admin menu / submenu, filter the description of products, etc.)
- translation system is file based, I'd much rather have a po/mo translation system, which is error proof, degrades nicely (instead of missing file Fatal Error)
Well thats your stupied opion. maybe when you have developed as many thought out applications as i have then i might listen to you.
Well I have to say a hook system is still needed.. even if it uses the preaction design, there needs to be a way to dynamically add into that preaction without editing the index.php file

And the filebased language is ok, but he is right about the missing file Fatal Error. It should use the same design as the template with the fallback to english. I had this in my Improved Language Library, but the changes to the language class broke that. Still, it would be better to degrade things like custom modules back to the included english language than to show a fatal error about a file not being found for their language.

You need to be able to accept some constructive criticism or explain why certain things were done in a sensible way rather than lashing out to everyone. That is the biggest bug of OpenCart.

Firefox is the most popular browser because of their dynamic extension system
Wordpress is the most popular blog because of its plugin system
SMF is the best forum (i don't care what others say) because of their dynamic plugin system.

The goal really is to make something that can be "extended" as you will never make everyone happy with a single cart. But if you make something that can be hooked and extended and improved upon, using the cart as a base, that is the main goal. That will make OpenCart popular and successful. The defensive attitude doesn't help. When 70% of the community asks for the same thing, then we can't all be wrong.

Re: First impressions

Posted: Sat Mar 06, 2010 4:04 am
by joop
Well thats your stupied opion.
Bit of 'sitting on a high horse', your code is good but not that good.

Re: First impressions

Posted: Sun Mar 07, 2010 2:46 am
by tintedpixel
I think Daniel's remarks on this thread are a bit pointed... bad day perhaps? Just remember, no matter how good your Kung-fu is, there is ALWAYS someone who is better.

Re: First impressions

Posted: Mon Mar 08, 2010 9:00 pm
by hottiger
tintedpixel wrote:I think Daniel's remarks on this thread are a bit pointed... bad day perhaps? Just remember, no matter how good your Kung-fu is, there is ALWAYS someone who is better.
It's a shame though as that attitude could scare away potential users and with the way this project is heading my fear is this community will die out.

Re: First impressions

Posted: Mon Mar 08, 2010 9:28 pm
by i2Paq
hottiger wrote:
tintedpixel wrote:I think Daniel's remarks on this thread are a bit pointed... bad day perhaps? Just remember, no matter how good your Kung-fu is, there is ALWAYS someone who is better.
It's a shame though as that attitude could scare away potential users and with the way this project is heading my fear is this community will die out.
I'm always curious when someone says this what he/she thinks what the way is this project is heading and why it will die out...

Re: First impressions

Posted: Mon Mar 08, 2010 10:46 pm
by joop
I'm always curious when someone says this what he/she thinks what the way is this project is heading and why it will die out...
Babelfish ? :D

I think because the momentum seems to has gone and instead of building a stable release Daniel has decided to go for the multi-store option wich is requested by about 0.5% of the OC users.

Have a look at osQuantum.

Re: First impressions

Posted: Mon Mar 08, 2010 10:48 pm
by niuserre
i2Paq wrote:
hottiger wrote:
tintedpixel wrote:I think Daniel's remarks on this thread are a bit pointed... bad day perhaps? Just remember, no matter how good your Kung-fu is, there is ALWAYS someone who is better.
It's a shame though as that attitude could scare away potential users and with the way this project is heading my fear is this community will die out.
I'm always curious when someone says this what he/she thinks what the way is this project is heading and why it will die out...
Because if you don't have faith in the lead developer it's very hard to have faith in the project. People will eventually either go elsewhere or fork the project. And forking often ends badly, but not always (WordPress was a fork).

I like OpenCart but I'm worried.

Re: First impressions

Posted: Mon Mar 08, 2010 10:49 pm
by i2Paq
joop wrote:
I'm always curious when someone says this what he/she thinks what the way is this project is heading and why it will die out...
Babelfish ? :D
Why, you speak Dutch so you understand ;D
I think because the momentum seems to has gone and instead of building a stable release Daniel has decided to go for the multi-store option wich is requested by about 0.5% of the OC users.
I cannot say what the next release will have "in store" (lol), but just wait.
Have a look at osQuantum.
looking everyday, forum/activity is almost death......

Re: First impressions

Posted: Mon Mar 08, 2010 10:52 pm
by i2Paq
niuserre wrote:
Because if you don't have faith in the lead developer it's very hard to have faith in the project. People will eventually either go elsewhere or fork the project. And forking often ends badly, but not always (WordPress was a fork).

I like OpenCart but I'm worried.
I have faith in Daniel and I know that he listen to the advice given by many of us.
He is not like the developer of osCommerce.

Sometimes it takes time to change your ways and let go and except a new route that will lead to a better product but more important; to a better life.

Re: First impressions

Posted: Mon Mar 08, 2010 11:55 pm
by tintedpixel
Not to beat a dead horse, but the whole point of this thread, and something Q mentioned early on is that a good project gets better when intelligent discussion is encouraged. A well developed project is going to attract good developers who will have opinions to share. That is a good thing.

Over the past (wow almost year) I have been following this and various manifestations of this project and I have found that Danial can be curt and somewhat off-putting when someone has feedback that differs from his view. But how many of us take criticism well (even when it is constructive). That is the difference - and what makes a good leader great.