120

Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release
Page 2: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento 2 Developer Deep Dive

Ted Pietrzak

Head of Magento Technology

Page 3: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Innovation Create a new, unmatched platform

that delivers Agility

Scalability

Magento 2 Vision

Page 4: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento 2 Timeline

Q4 2014

Developer

Beta

Q1 2015

Developer

Release

Candidate

Q2 2015

Q4 2015

Merchant

General

Availability

Q3 2015

Merchant

Beta

Page 5: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

AM Session 1

Presenters Topics

10:00 – 10:30 Jonathan Atkins

Head of Product Design & UX

Magento 2 Admin UX and

Framework Changes

10:30 – 11:00 Olexii Korshenko

Magento Software Engineer

Introduction to Magento 2

Configuration

11:00 – 11:30 Vitaliy Korotun

Magento Software Architect

Migrating Your Theme to

Magento 2

11:30 – 12

noon

Andrey Konosov

Magento Software Architect

Migrating Merchant Data to

Magento 2

12 noon – 1:00 Lunch (on your own)

Page 6: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Break for Lunch 12 noon – 1 p.m.

Page 7: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Housekeeping

• Wi-Fi access:

• Network: #ImagineCommerce

• Password: Wynn2015

• Sessions will be recorded

• Please hold questions to the end of each session

• We will have a ‘parking lot’ for additional questions

• We will use the office hours from 5 – 6 p.m. for additional discussions

• Lunch is on your own today

Page 8: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

PM Session 2

Presenters Topics

1:00 – 1:30 Anton Kril

Magento Software Architect

Applying Code

Customizations – Part (1)

1:30 – 2:00 Eugene Tulika

Magento Software Engineer

Applying Code

Customizations – Part (2)

2:00 – 2:30 Sergii Shymko

Technical Support Engineer

Demystifying Code

Generation

2:30 – 3:00 Andrey Konosov

Magento Software Architect

Caching Optimization for

Magento Code Development

