MAGENTO AS A FRAMEWORK



Similar documents
How To Create A Simple Module in Magento 2.0. A publication of

X-POS GUIDE. v3.4 INSTALLATION SmartOSC and X-POS

Magento Extension Developer s Guide

Mastering Magento Theme Design

Shop by Manufacturer Custom Module for Magento

Top Navigation menu - Tabs. User Guide 1. &

HOW TO CREATE THEME IN MAGENTO 2

How to pass Magento Certification Exam in 30 days Published by David Nguyen at Smashwords Copyright 2013 David Nguyen

JOINUS AG. PowerPay Checkout. Magento Module User Manual. Support:

ekomimeetsmage Manual for version 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0

Magento Quotation Module User and Installer Documentation Version 2.2

Software Development & Education Center PHP 5

INTRO TO THEMING IN MAGENTO

ProxiBlue Gift Promotions

User s manual. Magento extension. BCP - Better Configurable Products

Magento Integration Manual (Version /24/2014)

Responsive Banner Slider Extension By Capacity Web Solutions

Shipbeat Magento Module. Installation and user guide

Magento Extension for Add Multiple Products by Capacity Web Solutions

Magento 1.3 Theme Design

Purolator Eship Web Services

Bubble Full Page Cache for Magento

Google Trusted Stores Setup in Magento

QAS Address Verification Module for Magento

Installation Guide MAGENTO PAYMENT PLUGIN. release 1.0.1

MAGENTO TRAINING PROGRAM

Plugin Integration Guide

Table of Content. 1. Mofluid Installation. 2. Mofluid Uninstallation. a. Magento Connect b. Manual Installation

Bazaarvoice for Magento Extension Implementation Guide v6.3.4

Hail or Fail: The Right Way. to Override Core. Mark Shust ecommerce Developer Metrics Marketing

Stripe Payment Module Magento 2 USER MANUAL MAGEDELIGHT.COM SUPPORT E: SUPPORT@MAGEDELIGHT.COM P: +1-(248)

ultimo theme Update Guide Copyright Infortis All rights reserved

ProxiBlue Dynamic Category Products

Magento Certified Developer Exam Exam: M70-101

Table of Contents. Magento Certified Developer Exam Study Guide

Login and Pay with Amazon - extension for Magento

Shop Manager Manual ConfigBox 3.0 for Magento

Installation, Configuration, and Usage

SFC Featured Categories, Magento Extension Documentation

MAGEJAM PLUGIN INSTALLATION GUIDE

MyanPay API Integration with Magento CMS

Otherwise please follow these instructions for a successful module installation.

Guide PHPro Promoset Module

This guide provides additional information about topics covered in the webinar

Magento Content API Technical Overview

Matrix Responsive Template. User Manual. This manual contains an overview of Matrix Responsive Joomla Template and its use

C1 ecommerce Core Building Successful Online Shops

1. Introduction. 2. Installing

Manual. Version: 1.0.0

Zapper for ecommerce. Magento Plugin Version Checkout

Most Popular ecommerce Site Integration Tool For Magento Store

InstantSearch+ for Magento Extension

Iceberg Commerce Video Gallery Extension 2.0 For Magento Version 1.3, 1.4, 1.5, 1,6

No Frills Magento Layout. Alan Storm

Legal. Copyright 2016 Magento, Inc.; All Rights Reserved.

Education. Relevant Courses

Magento PHP Developer's Guide

What s really under the hood? How I learned to stop worrying and love Magento

AUDIT REPORT EXAMPLE

Magento PHP Developer's Guide. Magento PHP Developer's Guide. Second Edition. Allan MacGregor. Second Edition

ultimo theme Update Guide Copyright Infortis All rights reserved

Elgg 1.8 Social Networking

Color Swatches Pro. Magento Extension User Guide. Official extension page: Color Swatches Pro. User Guide: Color Swatches Pro

Product Name: Size Chart Popup Version: Document Type: Help doc Author: Milople Inc.

Designing for Magento

M-CONNECT PRODUCT FILE UPLOAD EXTENSION FOR MAGENTO COMMERCE

