What’s in Magento 2.3? - imagine.magento.com€™s in Magento... · Terminology Term Definition...

Post on 13-Sep-2018

221 views 0 download

transcript

What’s in Magento 2.3? Olga Kopylova | Lead architect | Magento

Terminology

Term Definition

Magento Open Source Formerly Community Edition (CE)

Magento Commerce Formerly Enterprise Edition (EE)

Core Bundled Extension (CBE) Extension:

- By 3rd-party vendor

- Bundled with Magento product

Magento 2.3 Releases

2.3.0 2.3.1 2.3.2 2.3.3

patch releases

• New core features

• Bug fixes

• Possible breaking changes

• Additional features

• Bug fixes

• No breaking changes

Backward Incompatible Changes in 2.3

http://devdocs.magento.com/guides/v2.3/release-notes/backward-incompatible-changes/index.html

Features and

Improvements in 2.3

Progressive Web Apps (PWA)

PWA

• Progressive Web Apps

(PWA) are reliable, fast, and

engaging

• Offline support and push

notifications

• Increase in conversion rates

• PWA Studio built by Magento

https://developers.google.com/web/fundamentals/

Magento 2.3.x

PWA sessions:

• Monday: 9:30-10:15

• Wednesday: 9:30-10:15

GraphQL

GraphQL for Fast PWA

• GraphQL is a query API language

• Optimized queries for faster frontend

• Independent backend and frontend

development

• GraphQL endpoint added, in addition to

REST and SOAP

– Focused on storefront scenarios

http://devdocs.magento.com/

guides/v2.3/graphql/

Magento 2.3.0

GraphQL Schema Magento 2.3.0

GraphQL – request list of products

GraphQL: Future Plans

• Mutations to support checkout, payments

• Storefront GraphQL API for checkout, orders, my account

• Improvements in GraphQL framework

Community project - https://github.com/magento/graphql-ce/wiki

Magento 2.3.x and 2.4

Extensions with GraphQL Support

Separate GraphQl module

GraphQl schema file

BundleGraphQl/etc/schema.graphqls

Declarative DB Schema

Old Schema Setup Script• Imperative

• Large

• Growing complexity

Declarative Schema Magento 2.3.0

Magento/Store/etc/db_schema.xml

Declarative Schema

• Declare desired state

• Easy to understand how the final schema looks like

• Idempotent

• Rollback support

Magento 2.3.0

Upgrade Patches

• Patches are classes in

Setup/Patch folder

• Data patches for data

upgrades

• Schema patches for

complex schema upgrades

Magento 2.3.0

Data Upgrade Patch

• Implement a patch

interface

• Declare necessary

methods

• The patch will be

executed once and

recorded

Setup Scripts Backward Compatibility

• Magento Framework supports both old and new approaches

• Migration of old scripts using install/upgrade scripts with

“--convert-old-scripts” option

http://devdocs.magento.com/guides/v2.3/

extension-dev-guide/declarative-schema/

Magento 2.3.0

Asynchronous and

Bulk Web APICommunity Contributions

Asynchronous Web API

• Asynchronous Web API allows to

execute Web API calls

asynchronously

• Separate Status Reporting API is

offered to check on the progress of

requests by ID

Contributors:

• Alex Lyzun (Comwrap)

• Alex Vasiliev (Comwrap)

• Carey Sizer (Balance Internet)

Magento 2.3.0

POST /async/V1/products

PUT /async/V1/products

DELETE /async/V1/products

Async requests:

Asynchronous Bulk API

• Processing multiple entities in a single

request

• Asynchronous bulk API

• Both async APIs based on message

queue

Contributors:

• Alex Lyzun (Comwrap)

• Alex Vasiliev (Comwrap)

• Carey Sizer (Balance Internet)

Magento 2.3.0

POST /async/bulk/V1/products

PUT /async/bulk/V1/products

DELETE /async/bulk/V1/products

Async bulk requests:

Message Queue Moved to Open Source

• Simplifies implementation of

modules by avoiding

– custom queue solutions for Open

Source modules

– different solutions for Open Source

and Commerce modules

• Async Web API is available in

Open Source

Contributor:

• Alisson Oldoni (Netstarter)

Elasticsearch UpdatesCommunity Contributions

Elasticsearch Updates

• Moved to Magento Open Source

• May become a default search

engine in the future

• ES 5 support added

