Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
I'm working on Magento 1.9.3.7 and I want to understand if is a good idea to migrate to Magento 2 or not.
I summarized this differences :
Magento 2.0 is faster then Magento 1.x
Some significant changes in the structure of directory which reduces
the complexity of structure
New technologies and latest versions (example Php, Jquery etc)
Allows developer to setup automated test easily
Many features are now integrate to Magento 2
Improvements to checkout and other stuff
My questions:
There is any index to look up to decide when is a good moment to migrate to Magento 2?
There are any hidden issue I have to know before?
Someone ever try this migration? If yes do you see this big improvement?
All my modules (third parts & hand-written) will be obsolete?
Why Magento 1.x is still releasing new security updates if there is Magento 2?
I hope to listen to different experencies or solution to understand if is the right way.
Please if I said something wrong tell me.
Docs on Internet (differences) : https://gauge.agency/articles/the-differences-between-magento-1-and-magento-2-and-which-is-better/
Having worked extensively with both platform, I have to say that Magento Inc's reasons for upgrading to m2 are just silly.
Magento 2.0 is faster then Magento 1.x
This is not really true, right? Reasons why they say that M2 is faster is that it supports php 7.x and runs Varnish. To this, I say, so what? M1 does as well.
Community efforts like this one work like a charm: https://github.com/Inchoo/Inchoo_PHP7 (I'm in no way affiliated with Inchoo).
Edit: This is now even less true since M1 (as of 1.9.4) supports 7.2 without third party modules.
On the other side M2 has a semi working asset precompiling system, which keeps causing issues on every turn. Further more, it slows the development to such degree that M1 feels like a blazing fast solution.
(If you think that this should be an outrageous exaggeration, which it should probably be, but sadly isn't, check out some of the GH issues.
Some significant changes in the structure of directory which reduces the complexity of structure
This was a great idea, but the actual result is terrible. How the hell did M2 end up with more configuration and more XMLs? What's with the XML heavy UI components?
Is this the example of the simplified module structure – https://github.com/magento/magento2/tree/2.3-develop/app/code/Magento/Catalog?
Yeah sure, M1 is not great here, but M2 did not improve here at all, just check out the amount of the xmls in a single module – https://github.com/magento/magento2/tree/2.3-develop/app/code/Magento/Catalog/etc
New technologies and latest versions (example Php, jQuery etc)
Sure, and stuff like ZF1, KnockoutJS and Fotorama.
Allows developer to setup automated test easily
I agree here. M2 has a proper support for automated testing, while M1 has almost none.
Many features are now integrate to Magento 2
I'm not sure what exactly you wanted to say here, but the problem I had is that they simply migrated features from M1 to M2, didn't improve them at all, slapped new interface on top of it and call it new platform.
While there's no problem here, I feel like this was a huge opportunity to improve the system, but they dropped the ball.
Improvements to checkout and other stuff
I disagree, checkout is now not as nearly flexible as it was. Working with KnockoutJs and UI Components is the last thing you want to do.
I'm fine with it being quirky and all, but the flexibility and possibility to improve checkout per particular shop is nowhere near M1.
There is any index to look up to decide when is a good moment to migrate to Magento 2?
Most of the Magento agencies are using this to promote their services and offer migrations to M2 as a way to make extra profit. So you'll always see companies talking about performance and feature improvements which aren't there.
This is the only case where someone says something differently: https://amasty.com/blog/magento-1-vs-magento-2-performance-comparison-speed-test-results/ (I'm in no way affiliated with Amasty).
There are any hidden issue I have to know before?
Platform is not stable enough, major bugs are still present. Just do a quick browse through issue reports on GH.
Why Magento 1.x is still releasing new security updates if there is Magento 2?
There are lots of businesses that will never migrate to M2. They have no option here.
Lastly, I want to say that I'm sorry for all the hate in this answer, really wasn't my intention. :D
There is any index to look up to decide when is a good moment to
migrate to Magento 2?
It depends on individual store environment (Big stores with own ESB may use M2 as storefront, small ones will have to wait until their ERP Provider releases a plugin or connector)
There are any hidden issue I have to know before?
M2 code architecture is nothing like M1. MVC has been dropped in favour of MVVM
Someone ever try this migration? If yes do you see this big
improvement?
yes. FPC has been improved alot and general ttfb response is a way better
All my modules (third parts & hand-written) will be obsolete?
yes, due different design patterns.
Why Magento 1.x is still releasing new security updates if there is
Magento 2?
Magento inc. has promised ongoing support for M1. There are too many enterprise customers I guess.
I have tried the Magento 1 to Magento 2 migration a few times before. But for me, there is only one reason I can think that stands out, to do such a major overhaul on a website, and that is security,
You should not just upgrade to Magento 2, but specifically 2.3 as it has a lot more invested in security and less prone to malware attacks. It also has new features that did not exist in Magento 2.2.
If you are still on Magento 1, then in theory, it's only a matter of time before malware finds your site.
A good practice would be to have a fork of this repository https://github.com/magento/magento2 and bring the latest fixes into your code periodically. This would of course give you another reason to upgrade to the latest version since Magento 1 is no longer maintained.
You will have to reproduce all of your modules for Magento 2, there is absolutely no other way, And if you use the Data Migration tool, you should have an easy time bringing the data over. And the next point is going to be to create the theme for your site once more, there is no easy way to bring your theme over from M1 either.
Good luck my friend =D
Related
A partner has a website that needs to be rebuild from scratch as it simply can't cope with the large number of visitors (currently build using SilverStripe). The site should be able to deal with 5 million or more members using 20+ languages.
We were considering using CodeIgniter or YII because from research both appear to be excellent performers. However several people advised that we should consider the latest version of Joomla for this. For small websites we are happy to use Joomla but for a heavy load website our feeling says that we have to stay away from that. We are however not able to find any comparison between both from a performance point of view but we do require good arguments why Joomla would or would not at all be a good candidate for this. One comparison can be found here: http://vschart.com/compare/yii/vs/joomla/vs/codeigniter however this doens't tell me what to expect when the number of visitors is really high.
Can some advise how Joomla compares to CodeIngitor or YII considering that the site will receive a very high number of vistors and will use a 20+ languages (for silverstripe we build a translator module as the build in CMS was not usefull when using so many translators).
When you're dealing with a site of that scale, it's probably best not to shift to Joomla. Joomla can handle a fair bit, but I'd suggest that it would be far easier to have a Joomla site that large when the site has been adapting as the traffic increases.
Part of what makes your question hard to answer is that we don't know much about what your current site does.
Is it mainly a CMS? If so, Drupal may be a decent fit for you.
Is it a custom web application? It sounds like it could be, based on the number of translations you're handling.
Is it somewhere in-between? This could also be what you're dealing with.
If you're looking at either of the bottom two options, yes, shifting away from SilverStripe (but not to Joomla) sounds like it might be a good thing.
Given the volume of traffic you're dealing with, it sounds like you probably already have a revenue stream and a development team. In that case, it might be worth having a few of your developers play with CodeIgniter and Yii and see what they think.
I wrote up a detailed answer to a question about what type of framework to choose a while ago, which you can look over here:
https://stackoverflow.com/questions/10095906/yii-or-zend-or-other-frameworks-under-the-following-requirements/10115678#10115678
I'm a Yii fan, having checked out a bunch of other frameworks. Regardless of which framework you use, I'd like to offer one piece of advice that I've found key on all projects I've worked on.
You want to work with objects, not data arrays
The reason for the above is that your models (and the objects they produce) can end up having your business logic built into them. Doing this makes life far, far easier in the long run. A great book on the subject, aimed at manager's and quite high-level (there is no code, although there might be a few lines of psuedo-code), is Object Technology: A Manager's Guide. I'd highly recommend it.
Framework thoughts
CakePHP
I started dabbling with CakePHP until I found out it didn't hand back objects (just arrays), at which point I ran screaming.
CodeIgniter
Looking at what CodeIgniter has for database model support, I think you would quickly hit its limitations with a site of your size, so would recommend against it. And having EllisLabs deciding to leave CodeIgniter behind (see their website for more details) is not a good sign. The signs say stay away.
Of the PHP frameworks out there, these are the ones I hear the most things about:
Symfony 2
Yii (disclosure: I work with this one daily)
Laravel
Symfony
From what I can see of it, has been a huge stimulus to the PHP community and many best practices have come out of that community. Unit testing, Composer, pushes for PSR-1/2, the ideal of modularity of code (some of their core code is ending up in Drupal 8) are all great things that have spurred the PHP community into writing code that's better than spaghetti code. With that said, it feels kind of heavy and enterprise-y and looked to have a pretty heavy learning curve.
Yii
When I was looking for a framework, I had a lot of legacy code that needed migration. Yii's way of handling things, although opinionated at times, has done a lot for me as far as exposing me to good practices that are used heavily on the web. Highly recommended as well.
Laravel
When I was looking for a framework (2+ years ago), Laravel didn't exist. It's apparently quite slick and cutting edge (haven't looked at it yet, I've been busy landing new work regularly in the Yii world), but I am interested in dabbling with it. That said, here's a thoughtful article about Laravel and couple of considerations that I've wondered about.
The main developer, Taylor Ortwell, seemed to be a dominant force. That's a great thing while he's making money doing this and enjoying it. Not sure what would happen to the framework if he decided to do something else.
The speed of development on the framework is an awesome thing and means that all sorts of creative juices are flowing. It's a great place to go look at cool new things. That said, you're going to want your developers to be able to easily find information about the framework they're working with, which in 3-6 months may be severely out of date in the Laravel community. The Ruby on Rails community has the same type of good/bad problem when I've looked around over there; there is so much information about the new stuff that sometimes it's hard to find information about the version of the framework you're dealing with.
That said, there are lots of cool choices out there :-) I should probably wrap up, as this has gone on far longer than I'd intended. Let us know what you end up deciding and how it ends up going.
How big is the site really? Bigger than joomla.org?
Are you talking about big in terms of the amount of content in the database or in terms of the number of visitors.
Joomla really does not have problems with scale unless you are on an older version of MySQL in which case it slows down.
It depends on what kind of application you want.
If you want a CMS, Joomla is the way to go. Because this is what it was build for.
If you are about to create a real "custom" application Yii/Codeigniter is the way to go. (This is what yii was build for)
Regarding performance, from my expericnece Yii is a lot faster, because it comes with way less overhead. You can build the application just as you need it.
Well it's like compare green and salty. Really joomla is CMS, and Yii and CI are frameworks. If you considering make highload on joomla - it's not your job.
If you have high frontend load - maybe watch on js frameworks? Yii+backbone.js or ext.js for frontend is awesome, since you'll move alot to clientside.
CI is dead. I honestly like it, but its dead already. No extensions, no namespaces in future, nothing.
I can say + of Yii:
*faster then CI;
*have great documentation and wiki articles;
*have great and active community and developers;
What else i can add? Active record is good for small databases, but not usable for highloads. Also as i said on yii you can easily make js framework+yii composition. Yii have good caching system. Long time support of stable versions.
I personally manage highload now, but its more backend/api/database. 150+ thousands database records daily, 300+ thousands requests to api, 50 milions records data table. It works like a clock for more then 2 months already.
Choose what you like, or write on native php if its really big system - best choice from practice.
Joomla is an award-winning content management system (CMS), which
enables you to build Web sites and powerful online applications. Many
aspects, including its ease-of-use and extensibility, have made Joomla
the most popular Web site software available. Best of all, Joomla is
an open source solution that is freely available to everyone.
CodeIgniter is an Application Development Framework - a toolkit - for
people who build web sites using PHP. Its goal is to enable you to
develop projects much faster than you could if you were writing code
from scratch, by providing a rich set of libraries for commonly needed
tasks, as well as a simple interface and logical structure to access
these libraries. CodeIgniter lets you creatively focus on your project
by minimizing the amount of code needed for a given task.
Yii is a free, open-source Web application development framework
written in PHP5 that promotes clean, DRY design and encourages rapid
development. It works to streamline your application development and
helps to ensure an extremely efficient, extensible, and maintainable
end product.
Joomla can't compare with CodeIgniter / Yii. But, If you need any CMS for your project, you can use Joomla (or maybe Wordpress). If you want to create any web application, then you need to decide for any PHP Framework. I use CodeIgniter for years, and I like it. They have a huge community, and the best user guide. Yii also has a great community and a lot of features. So, you can decide depending on you demand.
I know Joomla 1.6 is now released, but curious if there will be an issue creating a website this early after the release. I am finding only a small number of available 1.6 templates. As I understand now, 1.5 components, extensions, etc. are not compatible and need to be upgraded. Am I going to run into a problem of not having a good selection of addons?
Should I use 1.5 now and wait til better support is available before moving to 1.6?
It really depends on what you are trying to do. The number of 1.6 ready extensions is growing quickly, there are over 400 of them now in just 3 weeks. Every big dev that I know if is working on updates for the most popular extensions.
If you do not have any special needs, then 1.6 is a very good product. I think it is much more polished than 1.5 was at release. There was a ton more beta testing and a much better foundation of code to work on this time.
I don't think you will see much 1.6 being used by pros just yet, because it is an unknown - there could be major problems that pop up once it gets hammered a little harder on live sites. There are also some extensions missing that will stop quite a few people - k2 being one of the notables.
This question is something we've thought over a lot as we've got several sites in the build/planning stages right now that will need to be upgraded within 18 months if they are built on 1.5. However, we've opted to wait a little while longer until there is a better picture of how solid this code is and when 1.7 will be released. It is entirely possible that any sites built in the next 2-3 months will skip 1.6 and go right to 1.7 when it comes time to upgrade.
The upgrade process is looking pretty promising so it is very possible that it will be a relatively painless process to upgrade a couple months from now.
I vote stay with 1.5 unless you really need the ACL.
I started a small web project and used Drupal to build it. So far, so good: you can quickly set up a nice CMS oriented site, add social features via modules, and you have an extensive API to do the customizations in a nicely architected platform.
The problem comes now: the site is growing beyond what was originally planned for and I find myself in the situation of seriously starting write code for it. While I gained a new respect for PHP thanks to the Drupal project, I want to do it in Ruby. I'll feel more confortable, it'll be easier to maintain later and I can reuse it in other Ruby/Rails apps. Over time I suppose I'll rewrite the existing parts in Drupal in Ruby.
Based on this, the question is: has anyone integrated both (both a success or failure story)? It's quite a big decision, and I just can't find info about anyone who has done it on Google.
Sorry to be negative. This doesn't sound like a good idea to me.
I'll feel more confortable, it'll be easier to maintain later for me and I can reuse it in other Ruby/Rails apps.
I seriously doubt that. It will probably be more difficult to maintain/reuse in the future because of the extra code you will need to write to "integrate" Drupal and Ruby. The more the code, the more the likelihood of bugs. I'm assuming you're going to link the two together using REST/webservices/similar technology -- if that is the case you are writing so much extra code! Gluing the front end elements (which have to be in Drupal) with the functional elements (probably in Ruby) justs sounds so complicated to me.
I'm guessing its only you who is going to be maintaining the code. What if its someone else? Will you easily be able to find someone who has two skill sets (Ruby + Drupal) in your area/budget?
What about giving back to the Drupal community? If your code becomes something useful and its this big mess of Drupal + Ruby you really can't put it up on Drupal.org for others to build, improve and test.
I suggest two options
Use Drupal only.
Sounds like you're in love with Ruby or at any rate just too used to it. In that case: Find a Ruby based CMS! (Sorry I don't know any!)
To me its a classic dilemma: Should you do Drupal Custom Module development which will mean more short term pain cause you'll be out of your comfort zone.... or should you integrate Ruby + Drupal which will be easier in the short run but very painful in the long.
I would choose short term pain :-)
I think the term used to describe your idea is Polyglot Programming: http://memeagora.blogspot.com/2006/12/polyglot-programming.html
One of my criticisms of Drupal is that everything is in Drupal or PHP. Drush is an exception of course but it would be nice to see some development tools that don't use the Drupal stack exclusively. I have used Apache Ant on Drupal with some success (before the days of Drush).
I've also worked on a Drupal project that provided Software as a Service to a Java front end. That didn't work too well but the Drupal Services project has enjoyed some renewed development since then. I've also worked on several Drupal projects that interface with flash front ends (ugg!), google maps and mobile phone gadgets.
Are you thinking of a Service Orientated Architecture? If you're comfortable with that then you could be on the write track to writing truly agile software. I'd like to hear how you go!
However, if your only justification is that your feel more comfortable in Ruby (and I can see why) then, you should probably get yourself out of your comfort zone.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
What is a best way to organize many software development projects, interaction with clients, project documentation, sources, emails, knowledge, time tracking, issue and features tracking, support for releases and versions etc. for a small company?
For me (and I believe for many others) it is obvious that it must be some sort of web-based solutions. It would be great if it could provide an interface for iPhone (if not, it is also OK).
Important thing: it must be hosted on our servers, so PHP + MySQL is the best platform so far.
I have found the following system to consider:
http://www.activecollab.com/ (but I didn't found issue tracking as well as support for releases and versions, so it is not the best match for software development company)
http://www.mantisbt.org/ (Great tool, but no project planing...)
http://www.twproject.com/ (didn't try yet, but it has very strange interface)
But none of them is a 100% solution for me.
It also should (but not must) support SCRUM
We have about 25 people in our team and about 50 from client side. At once we run about 3-7 projects (some in dev. phase, some in support).
So, my questions: does anybody knows any good web-based system that gives everything software development company needs? I believe this information will be useful for many of us.
I would recommend FogBugz
They have a very interesting (admittedly not everyone's cup of tea) scheduling system and is apparently supporting scrum.
Their support for release management is something i'm particularly fond of, but i should also say that i have very little experience of other similar systems.
Another feature that I like is the ability to link different e-mail accounts as well as pure HTML forms to different projects.
Oh, and it is not a MySQL/PHP solution.
Some of the features are:
Issue tracking
Project planning
Scheduling
Customer support
Wiki
References:
Scrum and Fogbugz / Fogbugz questions / FogBugz Knowledge Exchange
I think it really depends on your company size. I used activecollab for a while but it never really convinced me and then they made it commercial anyway. There is an open source fork of it called ProjectPier.
Even if it is not MySQL + PHP but Ruby On Rails Redmine convinced me the most from all tools I tried (and installing the ruby module into apache is a question of 5 minutes). It is simpel and yet has anything I need (including Eclipse Mylyn, SCM integration, E-Mail Notification and time tracking). With a little RoR knowledge it is easily customizable, too.
The most popular Open Source sollution is probably Trac. It is written in Python, so it is not a PHP either.
But maybe it makes sense to consider a non PHP sollution. I didn't find any PHP open source tool that had the functionality and simplicity of Redmine or Trac. If you don't mind a hosted sollution Basecamp is probably the first address to turn to (never tried it though).
Trac with Agilo plugin might be a good option.
Here is link for Trac pluigns, some category are:
Code Documentation
User feedback and discussions
For another pespective - having used many of the above solutions, and liking them very much for bug tracking, wiki documentation and tracking information - I tend to move towards keeping much of my project "meta-data" (summary information pulling together wiki, bugs, schedules, communication) in spreadsheets now.
For those now climbing onto the top rope of the ring preparing for a takedown, here's why... I come from a programming background, and one of the best books I read early in my career was The Pragmatic Programmer. One of the tenets they preach is finding a fundamental editor that you like, and get good with it (for various Very Good Reasons). After trying (frustratingly) to port and adapt my PM/Dev Management approach multiple times to multiple systems, I've extrapolated that Pragmatic tooling philosophy to the product/project management world I now inhabit. To stretch the metaphor, my editor is now Excel.
I can't guarantee that for any company I work with, they have "Software Project Management xyz" or "Bug Tracking System abc" with the proper plugins - but I can be darn well sure they have Excel or some variant available. I know if I get ninja-like with that tool, I can continue to use it - and focus on the project, not the tools.
This spreadsheet approach comes with some caveats:
Excel done poorly can suck. We've all seen that. Watch for bloat and stupidity.
Keep the bugs in the bug tracking system, the wiki stuff in the wiki. The spreadsheet is meant to pull this stuff together, not replace it.
Keep it readable. Don't stuff everything in just because you can. Summary sheets are good.
Try to standardize your templates and macros meaningfully for tasks and information, to maximize reuse over time and projects. Just like good programming.
Back it up - use a document management system if you can. This approach isn't in the cloud or hosted centrally by default, so be aware of that.
Have you tried Assembla? They've recently released a new product called Portfolio which is great if you have to manage multiple projects + you get free clients! :)
You might like to consider http://targetprocess.com/ We use that in my current job and it works pretty well, from a developer point of view. I'm unsure as to whether it supports your installation requirements, however.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I want to find an ecommerce solution for my little shop. My friend tells me that Prestashop is very easy to use and develop modules for, but some say Magento is better. Can anybody tell me which is better for developing modules and why?
Having looked under the covers of both of these beasts I can't say that I actually like either of them as they're both rather ugly when you pop the bonnet and something like OpenCart is actually a much nice and easier to work with solution. However, from a feature perspective OpenCart is nowhere near either Magento or PrestaShop and unlike PrestaShop it doesn't have a team of developers behind it. However having said that it is much easier to understand and modify for anyone with a basic knowledge of OO PHP. It is much better structured. PrestaShop is actually a bit ugly under the covers and CSCart (which is an open source, but not free alternative) may also be a viable solution as it only costs like $300 so not that much. I'd have to say I'd personally go for either PrestaShop or CSCart as they do have a lot more features than OpenCart and at the same time also don't cost anywhere near Magento to setup and run. Magento is an absolute nightmare if you're looking to change anything even if you really know what you're doing... Too many layers.
Another cart I would suggest to anyone who isn't fussed about technology is nopCommerce. It's a ASP.NET based shopping cart and it's very well architected and full of features. It is also very easy to modify for anyone with ASP.NET experience.
I fully agree with the opinion that MAGENTO is to "heavy" and consumes too much CPU and memory. If you have your own dedicated server you may try MAGENTO.
But if you can afford shared hosting only use lightweight PRESTASHOP. Much shoppers do not need complicated functionalities provided by MAGENTO and therefore don't like it. More doesn't always mean better - sometimes simpler means better.
Moreover there is large set of PRESTASHOP extensions available free and commercial ones. so every shop owner may choose what he needs and wants. Every potential market gap is filled immediately e.g. if somebody noticed there is no fast checkout option in the guest mode buying. This kind of extension appears immediately on the market.
I haven't used Prestashop but I have recently deployed a Magento store. As others have said, I wouldn't suggest it for small, simple stores. Also, if you are on an economy server, you're likely to have sluggish page loads.
The good news is that (after a steep learning curve), it's incredibly flexible and powerful. I personally think the templating system is great.
Magento is S L O W. It has a very specific list of server requirements that have to be met, and even then it may not work 100%.
Also, using Magento on a shared hosting environment can be VERY insecure as Magento likes to have things writable on the file system. If your hosting company does not have iron clad security another user on that system can make changes in those writeable areas.
As far as code quality, I'd say it's pretty good. It's also more complicated than it needs to be. They completely ignored the K.I.S.S. principle (Keep It Simple, Silly).
To sum up, Magento is good if you are interested in an expensive server and complex development. If you want straight forward, it's not for you.
Magento is more polished, but also a beast to modify, in my experience. After using Magento for a few shops, we switched to Prestashop and are much happier. It took a bit more customization up front (French-based development left some quirks in the address forms, for example), but it is much, much simpler to wrap your brain around and to develop custom modules.
I am not a programmer, so I am confined to noob-like needs. At first I tried Magento, and found it to be difficult. It also "crashed" (not sure what word to use) a couple times, the last time beyond something I could figure out. I began to wonder if the entire thing was created just to get me to get in so deep that I'd need pro support to fix it when in a pinch.
So as I searched the internet looking for a decent alternative, I stumbled upon PrestaShop. I gave it a shot, since my Magento site was still RIP. Found it to be much easier to use, and I had a shop up and running (STILL up and running) in a day.
So I'm not sure what it all means, but hands down I liked PrestaShop better. I did like the options to create multiple shopping experiences within Magento, but I figure I can just use multiple PrestaShop installs to accomplish the same thing. Either way I'd have to customize 'em, anyway.
So that's my two cents, for what it's worth. Hope it helps someone.
Magento is a very complex solution for large shops that require good hardware base to handle more than 500 products. Although even though there is a lot of resources to start with Magento.
I have personally found out that building themes is really easy once you find your way around few annoying things like XML layout dependencies (there is barely anything documented on XML, which is the base for making good themes for Magento) and objects in PHP (some functions and data is not accessible from certain parts of the template just because).
I'm very comfortable with working and writing my own apps in OO PHP but stuff that Magento pulls off sometimes is really annoying and also directory structure and the way themes are being handled is awkward...
On the other hand, PrestaShop is fast (after few tweaks), but still requires some work in the back-end. I am developing a lot of back-end modules to help people get the most out of this system as it's worth it. Plus the community is growing and developers are fixing everything they can.
One more thing: writing both, back-end and front-end modules for Prestashop is incredibly easy, plus using SMARTY for templates is a good choice.
Edit: Magento is very easy to break during or after deployment (especially between localhost and a hosted space) and maintenance in SVN might be a pain for inexperienced devs.
I tried both, first I use magento, which is powerful but also very require a good php setting for the server.
prestashop is more easy to use, if you are small store you may choose prestashop.
Magento is a very complete solution in order to have a big shop, with more than 500 products.
But, for newbies, it's very difficult to load and modify it.
Today, I have a website on magento with more than 20,000 products, and we still have issues.
It very difficult to configure it, and without a nice optimization, you will have very slowly website.
I advise you less than 300 products to use prestashop.
Like you, i am NOT a programmer but a store owner. So i hope my view point helps you, i have used both PrestaShop and Magento.
Magento i didn't like, boat ware!
Prestashop is good, pretty templates but the good modules are not free and to get an online shop with the features you need can end up costing 1000s
I also use Zen Cart, while it has the worlds ugliest standard template, if your CSS knowledge is average you can make it look pretty much like anything you want. It has more features built in than the Magento £11k pa has and all modules on the site are free and also a better community too as the forums are open source focused.
Hope it helps.
PrestaShop is your best bet. The only problem with PrestaShop is that uses smarty template engine and rather than write clean PHP without the need of loops etc, in smarty they have made it a very great deal of effort for the average person to theme.
I will stand behind PrestaShop 100 percent if they get rid of smarty and implement a simpler templating system such as a main html file with includes that you can just embed PHP template tags into.
If it is for a 'little' shop don't bother using magento.
It's now getting to the point that PrestaShop has a lot more features than the free version of Magento, so I would if you want to spend thousands a year to get the best, get Magento. If you want a great community which releases all sorts of modules and themes for free (along with a bunch of great paid ones), PrestaShop is the way to go.
One big thing that I want to do is give people vouchers/coupons, so if I meet them or sell them something, they can use the coupon on another purchase. It's built into PrestaShop, but with Magento you need to give them a lot of money in order to use that feature. Albeit you get a lot of features for a lot of money, but for a lot of small businesses, it is a lot cheaper to use PrestaShop and pay professionals to work on it and pay for some modules than shell out a lot of money every single year to Magento.
Oh yeah, when you pay for Magento, you are only getting a one-year license. I was really into Magento until I found this out, now I don't give a damn about the company or it's faux open-source project that they have swept underneath the carpet.
I used Prestashop, it is really good one. As an programmer can customize and make required changes in it. Also Prestashop having good modules which are available for free.