3:00 – 4:00 Break (Marketplace Grand Opening Reception (Latour)

Page 9: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Craig Hayman President, eBay Enterprise

Page 10: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento Sponsored Extension Challenge Winners!

Sergey Lysak, Eltrino

1st Place

Blanka Pham, Magestore

2nd Place

Maciej Ostrowski , Creatuity

3rd Place

Page 11: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Break

3 p.m. – 4 p.m.

Page 12: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

PM Session 3

Presenters Topics

4:00 - 4:30 Oleh Kobchenko

Manager, Software

Development

Magento 2 Performance and

Scalability

4:30 - 5:00 James Cowie Software Engineer

Session Digital

Allan MacGregor Magento Practice Lead, DEMAC

MEDIA

Joshua Warren CEO, Creatuity

Special Presentation

Refactoring into TDD / BDD

for the future

5:00 – 6:00 Open Office Hours

Page 13: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Special Presentation by Magento Community

Refactoring into TDD / BDD for the future

James Cowie Software Engineer, Session Digital

Allan MacGregor Magento Practice Lead, DEMAC MEDIA

Joshua Warren CEO, Creatuity

Page 14: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento 2 Office Hours 5 p.m. – 6 p.m.

Page 15: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release
Page 16: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento 2 Admin UX

Page 17: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Jonathan Atkins Head of Product Design & UX

Page 18: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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.

Legal Disclaimer

Page 19: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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

Page 20: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

New Look and Feel

Modern flat design

Touch friendly

Better accessibility

Improved usability

Page 21: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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

Page 22: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Navigation

Designed for modern

screen aspect ratios

More vertical space

for content

Touchable

Greater extensibility

Page 23: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Data Grids

Keyword search

Configurable columns

Inline editing

Expanding filters

Saved views

Drag and drop column

reordering

Sticky column headers

Simplified mass

actions

Page 24: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Filtering

Page 25: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Forms

New form element

types

Live field-level

validation

Dynamic capabilities

More consistent usage

throughout

Easier to read

Page 26: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Product Creation

Fewer templates!

New “Standard”

product template

Simple

Configurable

Virtual

Downloadable

Page 27: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Product Creation

Configuration creation

by attributes

Sub-process wizards

Page 28: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Product Creation

Bulk editing by attribute

Images

Pricing

Inventory

Page 29: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Content Staging

Create content in the

future!

Products

Promotions

CMS pages

Preview pages before

they launch

Page 30: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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

Page 31: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Merchant Experience is a Priority

We need your help!

Sign up at Magento.com/research

Page 32: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Thank you!

Jonathan Atkins [email protected]

Q & A

Magento 2 Admin UX

Page 33: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release
Page 34: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Olexii Korshenko Senior PHP Developer, Magento 2

Page 35: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento 2 XML Configuration Files

Page 36: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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.

Page 37: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Agenda

1. Goals for Configuration Decomposition

2. Validation Strategy

3. Magento Config Component

4. How to create New Configuration Type

5. Benefits of configuration decomposition

6. QA

Page 38: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Goals for Configuration Decomposition

Page 39: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Goal #1

Overhead elimination in configuration loading

config.xml

Adminhtml

Frontend

Global

Store Event

…..

EAV Cache

….

Event Routes

….

events.xml

routes.xml

…..

events.xml

routes.xml

…..

Adminhtml Frontend

cache.xml

eav.xml

…..

Global

Page 40: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Configuration Types

Modules module.xml

System system.xml

ACL acl.xml

Store Config config.xml

Dependency Injection di.xml

Routes routes.xml

Layout layout.xml

Menu menu.xml

Page 41: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Goal #2

Separate configuration models

Mage_Core_Model_Config

Eav\Config

Routes\Config

Cache\Config

Event\Config

Page 42: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Goal #3

Application is independent from configuration storage and initial

format

….

DB

XML Reader

? Array

Application

Page 43: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Goal #4

Configuration data validation

Before After

No predefined format for

configuration files

Configuration File +

Schema Definition

Page 44: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Validation Strategy

Page 45: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

XML Schema Definition

• Each configuration file has a link to the schema definition in its declaration

• Schema definition for single file and for merged format

No code duplication. Use redefine instruction

Page 46: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Integrity Tests

XML File

Global Area

Global Area

Frontend

Area +

Validation of separate files

Per-area validation

Cross-area validation

Page 47: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Validation in Developer Mode

Run Time validation

Validation of each configuration file on the loading stage

No performance impact in Production Mode

Page 48: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento Config Component

Page 49: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Config Data Config Reader

File Resolver

Converter Schema Locator

Validation State

Magento Config. Component Structure

Page 50: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Config Data Config Reader

File Resolver

Converter Schema Locator

Validation State

Magento Config. Component Structure

Page 51: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Config Data Config Reader

File Resolver

Converter Schema Locator

Validation State

Magento Config. Component Structure

Page 52: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Config Data Config Reader

File Resolver

Converter Schema Locator

Validation State

Magento Config. Component Structure

Page 53: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

How to Implement New Configuration Type

Page 54: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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

Page 55: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Config Data Config Reader

File Resolver

Converter Schema Locator

Validation State

Magento Config Component Structure

Page 56: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

1 of 4 Schema Locator

Provide paths to corresponding schema file(s)

List of interfaces that must be implemented

Page 57: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

2 of 4 Config Converter

Convert DOMDocument to array

XML Array

List of interfaces that must be implemented

Page 58: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

3 of 4 Configuration Reader

List of interfaces that must be implemented

Page 59: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

4 of 4 Config Data

Configuration is Scoped or Non-Scoped?

Inject implementation of configuration reader

Extend corresponding class

Global Frontend Global

Non-Scoped Scoped

OR

List of interfaces that must be implemented

Page 60: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Benefits of Magento 2 Configuration

Page 61: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Benefits of Magento 2 Configuration

Simple creation flow of new configuration type

Extensibility of configuration component

Configuration scopes

Optimization in configuration loading

Same but separate mechanisms for all configuration types

Validation of configuration data

Documented configuration format

Page 62: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Thank you!

Olexii Korshenko [email protected]

Q & A

Magento 2 XML Configuration Files

Page 63: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release
Page 64: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Migrating Your Theme to Magento 2

Page 65: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Vitalii Korotun Architect, Magento

Page 66: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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.

Page 67: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

01. Magento 2 Overview: Theme Technologies and Techniques

Page 68: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Granularity due to Modularity

Page 69: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Directory Structure M1 M2

Page 70: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Diversity

Page 71: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

JavaScript Technologies and Techniques

Page 72: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

RequireJS

define(["jquery", "jquery/ui", "domReady!"],

function ($) {

'use strict';

// your business logic here

}

);

Page 73: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Inline JavaScript

<script type="text/javascript">

var submitButtons = $$('.submit-button'), updateButtons = $$('.update-button'), fields = $$('.qty-input');

updateButtons.each(function (elem) { elem.disabled=true; elem.addClassName('disabled');});

for (var i=0;i<fields.length;i++) {

fields[i].observe('change', checkButtonsRelation); fields[i].baseValue = fields[i].value;

}

function checkButtonsRelation() {

var hasChanges = false;

fields.each(function (elem) {

if (elem.baseValue != elem.value) hasChanges = true;

}.bind(this));

if (hasChanges) {

submitButtons.each(function (elem) {elem.disabled=true; elem.addClassName('disabled');});

updateButtons.each(function (elem) {elem.disabled=false; elem.removeClassName('disabled');});

} else {

submitButtons.each(function (elem) {elem.disabled=false; elem.removeClassName('disabled');});

updateButtons.each(function (elem) {elem.disabled=true; elem.addClassName('disabled');});

}

}

function submitCreditMemo() {

if ($('creditmemo_do_offline')) $('creditmemo_do_offline').value=0;

editForm.submit()

}

function submitCreditMemoOffline() {

if ($('creditmemo_do_offline')) $('creditmemo_do_offline').value=1;

editForm.submit()

}

var sendEmailCheckbox = $('send_email');

if (sendEmailCheckbox) {

var notifyCustomerCheckbox = $('notify_customer');

var creditmemoCommentText = $('creditmemo_comment_text');

Event.observe(sendEmailCheckbox, 'change', bindSendEmail);

bindSendEmail();

}

function bindSendEmail() {

if (sendEmailCheckbox.checked == true) {

notifyCustomerCheckbox.disabled = false;

} else {

notifyCustomerCheckbox.disabled = true;

}

}

</script>

<div data-mage-init= '{"creditMemoForm":{“config”:”value”}}'>

<div>

require(['jquery', 'prototype'], function (jQuery) {

var submitButtons = $$('.submit-button'),

updateButtons = $$('.update-button'),

fields = $$('.qty-input');

updateButtons.each(function (elem) {

elem.disabled=true; elem.addClassName('disabled');

});

for (var i=0;i<fields.length;i++) {

fields[i].observe('change', checkButtonsRelation);

fields[i].baseValue = fields[i].value;

}

});

Magento/Sales/view/adminhtml/web/js/creditMemoForm.js

M1

template/sales/order/creditmemo/create/items.phtml

Page 74: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

JavaScript Extension

<div id="toolbar" data-mage-init='{"toolbarEntry": {}}'>

</div>

// somewhere in your custom template

<script type="text/x-magento-init">

{

“#toolbar": {

“toolbarEntry": {

“option”: “value”

},

“otherWidget”: {}

}

}

