Upload
altima-north-america
View
68
Download
0
Embed Size (px)
Citation preview
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