Case Study. Portfolio Listing application Brainvire Infotech Pvt. Ltd Page 1 of 1

Bazaarvoice for Magento

SEO Toolkit Magento Extension User Guide Official extension page: SEO Toolkit

MAGENTO MADE EASY. Comprehensive Guide to Magento Setup and Development. (Volume 1) By Magestore

WordPress 2.9 e-commerce

SMSNotify Extension. User Documentation. Automated SMS sender and customer relationship tool. SMSNotify User Documentation 1

Klarna Magento module

J2T Points & Rewards Magento Extension

Version 4.0 MageB2B Pricesystem ReadMe AIRBYTES GmbH

skype ID: store.belvg US phone number:

easy_review version BoostMyShop

Bubble Code Review for Magento

Web Development using PHP (WD_PHP) Duration 1.5 months

SAHARA DIGITAL8 RESPONSIVE MAGENTO THEME

An Advanced E-commerce Course

SEO Meta Templates. Magento Extension. User Guide. SEO Meta Templates

Vincent Gabriel. Summary. Experience. Senior Software Developer at Landmark Network

Abdullah Radwan. Target Job. Work Experience (9 Years)

3dCart Shopping Cart Software V3.X Rewards Points Guide

GETTING STARTED GUIDE

Mojolicious. Marcos Rebelo

PayPal Integration in Magento Jefferson Blvd. Suite 200, Culver City, CA Magento.com

Setting Up the Mercent Marketplace Price Optimizer Extension

Official Amazon Checkout Extension for Magento Commerce. Documentation

Newsletter Popup with Free Gift Coupon

Yu Lin COMMERCE. Technology and Communication

EcomDev_PHPUnit Manual

Transcription:

MAGENTO AS A FRAMEWORK WHY WE DO BETTER THEN YOU THINK Created by Daniel Fahlke aka Flyingmana / @Flyingmana

ABOUT ME love to work on Open Source current work involves mostly Magento (PHP e-commerce Framework) know a lot about php, js(only frontend) and css like to try new things

ABOUT MAGENTO Usually a Shop System Build to be extendable PHP Developers run, if they hear its name got bought by ebay 2011

ABOUT THE COMMUNITY experiences a strong growth in number and collaboration has with FireGento e.v its own association to represent the community and organize events does regularly hackathons to create new, and improve existing open source modules

THE ONLINE HACKATHON 31st Jan - 1st Feb 2014 150 registered attendees ~75 contributers got a positive mention afterwards on an ebay blog: http://blog.ebay.com/for-magento-developers-hack-isanother-word-for-help/

BACK TO MAGENTO

OUR HELLO WORLD

NEED CODE /app/design/frontend/default/default/layout/local.xm <!--?xml version="1.0"?--> <layout version="0.1.0"> <default> <reference name="content"> <block type="core/template" template="cute_face.phtml"> </block></reference> </default> </layout> /app/design/frontend/default/default/template/cute_f

RESULT

CHANGE CODE /app/design/frontend/default/default/layout/local.xm <!--?xml version="1.0"?--> <layout version="0.1.0"> <default> <reference name="right"> <block type="core/template" template="cute_face.phtml"> </block></reference> </default> </layout>

MOVED RESULT

HOW IS THIS POSSIBLE? everything is glued by xml you dont programm in xml, you only glue existing things together dont get stuck by the whole mass of existing xml

DEBUG THE STRUCTURE

DEBUG TOOLS ARE YOUR FRIEND you would need way to long, to memorize all xml you can instant see how/where 3rd party puts code into frontend sometimes grep and findinpath are also very helpfull

SOME MORE USEFULL EXAMPLES because within a short time you will be a full grown magento developer <!-- insert evil laughing here -->

ADD CSS /app/design/frontend/default/default/layout/local.xm <!--?xml version="1.0"?--> <layout version="0.1.0"> <default> <reference name="head"> <action method="addcss"><stylesheet>css/bootstrap.css</stylesheet></action> </reference> </default> </layout> /skin/frontend/default/default/css/bootstrap.css