</script>

Page 75: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Layouts, Block and Templates

Page 76: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Layout Files

frontend/rwd/default/layout/catalog.xml Magento/Catalog/view/frontend/layout

M1 M2

Page 77: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Blocks and Templates

class Mage_Catalog_Block_Product_View

{

public function getProduct();

public function hasOptions();

public function hasRequiredOptions();

public function getAddToCartUrl();

public function getJsonConfig();

public function isStartCustomization();

public function getProductDefaultQty();

public function canEmailToFriend();

}

namespace Magento\Catalog\Block\Product; class View { public function getProduct(); public function hasOptions(); public function hasRequiredOptions(); public function getAddToCartUrl(); public function getJsonConfig(); public function isStartCustomization(); public function getProductDefaultQty();

public function getWishlistOptions(); public function shouldRenderQuantity(); public function getQuantityValidators(); }

Page 78: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

UI Library and CSS

Page 79: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento UI Library

• Upgradability

• Consistency

• Extensive list of reusable components

• Styling and design best practices

• Simplifies customization

Page 80: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Magento UI Library Documentation

lib/web/css/docs

Page 81: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

CSS Pre-processors

Page 82: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

02. Web Developer Workflows CSS pre-processing

Page 83: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

WEB Developer Workflows

Basic: with built-in CSS pre-processor