Contributors:• Aurélien Foucret

Magento 2.3.0

PHP 7.2 SupportCommunity Contributions

PHP 7.2 Support Magento 2.3.0

• To stay on top of supported technologies

• Ability to use latest language features

• More secure libsodium instead of mcrypt

Initial PHP 7.2 Support

• Breaking changes

– Libraries upgrade

– Any necessary changes in public API

– ZF1 cleanup – 15+ libraries removed

• Critical scenarios on PHP 7.2

• mcrypt_compat library for mcrypt

support on PHP 7.2

Magento 2.3.0

Contributors:• Roma Slobodeniuk

• Patrick McLain

• Paweł Cieślik

• Max Bucknell

• Diego Cabrejas

• John Knowles

• Reka Szekely

• Pablo Benitez (Ebizmarts)

• Marcel Hauri

Complete PHP 7.2 Support

• Complete PHP 7.2 support in 2.3.x patch releases

• Address issues reported after 2.3.0 release, if any

• Migrate from mcrypt to libsodium

Magento 2.3.x

https://github.com/magento-engcom/php-7.2-support/wiki

Package Versioning

in Git Repositories

Package Versioning

• Package versions are removed from composer.json in Git

• Versions are generated during release publication

Magento 2.3.0

Multi Source Inventory (MSI)Community Contributions

Multi Source Inventory (MSI) Magento 2.3.0

• Multiple locations for products

• Locations called sources in Magento

MSI: Reservations

Keep inventory amount (product quantity) up-to-date without

locking.

France Warehouse

SKU-1: 5qtyEU Stock

SKU-1: 15qtyItaly Warehouse

SKU-1: 10qty

Raw data Index Reservations

SKU-1: -5

Salable Qty: 10qty (data from index 15, apply all reservations -5)

Data is NOT changed Reservation has been

added

5 items ordered

MSI as an Exemplar Community Project

https://github.com/magento-engcom/msi/wiki

66 Individual

Contributors

Agencies

Represented

interjar

16

WYSIWYG Upgrade

WYSIWYG Upgrade

• TinyMCE is upgraded from version 3 to version 4

• Fully customizable and replaceable WYSIWYG

– Widgets, variables and media gallery implemented as plugins

– Plugins can be defined globally or on per instance level

• TinyMCE 3 is deprecated and planned for removal in Magento

2.4

– TinyMCE version can be selected in Admin Panel

– Old version of TinyMCE is delivered as “Magento_Tinymce3”

module

Magento 2.3.0

Page Builder

Page Builder

Admin View

Storefront View

Magento Commerce or paid extension in 2.3.x

Page Builder Components

• PageBuilder provides basic

components

• Component declared in XML file

column.xml

Page Builder Technologies

• KnockoutJS

• TypeScript

• Magento UI components

Page Builder Release Schedule

Magento 2.3.0 Magento 2.3.x

Page Builder EAP Page Builder Beta Page Builder GA

• Not listed on Marketplace

• Installed via Composer

• Bundled with Magento Commerce

• Available at Marketplace

• Selected partners• Commerce merchants

• Partners

Page Builder session:

Tuesday, 3:45-4:30 by Olena Tkacheva

Import/Export ImprovementsCommunity Contributions

Import/Export Improvements

Contributors:• Federico Rivollier

• Adam Paterson

• Umar Chaudhry

• Pieter Cappelle

• Andra Lungu

• Marcin Szterling

Magento 2.3.0

https://github.com/magento-

engcom/import-export-improvements/wiki

Cache Management ACLCommunity Contributions

Cache Management ACL

Contributor:• Bartosz Herba (CTI Digital)

Magento 2.3.0

Instant PurchaseCommunity Contributions

Instant Purchase

Contributors:• Joshua Warren (Creatuity)

• Daniel Korzeniowski (Creatuity)

• Michal Pietrzyk (Creatuity)

• Jan Polak (Creatuity)

Magento 2.3.0, 2.2.2

PR was created the next day after

the Amazon patent expired

Google reCAPTCHACommunity Contributions

Google reCAPTCHA Magento 2.3.0

Contributor:• Riccardo Tempesta

Two Factor AuthenticationCommunity Contributions

Two Factor Authentication

Contributors:• Riccardo Tempesta

Magento 2.3.0

Q & A@buskamuza on Twitter

okopylova@magento.com for emails and Slack