Magento 2 Developer Deep Dive ( PDFDrive )
Magento 2 Developer Deep Dive ( PDFDrive )
Ted Pietrzak
Head of Magento Technology
Magento 2 Vision
Innovation
Create a new, unmatched platform
that delivers Agility
Scalability
Magento 2 Timeline
Q4 2015
Q4 2014 Merchant
Developer General
Beta Q2 2015 Availability
Q1 2015 Q3 2015
Developer Merchant
Release Beta
Candidate
AM Session 1
Presenters Topics
10:00 – 10:30 Jonathan Atkins Magento 2 Admin UX and
Head of Product Design & UX Framework Changes
• We will use the office hours from 5 – 6 p.m. for additional discussions
James Cowie
Software Engineer, Session Digital
Allan MacGregor
Magento Practice Lead, DEMAC MEDIA
Joshua Warren
CEO, Creatuity
Magento 2 Office Hours
5 p.m. – 6 p.m.
Magento 2 Admin UX
Jonathan Atkins
Head of Product Design & UX
Legal Disclaimer
Copyright © 2015 Magento, Inc. All Rights Reserved.
Magento®, eBay Enterprise™ and their respective logos are trademarks, service
marks, registered trademarks, or registered service marks of eBay, Inc. or its
subsidiaries. Other trademarks or service marks contained in this presentation are
the property of the respective companies with which they are associated.
This presentation is for informational and discussion purposes only and should not
be construed as a commitment of Magento, Inc. or eBay Enterprise (“eBay
Enterprise”) or of any of their subsidiaries or affiliates. While we attempt to ensure
the accuracy, completeness and adequacy of this presentation, neither Magento,
Inc., eBay Enterprise nor any of their subsidiaries or affiliates are responsible for
any errors or will be liable for the use of, or reliance upon, this presentation or any
of the information contained in it. Unauthorized use, disclosure or dissemination of
this information is expressly prohibited.
Prioritizing the Merchant Experience
Magento 2 represents a new approach to the Admin interface
Focused on creating a quality experience for non-technical users
Usability
Desirability
Accessibility
New Look and Feel
Modern flat design
Touch friendly
Better accessibility
Improved usability
Touch Friendly
Larger click/tap targets
Removal of hover states
Easier to use on a wider
variety of screens
Touchscreen laptops
iPad
Surface
9”+ Android tablets
Navigation
Designed for modern
screen aspect ratios
More vertical space
for content
Touchable
Greater extensibility
Data Grids
Keyword search
Configurable columns
Inline editing
Expanding filters
Saved views
Drag and drop column
reordering
Sticky column headers
Simplified mass
actions
Filtering
Forms
New form element
types
Live field-level
validation
Dynamic capabilities
More consistent usage
throughout
Easier to read
Product Creation
Fewer templates!
New “Standard”
product template
Simple
Configurable
Virtual
Downloadable
Product Creation
Configuration creation
by attributes
Sub-process wizards
Product Creation
Bulk editing by attribute
Images
Pricing
Inventory
Content Staging
Create content in the
future!
Products
Promotions
CMS pages
Preview pages before
they launch
Pattern Library
Admin UX guidelines available
on GitHub
Pattern documents
Usage guidelines
.psd files
http://devdocs.magento.com/guides/v1.0/pattern-library/bk-pattern.html
Merchant Experience is a Priority
Q&A
Jonathan Atkins
[email protected]
Olexii Korshenko
Senior PHP Developer, Magento 2
Magento 2 XML
Configuration Files
Legal Disclaimer
Copyright © 2015 Magento, Inc. All Rights Reserved.
Magento®, eBay Enterprise™ and their respective logos are trademarks, service
marks, registered trademarks, or registered service marks of eBay, Inc. or its
subsidiaries. Other trademarks or service marks contained in this presentation are
the property of the respective companies with which they are associated.
This presentation is for informational and discussion purposes only and should not
be construed as a commitment of Magento, Inc. or eBay Enterprise (“eBay
Enterprise”) or of any of their subsidiaries or affiliates. While we attempt to ensure
the accuracy, completeness and adequacy of this presentation, neither Magento,
Inc., eBay Enterprise nor any of their subsidiaries or affiliates are responsible for
any errors or will be liable for the use of, or reliance upon, this presentation or any
of the information contained in it. Unauthorized use, disclosure or dissemination of
this information is expressly prohibited.
Agenda
….
….. ….. …..
Configuration Types
Dependency Injection System
di.xml system.xml
Modules Menu
module.xml menu.xml
Routes ACL
routes.xml acl.xml
Goal #2
Separate configuration models
Eav\Config
Routes\Config
Mage_Core_Model_Config
Cache\Config
Event\Config
…
Goal #3
Application is independent from configuration storage and initial
format
DB
? Array
Reader Application
XML
….
Goal #4
Configuration data validation
Before After
Schema
Converter
Locator
Magento Config. Component Structure
File Validation
Resolver State
Schema
Converter
Locator
Magento Config. Component Structure
File Validation
Resolver State
Schema
Converter
Locator
Magento Config. Component Structure
File Validation
Resolver State
Schema
Converter
Locator
How to Implement New Configuration Type
How to create new Configuration Type?
Step 1
Choose format of configuration type and create schema
definition file(s) for it
Step 2
Decide whether your configuration is scoped or non-scoped
Step 3
Provide implementations of required interfaces
Magento Config Component Structure
File Validation
Resolver State
Schema
Converter
Locator
List of interfaces that must be implemented
1 of 4 Schema Locator
Provide paths to corresponding schema file(s)
List of interfaces that must be implemented
2 of 4 Config Converter
Convert DOMDocument to array
XML Array
List of interfaces that must be implemented
3 of 4 Configuration Reader
List of interfaces that must be implemented
4 of 4 Config Data
Configuration is Scoped or Non-Scoped?
Scoped Non-Scoped
Q&A
Olexii Korshenko
[email protected]
Migrating Your Theme
to Magento 2
Vitalii Korotun
Architect, Magento
Legal Disclaimer
Copyright © 2015 Magento, Inc. All Rights Reserved.
Magento®, eBay Enterprise™ and their respective logos are trademarks, service
marks, registered trademarks, or registered service marks of eBay, Inc. or its
subsidiaries. Other trademarks or service marks contained in this presentation are
the property of the respective companies with which they are associated.
This presentation is for informational and discussion purposes only and should not
be construed as a commitment of Magento, Inc. or eBay Enterprise (“eBay
Enterprise”) or of any of their subsidiaries or affiliates. While we attempt to ensure
the accuracy, completeness and adequacy of this presentation, neither Magento,
Inc., eBay Enterprise nor any of their subsidiaries or affiliates are responsible for
any errors or will be liable for the use of, or reliance upon, this presentation or any
of the information contained in it. Unauthorized use, disclosure or dissemination of
this information is expressly prohibited.
01. Magento 2 Overview: Theme
Technologies and Techniques
Granularity due to Modularity
Directory Structure
M1 M2
Diversity
JavaScript
Technologies and Techniques
RequireJS
frontend/rwd/default/layout/catalog.xml Magento/Catalog/view/frontend/layout
M1 M2
Blocks and Templates
namespace Magento\Catalog\Block\Product;
class Mage_Catalog_Block_Product_View class View
{ {
public function getProduct(); public function getProduct();
public function hasOptions(); public function hasOptions();
public function hasRequiredOptions(); public function hasRequiredOptions();
public function getAddToCartUrl(); public function getAddToCartUrl();
public function getJsonConfig(); public function getJsonConfig();
public function isStartCustomization(); public function isStartCustomization();
public function getProductDefaultQty(); public function getProductDefaultQty();
No actions to re-compile
Server side CSS pre-processor (with node.js)
Existing M1 experience
Pass M2 Training
1st Module M1 + 50 %
2nd Module M1 + 20%
3rd Module M2 =< M1
Thank you!
Migrating Your Theme to Magento 2
Q&A
Vitalii Korotun
[email protected]
Andrey Konosov
Architect, Magento 2
Migrating Merchant
Data to Magento 2
• Data structure
• How migration tool work
• How to customize migration process
• Migration workflow
Legal Disclaimer
Copyright © 2015 Magento, Inc. All Rights Reserved.
Magento®, eBay Enterprise™ and their respective logos are trademarks, service
marks, registered trademarks, or registered service marks of eBay, Inc. or its
subsidiaries. Other trademarks or service marks contained in this presentation are the
property of the respective companies with which they are associated.
This presentation is for informational and discussion purposes only and should not be
construed as a commitment of Magento, Inc. or eBay Enterprise (“eBay Enterprise”) or
of any of their subsidiaries or affiliates. While we attempt to ensure the accuracy,
completeness and adequacy of this presentation, neither Magento, Inc., eBay
Enterprise nor any of their subsidiaries or affiliates are responsible for any errors or will
be liable for the use of, or reliance upon, this presentation or any of the information
contained in it. Unauthorized use, disclosure or dissemination of this information is
expressly prohibited.
01. Website Data
Data Structure
CORE DATA
CORE DATA
CORE DATA
Magento 1 Magento 2
Magic
Tool Structure
1. Attributes 2. Custom 100. Map
Tool Structure
1. Attributes 2. Custom 100. Map
Integrity check
Migration
Volume check
03. Customization
Map Customizations
MAJORITY
of tables could be migrated
USING MAP
Map
string
replace
values
map
Magento 1 json Magento 2
serialize
Custom Steps
1
INSTALL
THE SOFTWARE
Workflow
2
MIGRATE
SETTINGS, WEBSITES
Workflow
3
CUSTOMIZE
YOUR MAGENTO 2
Workflow
4
Storefront usage
Orders management
Products management
Content management FREEZE
STORE ON MAGENTO 1
Workflow
5
LAUNCH
THE MAGIC TOOL
Workflow
DELIVER
INCREMENTAL DATA
Workflow
7
SHUTDOWN
MAGENTO 1 WEBSITE
Workflow
8 >./magento indexer:all
cache warmup
REFRESH
TEMPORARY DATA
Workflow
OPEN
MAGENTO 2 STORE
Numbers
Q&A
Andrey Konosov
[email protected]