altimaº x M3.3 Magento 2 api components

Post on 22-Feb-2017

65 views 0 download

Transcript of altimaº x M3.3 Magento 2 api components

ctrlweb, 16 Février 2017

M3.3 Magento 2 API Componentsaltima x M3

qui suis-je?

Florian Salvaterra

mon rôle Développeur Magento Confirmé

formation BTS - IG (DEC Technique) Informatique de Gestion

expérience Développeur Magento - Galilée Ingénieur Études et Développement - Smile Développeur Magento Confirmé - altima°

principaux projet Fits - Qwetch - Dalloz - Fleur’t - MontelleKrys - Total - Alltides

1

2

3

4

5

pattern interceptor introduction à son utilisation

au programme

import catalogue multistore/multilangue, stock et catégories

gain de maturité? points clés sur la différence avec Magento 1.x

retour d’expérience appréciation personnelle

échange/questions à vous les studios

pattern interceptor

quoi?

pattern interceptor

permet la modification d’un comportement de manière transparente

le processus reste identique

pattern interceptor

6

7

schéma

pattern interceptor

8

• before (preprocessing)

• after (postprocessing)

• around (preprocessing & postprocessing)

actions

pattern interceptor

pourquoi?

pattern interceptor

règle le problème de la surcharge multiple dans Magento 1.x

une variable sortOrder définit l’ordre de traitement

pattern interceptor

10

comment?

pattern interceptor

déclaration d’un plugin

<config> <type name="{ObservedType}"> <plugin name="{pluginName}" type="{PluginClassName}" sortOrder="1" disabled="false"/> </type> </config>

pattern interceptor

12

import catalogue

import catalogue

multistore/multilangue

import catalogue

avant

$product->setStoreId($storeId)->setData($data, ‘attribute’);

import catalogue

15

après

$this->_productAction->updateAttributes($productsIds, $Attributes, $storeId);

import catalogue

16

catégories

import catalogue

avant

$product->setCategoryIds($menus);

$product->save();

import catalogue

18

après

$this->getCategoryLinkManagement()->assignProductToCategories( $product->getSku(), $productCategories );

import catalogue

19

inventaire

import catalogue

avant$product->setStockData( array( 'use_config_manage_stock' => 0, 'manage_stock' => 1, 'is_in_stock' => 1, 'qty' => 999999999 ) );

import catalogue

21

après $stockItem = $this->_stockRegistry->getStockItemBySku($sku);

$stockItem->setQty($qty);

$stockItem->setIsInStock($qty>0);

$this->_stockRegistry->updateStockItemBySku($sku, $stockItem);

import catalogue

22

gain de maturité?

gain de maturité?

oui…

gain de maturité?

une séparation des traitements plus claire permettant d’identifier exactement quel

composant fait quoi

et un apprentissage plus facile du fonctionnement

gain de maturité?

25

l’utilisation des plugins qui permet l’intégration de la logique métier

spécifique au client

et la modification rapide de ces derniers

gain de maturité?

26

le productRepository permet d’éviter de différencier création et mise à jour

association des données par Sku

gain de maturité?

27

mais non

gain de maturité?

l’utilisation à toutes les sauces de la méthode dépréciée

la méthode save() est dépréciée mais utilisée dans le core

gain de maturité?

29

des composants qui lèvent des exceptions car non compatibles

avec le productRepository

entre autres: la gestion des données par storeview, la gestion des rôles d’image, …

gain de maturité?

30

retour d’expérience

retour d’expérience

contexte

retour d’expérience

33

• Deux montées de version durant le développement

• Comportement métier spécifique

• Jeunesse de la plateforme et de l’équipe

ERP custom x Magento 2

retour d’expérience

mon ressenti

retour d’expérience

une expérience frustrante car un manque de logique dans

l’utilisation des composants

ce qui paraît évident ne l’est parfois pas du tout (ce qui n’est pas sans rappeler certains

comportements de Magento 1.x)

retour d’expérience

35

une confiance plutôt timide envers l’avenir de Magento 2.x

beaucoup d’améliorations mais l’impression de faire face à beaucoup de balbutiements

retour d’expérience

36

Florian Salvaterra Développeur Magento Confirmé

florian@altima-agency.ca

merci