Standard: with client-side CSS pre-processor

Advanced: with node.js CSS pre-processor

Page 84: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Oyejorge PHP library

~40 seconds to compile CSS

Manual actions to re-compile

Server side PHP pre-processor (with PHP)

Page 85: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

less.js official script

~10 seconds to compile CSS

No actions to re-compile

Client side CSS pre-processor (with less.js)

Page 86: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Command line script (lessc)

~7 seconds to compile CSS

Automatic browser refresh on change in LESS

Server side CSS pre-processor (with node.js)

Page 87: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Summary

Page 88: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Development Efforts

Existing M1 experience

Pass M2 Training

1st Module M1 + 50 %

2nd Module M1 + 20%

3rd Module M2 =< M1

Page 89: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Thank you!

Vitalii Korotun [email protected]

Q & A

Migrating Your Theme to Magento 2

Page 90: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release
Page 91: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Andrey Konosov Architect, Magento 2

Page 92: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Migrating Merchant

Data to Magento 2

Page 93: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

• Data structure • How migration tool work • How to customize migration process • Migration workflow

Page 94: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

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.

Page 95: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

01. Website Data

Page 96: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

MEDIA TEMPORARY CUSTOM

CORE DATA

Data Structure

Page 97: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

MEDIA TEMPORARY CUSTOM

CORE DATA

Data Structure

Page 98: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

MEDIA TEMPORARY CUSTOM

CORE DATA

Data Structure

Page 99: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

02. Migration Tool

Page 100: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Load Transform

Migration Tool

Magento 1

Extract

Magento 2

Magic

Page 101: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Tool Structure

1. Attributes 2. Custom 100. Map

Page 102: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Tool Structure

1. Attributes 2. Custom 100. Map

Integrity check

Migration

Volume check

Page 103: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

03. Customization

Page 104: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Map Customizations

MAJORITY of tables could be migrated

USING MAP

Page 105: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Map

<ignore> <move> <transform>

*Default action is copy

Page 106: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Load Transform

Transformation Handlers

Magento 1

Extract

Magento 2

serialize

json

string replace

values map

Page 107: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

4. Step

Custom Steps

1. Step 2. Step 3. Custom 5. Step

Page 108: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

04. Workflow

Page 109: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

Page 110: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

1

INSTALL THE SOFTWARE

Page 111: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

2

MIGRATE SETTINGS, WEBSITES

Page 112: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

3

CUSTOMIZE YOUR MAGENTO 2

Page 113: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

4

FREEZE STORE ON MAGENTO 1

Storefront usage

Orders management

Products management

Content management

Page 114: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

5

LAUNCH THE MAGIC TOOL

Page 115: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

6

DELIVER INCREMENTAL DATA

Page 116: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

7

SHUTDOWN MAGENTO 1 WEBSITE

Page 117: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

8

REFRESH TEMPORARY DATA

>./magento indexer:all cache warmup

Page 118: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Workflow

9

OPEN MAGENTO 2 STORE

Page 119: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Numbers

1000/min 1200/min 15500/min

Virtual Box VM, CentOS 6, 2.5Gb RAM, CPU 1 core 2.6GHz

Page 120: Magento 2 Developer Deep Diveinfo2.magento.com/rs/magentoenterprise/images/M2_DeepDive_0, 1.… · Magento 2 Vision . Magento 2 Timeline Q4 2014 Developer Beta Q1 2015 Developer Release

Thank you!

Credits: Icons designed by Freepik

Andrey Konosov [email protected]

Q & A

Migrating Merchant Data to Magento 2