Magento organizza il codice in Moduli individuali.
In una tipica applicazione PHP che usi il pattern MVC (Model-View-Controller),
tutti i Controllers risiedono in una cartella, i Models in un'altra etc.
In Magento, i files sono raggruppati insieme in base alle loro funzionalità.
Queste funzionalità vengono identificate tramite i cosidetti Modules.
Magento's Code
Per esempio troveremo i Controllers, Models, Helpers, Blocks etc.
collegabili alla funzionlità di checkout all'interno di questo percorso:
app/code/core/Mage/Checkout
Per esempio troveremo i Controllers, Models, Helpers, Blocks etc.
collegabili alla funzionlità di Google Checkout all'interno di questo percorso:
app/code/core/Mage/GoogleCheckout
Codice Customizzato
Quando vogliamo personalizzare o estendere Magento, piuttosto che
sovrascrivere direttamente files che risiedono nel core di Magento, o piuttosto
che inserire i nostri nuovi Controllers, Models, Helpers, Blocks etc.
all'interno del codice nativo di Magento, è preferibile creare i Modules
customizzati e salvarli in questo percorso:
app/code/local/Package/Modulename
Package ( spesso definito come un Namespace ) è un nome univoco che
identifica la nostra azienda o persona. L'intento è che ogni membro della
community di Magento usi il proprio nome quando crea un modulo al fine di
evitare collisioni con altro codice customizzato.
Quando si crea un nuovo Module, è necessario "informare" Magento.
Questo si fa aggiungendo un file XML all'interno della cartella:
app/etc/modules
Ci sono due tipi di files in questa cartella, il primo abilita Moduli
individuali, e si utilizza questa forma per il nome:
Packagename_Modulename.xml
Il secondo è un file che abilita Moduli multipli da un Package/Namespace e
e si utilizza questa forma per il nome:
Packagename_All.xml
Link e Fonte: Magento Commerce Knowledge Base