ADD JAVASCRIPT /app/design/frontend/default/default/layout/local.xm <!--?xml version="1.0"?--> <layout version="0.1.0"> <default> <reference name="head"> <action method="addskinjs"><stylesheet>js/bootstrap.js</stylesheet></action> </reference> </default> </layout> /skin/frontend/default/default/js/bootstrap.js

A FEW NAMING RULES magento uses aliases on many places mostly for class resolution for example: core/templateresolved to Mage_Core_Block_Template first part points to module, second to a class

THERE ARE DIFFERENT CONTEXTS Block Helper Model Resource (which is a sub part of Model => Mage_Core_Model_Resource_Abstract

OWN MODULES use two parts for module getmodel('vendor_module/something')=> Vendor_Module_Model_Something

MORE ABOUT ALIASES you always can use full class names instead of alias but alias allows usage by magentos class rewrite system

EXAMPLE OF THE CM_REDISSESSION MODULE <config> <modules> <cm_redissession> <version>0.2</version> </cm_redissession> </modules> <global> <models> <core_mysql4> <rewrite> <session>cm_redissession_model_session</session> </rewrite> </core_mysql4> </models> </global> </config> core_mysql4 is the outdated version of core_resource, where {core} is the module identifier

DEFINE A CRONJOB <config> <crontab> <jobs> <catalog_product_index_price_reindex_all> <schedule> <cron_expr>0 2 * * *</cron_expr> </schedule> <run> <model>catalog/observer::reindexproductprices</model> </run> </catalog_product_index_price_reindex_all> </jobs> </crontab> </config>

REGISTER FOR AN EVENT <config> <frontend> <events> <customer_login> <observers> <catalog> <type>model</type> <class>catalog/product_compare_item</class> <method>bindcustomerlogin</method> </catalog> </observers> </customer_login> </events> </frontend> </config> you can rewrite existing observers thanks to xml. for example make type=disabled

ADD A CONFIG VALUE (WITH DEFAULT) <config> <default> <catalog> <navigation> <max_depth>0</max_depth> </navigation> </catalog> </default> </config>

ADD AN ENTRY IN ADMIN AREA(1) <config> <tabs> <catalogtranslate="label"module="catalog"> <label>catalog</label> <sort_order>200</sort_order> </catalog> </tabs> <sections> <catalogtranslate="label"module="catalog"> <class>separator-top</class> <label>catalog</label> <tab>catalog</tab> <frontend_type>text</frontend_type> <sort_order>40</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <groups> <navigationtranslate="label"> <label>categorytopnavigation</label> <frontend_type>text</frontend_type> <sort_order>500</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <max_depthtranslate="label"> <label>maximaldepth</label> <frontend_type>text</frontend_type> <sort_order>1</sort_order> <show_in_default>1</show_in_default> </max_depth> </fields> </navigation> </groups> </catalog> </sections> </config>

ADD AN ENTRY IN ADMIN AREA(2) <config> <tabs> <catalog translate="label" module="catalog"> <label>catalog</label> <sort_order>200</sort_order> </catalog> </tabs> </config>

ADD AN ENTRY IN ADMIN AREA(3) <config> <sections> <catalog translate="label" module="catalog"> <class>separator-top</class> <label>catalog</label> <tab>catalog</tab> <frontend_type>text</frontend_type> <sort_order>40</sort_order> <show_in_default>1</show_in_default> <show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <groups> </groups> </catalog> </sections> </config>

ADD AN ENTRY IN ADMIN AREA(4) <config> <sections> <catalogtranslate="label"module="catalog"> <groups> <navigationtranslate="label"> <label>categorytopnavigation</label> <frontend_type>text</frontend_type> <sort_order>500</sort_order> <show_in_default>1</show_in_default><show_in_website>1</show_in_website> <show_in_store>1</show_in_store> <fields> <max_depthtranslate="label"> <label>maximaldepth</label> <frontend_type>text</frontend_type> <sort_order>1</sort_order> <show_in_default>1</show_in_default> </max_depth> </fields> </navigation> </groups> </catalog> </sections> </config>

AND HERE IS EVEN MORE

WE HAVE PONYS

THE END