the basics of creating a magento module

7
The Basics of Creating a Magento Module A lot of Magento community provides a variety of feature rich modules (free or paid).Together with the magento functionality, it allows you to solve a lot of tasks without programming skills. But what if they don’t work as you want them to? So it’s better to create your own module from scratch and understand the Magento architecture as well. Creating a custom magento module is a core part of any magento project. Because at any point, you may need to integrate your own functionality in your existing magento project. This article will cover a number of interesting topic : The app/code directories The structure and creation of a Magento module Event observers Before we begin install Magento, either locally or on a development server

Upload: charlie-perez

Post on 09-Apr-2017

85 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: The Basics of Creating a Magento Module

The Basics of Creating a Magento Module

A lot of Magento community provides a variety of feature rich modules

(free or paid).Together with the magento functionality, it allows you to

solve a lot of tasks without programming skills. But what if they don’t

work as you want them to? So it’s better to create your own module

from scratch and understand the Magento architecture as well.

Creating a custom magento module is a core part of any magento

project. Because at any point, you may need to integrate your own

functionality in your existing magento project.

This article will cover a number of interesting topic :

The app/code directories

The structure and creation of a Magento module

Event observers

Before we begin install Magento, either locally or on a

development server

Page 2: The Basics of Creating a Magento Module

DISABLE THE CACHE

You can do this by going to Admin Panel > System > Cache

Management > Select All > Actions: Disable > Submit.

The app/code Directory

app/code directory is split into three areas: core, community

and local.

CORE

The app/code/core directory contains all of the functionality

regarding products, categories, customers, payments, etc.

COMMUNITY

app/code/community contain modules that have been provided

by third parties

LOCAL

An empty app/code/local directory. Here we can add modules

for our magento installation.

MODULE NAMESPACE

Create is a “namespace.

Create the directory app/code/local/iMediadesigns

Page 3: The Basics of Creating a Magento Module

MODULE NAME

The module we are creating will write log entries each time a

product is saved, Create the

directoryapp/code/local/iMediadesigns/LogProductUpdate.

Configuring Our Module

Create a simple config.xml file

<?xml version="1.0" encoding="UTF-8"?>

<!-- The root node for Magento module configuration -->

<config>

<!--

The module's node contains basic

information about each Magento module

-->

<modules>

<!--

This must exactly match the namespace and module's

folder

names, with directory separators replaced by underscores

Page 4: The Basics of Creating a Magento Module

-->

<iMediadesigns_LogProductUpdate>

<!-- The version of our module, starting at 0.0.1 -->

<version>0.0.1</version>

</iMediadesigns_LogProductUpdate>

</modules>

</config>

Activating Our Module

Let’s

createapp/etc/modules/iMediadesigns_LogProductUpdate.xml

with the following content:

<?xml version="1.0" encoding="UTF-8"?>

<config>

<modules>

<iMediadesigns_LogProductUpdate>

<!-- Whether our module is active: true or false -->

<active>true</active>

<!-- Which code pool to use: core, community or local -->

<codePool>local</codePool>

</iMediadesigns_LogProductUpdate>

Page 5: The Basics of Creating a Magento Module

</modules>

</config>

Is The Module Enabled?

Navigate to System > Configuration > Advanced > Advanced and

view the “Disable Modules Output” listing, we should see

our iMediadesigns_LogProductUpdate module listed as enabled.

Configuring Our Model’s Directory

We need to inform Magento where to find models in our

module by updating config.xml

<?xml version="1.0" encoding="UTF-8"?>

<config>

<modules>

<iMediadesigns_LogProductUpdate>

<version>0.0.1</version>

</iMediadesigns_LogProductUpdate>

</modules>

<!-- Configure our module's behavior in the global scope -->

<global>

<!-- Defining models -->

<models>

Page 6: The Basics of Creating a Magento Module

<!--

Unique identifier in the model's node.

By convention, we put the module's name in

lowercase.

-->

<iMediadesigns_logproductupdate>

<!--

The path to our models directory, with directory

separators replaced by underscores --

><class>iMediadesigns_LogProductUpdate_Model</class></iMe

diadesigns_logproductupdate>

</models>

<events>

<catalog_product_save_after>

<observers>

<iMediadesigns_logproductupdate><class>iMediadesigns_logpr

oductupdate/observer</class>

<method>logUpdate</method>

<type>singleton</type>

</iMediadesigns_logproductupdate>

</observers>

Page 7: The Basics of Creating a Magento Module

</catalog_product_save_after>

</events>

</global>

</config>

Admin Panel > System > Configuration > Developer > Log

Settings > Enabled.

The article will help you to understand how magento module

works and to make your magento web development project

successful. If you have any questions let us know in the

comments section.

iMediadesigns provide cost effective web design and

development solutions and offers custom website design services

in Toronto