Magento Lite experiment

Featured Image

No, it’s not April Fools’ Day, it’s November, no Inchoo pranks. We played with something new this time. You all heard that Magento is modular platform a hundred times. It just needs a little push sometimes, so we pushed it πŸ™‚ First of all ..

Don’t use in production environments, this is only an experiment!

We wanted to show what can be done and how great Magento really is. We don’t have any plans other than use some of the code presented here for our custom projects and learning purposes, so no updates guaranteed.

About

Magento Lite is extension that compensates module dependency and makes Magento truly modular.
By default it fully disables over 35 default Magento modules, there are over 120 DB tables less and over 2000 files can be safely deleted from Magento.

Any single disabled module can be enabled and restored again.

It removes “system” flag from most not needed attributes and creates optional Lite product attribute set.
It hides non-active modules in “Disable Modules Output”.
It optionally hides Recurrent Billing, Billing Agreements, Related, Upsell, Crosssell products from system (WIP).

Goal

To have only basic e-commerce functionalities like catalog, cart, checkout, etc. in Magento.
To have fully upgradable platform ideal for custom projects and learning purposes.

Compatibility

Magento CE >= 1.6.0.0. Tested on 1.6.0.0 and 1.6.1.0.

Instalation

Download Magento and unpack, copy/paste Weiler_Lite module in it, install Magento.

It’s tested only on fresh/clean installations. In theory it should work on already set store, but then database has unneeded tables and attributes since this module doesn’t remove them and probably never will. It’s not tested with sample data, but it probably works.

To enable any disabled module edit app/etc/modules/Weiler_Lite.xml and set its <active> to true.

Notes

Mage_CatalogRule and Mage_Rule can also be safely disabled/removed, but there is no way to do that without touching Mage_All.xml since there is no way to rewrite <depends> definitions. There is Mage_All.xml.lite file if someone wants to experiment.

Mage_Dataflow can also be disabled this way, but that module shouldn’t be deleted since Eav is extending few classes from there.

I also wanted to disable Mage_Reports and Mage_Log but 30% of Magento is broken then.

Rss, Weee, Wishlist and GiftMessage helpers are rewritten to avoid changing tons of theme phtml files.
It was just easier this way, method is highly questionable. Otherwise we need lite frontend theme.
Current frontend lite theme is just experimental, it can be removed.

Some block are deliberately rewritten instead of using hooks, it’s easier to maintain updates that way.

Download

Magento_Lite_1.6.1.0.zip

Screenshots

Make sure to comment, thx!
–Ivan


About Ivan Weiler

Technical Educator and Consultant

Ivan is a Technical Educator and Consultant. He gained lots of experience managing some of the most complex Magento projects we had at Inchoo.

Read more posts by Ivan / Visit Ivan's profile

15 comments

  1. Very interesting. Anyone have this “lite” version up and running on a live server yet so we can see it?

  2. This is excellent…the load time on pages in so much better . There are 2 errors though…when you make active true paypal or newsletter, site comes with an error.

    Thanks! Much…shame it can’t be used in production

  3. Just an FYI, my version of “Magento Lite” (https://github.com/colinmollenhour/magento-lite) will soon be updated to 1.6, I just haven’t been in a rush since very little has changed in the core framework. Your version is quite a bit different since it aims to be a lighter-weight shopping cart whereas what I made aims to be a general purpose (no catalog/shopping cart) framework. It would have been nice if you had chosen another name to avoid confusion. πŸ™‚

  4. This is pretty cool, impressive! I’ve never messed with disabling module output, but now that I think about it I could do so on almost all of my clients’ sites. Can I expect to see actual performance gains if I do go ahead and disable them (aka, is there really a point in doing so?)?

  5. I’m following that project closely for some time now and I’m glad you posted link so people can check it out, but we have different goals in what we tried to accomplish and if I’m not mistaking that project is based on older 1.4.

    And don’t worry, we’re giving our share to both community project and community on daily level πŸ˜‰

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.