My favorite Movie + Favorite E-Commerce platform: Just having some fun with these, what would be your eight rules of Magento club?
- First rule of Magento Club is you do not touch core.
- Second rule you DO NOT touch core!
- Third rule when in doubt, flush/disable all caches and rebuild indexes.
- Fourth rule do not just copy/pasta entire design packages.
- Fifth rule keep your namespaces and rewrites clean, use observers if possible.
- Sixth rule always be attentive to performance-critical code, avoid useless computations inside loops.
- Seventh rule development will go on for as long as it has to, try to learn and understand the features of the framework, and use them correctly.
- Eighth rule if this your first time modifying Magento, you have to forget everything else.
More details from Magento Space Monkeys, brought to you by Project Magehem:
First and foremost get more familiar with ZendFramework and PHP (obviously) if you’re not already.
Next like others mentioned Alan Storm has put together quite a bit of information for you to soak up. He also has written both the book “No Frills Magento Layout” Edwin van Maastrigt mentioned as well as a multi-part Knowledge Base Getting Started Developers article, Which I believe is probably the best place to start amongst anywhere else if you are already familiar with ZF/PHP.
There are many Design Patterns that Magento uses and it definitely helps to have some in-depth knowledge into these. There is a good list of these here on StackOverflow.
You will also need a deep understanding of EAV (Entity Attribute Value) Data Model.
It also helps to have an understanding of how the end users work with Magento as well, familiarizing yourself with how the it operates both on the front end and back end will help you in the long run as well. Magento does offer a “Users Guide” for general purpose use.
Books (for me at least) tend to be on the “healing edge” and by that I mean they are usually about 3 months behind latest releases and may not always be on the “bleeding edge” of current releases and changes. Lots of books for 1.4, for example, and 1.5 is already out in the fray.
To answer your initial question: there are official Video Developer Trainings from Magento Inc, currently for free, that are worth a good look.
In a nutshell there is a lot of inside, that is Magento and don’t expect to pick it up over night unless; being already familiar with a lot of design patterns and data models would be the ideal candidates to get up to speed with using Magento. At times though it can still throw you for a loop. I have a massive amount of Bookmarks and still keep finding new things, with that in mind…
A few authoritative names to look for both on StackOverflow and else where would be: Alan Storm, Inchoo, Branko Ajzele, Colin Mollenhour, Ashley Schroder, Unirgy (Boris Gurvich), Clockworkgeek, Johnathan Day, Joseph Mastey, Fooman, and countless others on StackOverflow.
Saw this article today, and haven’t posted up here in awhile, thought I would share the article and my comments (currently pending) here for others as well.
While I agree with most of the article, having used both systems extensively I wanted to share a few of my own personal opinions on X-Cart and Magento.
- Varian is now Magento, Inc. which is now owned by Ebay.
- X-Cart is NOT OOP and is VERY difficult to follow an upgrade path when new releases come out, this was my biggest reason for switching to Magento after having many Clients with X-Cart and spending countless hours just to upgrade a client to the latest X-Cart release.
- Magento is a very complex system (almost overly engineered) but after spending enough time with it, it starts to make sense why this is the case, and how its easy to rapid prototype client requested features without FUBAR’ing the upgrade path.
- You are also correct on Magento being slow, it uses a huge amount of abstraction layers, ORM, EAV data models to make it easy to extend both on the Client side and Programmers side. This is where I would say X-Cart wins because of its procedural code if speed is your only consideration. However, for example, adding a new multi-option drop down on a product is far more cumbersome in X-Cart than in Magento.
- I would disagree on the documentation for Magento, there forums aren’t very helpful however StackOverflow and people like Alan Storm, Inchoo, etc. really help in understanding Magento easier.
- Smarty templates are just overhead IMO, simply doing PHP wrapped in HTML like Magento does makes sense from a performance stand point, most designers/FEDs are going to have to learn one or the other either way and it doesn’t separate business logic from presentation very well either.
Conclusion: I am by no means saying X-Cart is a horrible E-Commerce package, it works very well and has/had served many of my clients well. However if a client doesn’t have many new features, doesn’t care about upgrade paths and wants a cheap reliable hosting that is responsive. X-Cart is the way to go. If you are wanting a robust E-Commerce system that can grow with your business easily, and you have lots of time, money and programming resource at your disposal Magento is the best choice. I know that statement sounds like Magento is just a money/time waster. It is not as your investing in your companies future more so with Magento than, X-Cart. That being said, for small shops that want a similar route to X-Cart now have the Magento Go! option as an affordable SaaS solution to get an E-Commerce store up and running without having hardly any programming, design and/or e-commerce experience.
the bad(maybe?) news.
As everyone may know for the most part, eBay now owns Magento. (at least the details are still being worked out, currently.)
Overall I’ve seen some mixed feelings in regards to this, I myself am pretty up in the air; if it’s a good or bad thing, and I think the only thing that will tell is time.
With all the talk, I’m suspecting a fork or two will show up of Magento granted if the OSL will allow for such which I’m pretty sure it will, long as its made freely available:
Magento Community to Enterprise version when its open source?
With that said, during the developers paradise there was mention that eBay’s X.Commerce package would in fact be “Open Source”.
Inchoo on the acquisition
[warning]…when deep-space exploitation ramps up, it will probably be the megatonic corporations that discover all the new planets and map them. The IBM Stellar Sphere. The Philip Morris Galaxy. Planet Denny’s. Every planet will take on the corporate identity of whoever rapes it first. Budweiser World. ~Chuck Palahniuk, Fight Club, Chapter 23[/warning]
the good news.
The most interesting news was information about a 2.0 version of Magento, I’m going to assume this will be under the new name X.Commerce with eBay ownership. It will NOT be backward compatible with 1.0 and is NOT a rewrite but a refactoring. It is due to release around the middle/end of this year.
The list of new shinny exciting things:
- eregi_replace(“^(.*).js$”,”prototype.js”,”jQuery.js”); // No more Prototype!
- PHP5.3 Native.
- Simpler file structure, no more app/etc/modules I believe.
- GUI Design Editor (WYSIWYG?)
- Class Mapping: No more searching 3 directories of code pools.
- EAV can be optional (for performance I presume).
- A deeper theme fallback support.
- Unit Testing, Selenium, TDD Support.
- Staging before applying any core updates/modules.
- Better server side validation.
- More database options: Oracle, MSSQL, PostgreSQL, etc.
- No more Magic getter/setters.
- More API options: RPC/REST
- Name space collisions detection with advice on how to resolve dependencies.
Magento 2 (in German)
So I’ve been doing some reading up and researching on Magento lately, and found some links to articles and tools I think may be useful, so I’m sharing them with everyone. Enjoy!
Credits: A lot of these projects and articles are courtesy of these well known names in the Magento Community: Colin Mollenhour, Ashley Schroder, Alan Storm and Unirgy (Boris Gurvich).
Creates symlinks between a mapped out file similar to a Makefile in Linux compiling that will create links where they need to be installed from the CLI via symlink making it easy to deploy and uninstall modules in Magento without touching the Core. It’s also Git friendly.
Module Manager for when svn:externals just doesn’t cut it:
How Module Manager can be used instead of svn:externals.
Magento Debug tool similar to Alan Storms ecommerce Bug:
Debug Tool with some nifty features –
requires modman to install at the moment.
Now Available on Magento Connect.
MongoDB abstraction layer for Magento:
MongoDB is an open source Database that’s high performance, schema-free, document-oriented, with JSON encoded outputs. This is an abstraction layer for using MongoDB with Magento instead of MySQL.
uScaffold rapid prototyping modules:
Scaffolding is pretty common amongst Rails developers it’s a means of building a skeleton shell of a module based on some parameters.
Magento Design Patterns:
A list of design patterns that Magento currently utilizes:
Alan storms Configuration Lint:
XML Configuration verification script, does a “light” job and isn’t extensive.
Magentos API with SOAP:
Quick read article to get you using Magentos API via SOAP, with some details on WHERE clauses, setup, etc.
CSS3 + HTML5 Boiler Plate for Magento:
HTML5 Boiler Plate on CSS3 For Magento, starting point for Magento Themes.
Speed testing for Magento with Seige:
Uses Seige to test a sites Magento speed (requires sitemap.xml)
Magento Development environments & deployment Ideas/tips:
The comments Kristof Fooman and Colin make are also good to read.