What is the difference between an Extension and a Module?
Just curious to know that what is the right term to use when we extend Magento's functionality by creating our custom code in local folder.
Extensions are simply packed modules. In other words, you extend the features and functionality of Magento by writing a module. Then you have a choice to leave it as it is or pack it up (System > Magento Connect > Package Extensions). An extension (a packed module) is then published on magento connect
I wish everyone will make up their minds and use the same term.
Now we have extension, module, bundle, plugin and maybe others and it's getting silly.
Basically a module is an extension.
The only difference might be that what's in the core may not be considered extensions, but they are modules.
So Mage_Catalog
is a module but not an extension.
Something_Else
is a module and an extension because it's not in the core.
Module is the technical term for anything you define in app/etc/modules
Extension is the marketing term for published1 community modules (or generally any code that extends Magento functionality and is not a theme)
Extensions usually consist of one or more modules. The ebizmarts MageMonkey extension for example comes with four actual modules that are bundled as one extension: Ebizmarts_AbandonedCart
, Ebizmarts_Autoresponder
, Ebizmarts_MageMonkey
and Ebizmarts_Mandrill
.
Themes also often come with theme specific modules that are not distributed separately and nobody would call them extensions.
1) be it via Magento Connect, Github or an extension store