Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento...
Transcript of Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento...
![Page 1: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/1.jpg)
![Page 2: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/2.jpg)
Magento 2 Developer Deep Dive
Ted Pietrzak
Head of Magento Technology
![Page 3: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/3.jpg)
Innovation Create a new, unmatched platform
that delivers Agility
Scalability
Magento 2 Vision
![Page 4: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/4.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/5.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/6.jpg)
Break for Lunch 12 noon – 1 p.m.
![Page 7: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/7.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/8.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/9.jpg)
Craig Hayman President, eBay Enterprise
![Page 10: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/10.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/11.jpg)
Break
3 p.m. – 4 p.m.
![Page 12: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/12.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/13.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/14.jpg)
Magento 2 Office Hours 5 p.m. – 6 p.m.
![Page 15: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/15.jpg)
![Page 16: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/16.jpg)
Magento 2 Admin UX
![Page 17: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/17.jpg)
Jonathan Atkins Head of Product Design & UX
![Page 18: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/18.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/19.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/20.jpg)
New Look and Feel
Modern flat design
Touch friendly
Better accessibility
Improved usability
![Page 21: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/21.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/22.jpg)
Navigation
Designed for modern
screen aspect ratios
More vertical space
for content
Touchable
Greater extensibility
![Page 23: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/23.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/24.jpg)
Filtering
![Page 25: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/25.jpg)
Forms
New form element
types
Live field-level
validation
Dynamic capabilities
More consistent usage
throughout
Easier to read
![Page 26: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/26.jpg)
Product Creation
Fewer templates!
New “Standard”
product template
Simple
Configurable
Virtual
Downloadable
![Page 27: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/27.jpg)
Product Creation
Configuration creation
by attributes
Sub-process wizards
![Page 28: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/28.jpg)
Product Creation
Bulk editing by attribute
Images
Pricing
Inventory
![Page 29: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/29.jpg)
Content Staging
Create content in the
future!
Products
Promotions
CMS pages
Preview pages before
they launch
![Page 30: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/30.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/31.jpg)
Merchant Experience is a Priority
We need your help!
Sign up at Magento.com/research
![Page 33: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/33.jpg)
![Page 34: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/34.jpg)
Olexii Korshenko Senior PHP Developer, Magento 2
![Page 35: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/35.jpg)
Magento 2 XML Configuration Files
![Page 36: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/36.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/37.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/38.jpg)
Goals for Configuration Decomposition
![Page 39: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/39.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/40.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/41.jpg)
Goal #2
Separate configuration models
Mage_Core_Model_Config
Eav\Config
Routes\Config
Cache\Config
Event\Config
…
![Page 42: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/42.jpg)
Goal #3
Application is independent from configuration storage and initial
format
….
DB
XML Reader
? Array
Application
![Page 43: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/43.jpg)
Goal #4
Configuration data validation
Before After
No predefined format for
configuration files
Configuration File +
Schema Definition
![Page 44: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/44.jpg)
Validation Strategy
![Page 45: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/45.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/46.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/47.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/48.jpg)
Magento Config Component
![Page 49: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/49.jpg)
Config Data Config Reader
File Resolver
Converter Schema Locator
Validation State
Magento Config. Component Structure
![Page 50: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/50.jpg)
Config Data Config Reader
File Resolver
Converter Schema Locator
Validation State
Magento Config. Component Structure
![Page 51: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/51.jpg)
Config Data Config Reader
File Resolver
Converter Schema Locator
Validation State
Magento Config. Component Structure
![Page 52: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/52.jpg)
Config Data Config Reader
File Resolver
Converter Schema Locator
Validation State
Magento Config. Component Structure
![Page 53: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/53.jpg)
How to Implement New Configuration Type
![Page 54: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/54.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/55.jpg)
Config Data Config Reader
File Resolver
Converter Schema Locator
Validation State
Magento Config Component Structure
![Page 56: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/56.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/57.jpg)
2 of 4 Config Converter
Convert DOMDocument to array
XML Array
List of interfaces that must be implemented
![Page 58: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/58.jpg)
3 of 4 Configuration Reader
List of interfaces that must be implemented
![Page 59: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/59.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/60.jpg)
Benefits of Magento 2 Configuration
![Page 61: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/61.jpg)
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 63: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/63.jpg)
![Page 64: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/64.jpg)
Migrating Your Theme to Magento 2
![Page 65: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/65.jpg)
Vitalii Korotun Architect, Magento
![Page 66: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/66.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/67.jpg)
01. Magento 2 Overview: Theme Technologies and Techniques
![Page 68: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/68.jpg)
Granularity due to Modularity
![Page 69: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/69.jpg)
Directory Structure M1 M2
![Page 70: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/70.jpg)
Diversity
![Page 71: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/71.jpg)
JavaScript Technologies and Techniques
![Page 72: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/72.jpg)
RequireJS
define(["jquery", "jquery/ui", "domReady!"],
function ($) {
'use strict';
// your business logic here
}
);
![Page 73: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/73.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/74.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/75.jpg)
Layouts, Block and Templates
![Page 76: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/76.jpg)
Layout Files
frontend/rwd/default/layout/catalog.xml Magento/Catalog/view/frontend/layout
M1 M2
![Page 77: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/77.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/78.jpg)
UI Library and CSS
![Page 79: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/79.jpg)
Magento UI Library
• Upgradability
• Consistency
• Extensive list of reusable components
• Styling and design best practices
• Simplifies customization
![Page 80: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/80.jpg)
Magento UI Library Documentation
lib/web/css/docs
![Page 81: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/81.jpg)
CSS Pre-processors
![Page 82: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/82.jpg)
02. Web Developer Workflows CSS pre-processing
![Page 83: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/83.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/84.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/85.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/86.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/87.jpg)
Summary
![Page 88: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/88.jpg)
Development Efforts
Existing M1 experience
Pass M2 Training
1st Module M1 + 50 %
2nd Module M1 + 20%
3rd Module M2 =< M1
![Page 90: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/90.jpg)
![Page 91: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/91.jpg)
Andrey Konosov Architect, Magento 2
![Page 92: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/92.jpg)
Migrating Merchant
Data to Magento 2
![Page 93: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/93.jpg)
• Data structure • How migration tool work • How to customize migration process • Migration workflow
![Page 94: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/94.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/95.jpg)
01. Website Data
![Page 96: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/96.jpg)
MEDIA TEMPORARY CUSTOM
CORE DATA
Data Structure
![Page 97: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/97.jpg)
MEDIA TEMPORARY CUSTOM
CORE DATA
Data Structure
![Page 98: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/98.jpg)
MEDIA TEMPORARY CUSTOM
CORE DATA
Data Structure
![Page 99: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/99.jpg)
02. Migration Tool
![Page 100: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/100.jpg)
Load Transform
Migration Tool
Magento 1
Extract
Magento 2
Magic
![Page 101: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/101.jpg)
Tool Structure
1. Attributes 2. Custom 100. Map
![Page 102: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/102.jpg)
Tool Structure
1. Attributes 2. Custom 100. Map
Integrity check
Migration
Volume check
![Page 103: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/103.jpg)
03. Customization
![Page 104: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/104.jpg)
Map Customizations
MAJORITY of tables could be migrated
USING MAP
![Page 105: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/105.jpg)
Map
<ignore> <move> <transform>
*Default action is copy
![Page 106: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/106.jpg)
Load Transform
Transformation Handlers
Magento 1
Extract
Magento 2
serialize
json
string replace
values map
![Page 107: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/107.jpg)
4. Step
Custom Steps
1. Step 2. Step 3. Custom 5. Step
![Page 108: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/108.jpg)
04. Workflow
![Page 109: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/109.jpg)
Workflow
![Page 110: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/110.jpg)
Workflow
1
INSTALL THE SOFTWARE
![Page 111: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/111.jpg)
Workflow
2
MIGRATE SETTINGS, WEBSITES
![Page 112: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/112.jpg)
Workflow
3
CUSTOMIZE YOUR MAGENTO 2
![Page 113: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/113.jpg)
Workflow
4
FREEZE STORE ON MAGENTO 1
Storefront usage
Orders management
Products management
Content management
![Page 114: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/114.jpg)
Workflow
5
LAUNCH THE MAGIC TOOL
![Page 115: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/115.jpg)
Workflow
6
DELIVER INCREMENTAL DATA
![Page 116: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/116.jpg)
Workflow
7
SHUTDOWN MAGENTO 1 WEBSITE
![Page 117: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/117.jpg)
Workflow
8
REFRESH TEMPORARY DATA
>./magento indexer:all cache warmup
![Page 118: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/118.jpg)
Workflow
9
OPEN MAGENTO 2 STORE
![Page 119: Magento 2 Developer Deep Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/119.jpg)
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 Dive · Demystifying Code Generation 2:30 – 3:00 Andrey Konosov Magento Software Architect Caching Optimization for Magento Code Development 3:00 – 4:00](https://reader036.fdocuments.us/reader036/viewer/2022070714/5ed6b5a3caf45b18673a5a4b/html5/thumbnails/120.jpg)
Thank you!
Credits: Icons designed by Freepik
Andrey Konosov [email protected]
Q & A
Migrating Merchant Data to Magento 2