Magento 2

septembre 1, 2012 7 Commentaires

Nous avons testé magento 2, version très attendue qui doit gommer les petites imperfections de la version 1 ( 1.7.0.2 actuellement). Cet article et une ébauche de ce que propose magento 2, il est en phase de dev et de test, l’article évoluera en fonction de nos tests et de l’avancement des dev. Sortie prévue fin 2012 début 2013.

Thème design Intégration avec magento 2

Modification de la structure des fichiers de design de magento, dossier template layout de structure et le dossier Skin.
=> Sous magento 1.x
Quand un intégrateur travailler sur magento il devait jongler entre plusieurs dossiers principaux
app/design/frontend/[interface]/[theme]
skin/frontend/design/[interface]/[theme]
Plus le dossier media et js (js qui étaient dispatché dans le dossier js à la racine du site ou dans le dossier js du dossier skin)
Pas très pratique en général ii fallait ouvrir 2 versions de fedzilla (ou autre logiciel ftp ) pour travailler plus rapidement, une pour chaque branche. Pas évident d’avoir le thème disptaché dans x dossiers (gestion des droits plus compliqués). Nous verrons plus bas que magento 2 ajoute un dossier public « pub ».

Ce qui va changer pour les intégrateurs sous magento 2:

Tous les fichiers nécessaires à la mise en page de magento sont regroupés dans un seul dossier ci-joint le screen shot du modern theme de magento.

Nous verrons plus loin que ces fichiers sont dupliqués dans un dossier pub.

Décomposition d’un thème sous magento 2

Sous magento 1.xles fichiers phtml (phtml = mélange de code html et php) et layout étaient dans un dossier template pour les phtml, un dossier layout pour les layouts. Chaque layout était nommé de manière explicite (catalogSearch.xml , contact.xml, catalogxml…).

Les layout sous magento 2 : Tous les layout sont nommés layout.xml, ils sont classé par module, dans des dossiers au nom explicite « Mage_Catalog » qui contient
_layout.xml (equivalent sous magento 1.x de « app/design/frontend/[interface]/[theme]/layout/catalog.xml » )
« Mage_Customer » qui contient
_layout.xml (equivalent sous magento 1.x de « app/design/frontend/[interface]/[theme]/layout/customer.xml » )
Les phtml sous magento Les phtml sont placés dans
_product ( equivalent sous magento 1.x de « app/design/frontend/[interface]/[theme]/template/catalog/product » )

Le fallback de magento fonctionne toujours, mais ou sont les fichiers d’origines ? Ils sont bien au chaud dans le core magento ( qui représente un niveau de fallback supplémentaire). On peut bien sur créer ses propres niveaux de fallBack dans les dossiers du thème. Exemple d’emplacement de fichier template dans le core de magento pour le fichier head.phml :
magento_deux\app\code\core\Mage\Page\view\frontend\html\head.phtml
Ainsi on a encore moins de risque de toucher au fichier source du thème magento. Ce qui n’était pas toujours le cas dans magento 1.4 ( nous avons récupéré plein de projets où les dossiers base/default étaient modifiés ). Sans parlait des modules qui écrivait dans base/defaut.
Avec magento2 les fichiers de base sont dans le core de magento dispatchés dans leurs modules respectifs :

Le header => magento_deux\app\code\core\Mage\Page\view\frontend\html\header.phtml
La page catégorie => magento_deux\app\code\core\Mage\Catalog\view\frontend\product\list.phtml
La page produit => magento_deux\app\code\core\Mage\Catalog\view\frontend\product\view.phtml
La page panier => magento_deux\app\code\core\Mage\Checkout\view\frontend\cart.phtml

Xml de configuration de thème

Premier réflexe que j’ai eu pour créer un nouveau thème dupliquer le thème modern de magento et le renommer « mon_theme » mais cette technique ne fonctionne plus et lève une erreur :
a:5:{i:0;s:43: »Unknown theme…
Après une recherche je m’aperçois que les nouveaux thèmes possèdent un fichier de configuration. Voici celui du modern thème

<design>
    <package code="default">
        <title>Default</title>
        <theme version="2.0.0.0" code="modern" parent="default">
            <title>Modern</title>
            <requirements>
                <magento_version from="2.0.0.0-dev1" to="*"/>
            </requirements>
        </theme>
    </package>
</design>

Petite nouveauté on peut choisir à partir de quelle version le thème est compatible. On peut choisir son thème parent, donc en théorie un thème différent que « default » . ce qui permet paramétrage beaucoup plus fin ( notamment pour les thèmes complexes. C’est une théorie je n’ai pas encore testé cette fonctionnalité. Je publierai un billet uniquement sur les templates magento2, avec plus de détails.

Lors du lancement du site les fichiers css image sont copier dans le dossier pub pour public. magento_deux/pub/media/skin/frontend/default/modern/default/fr_FR/css/styles.css

Ajout d’un dossier Pub ( public )

Sous magento 1.x les éléments du thème étaient dispatchés un peu partout dans app/skin/frontend/[interface]/[theme]/js ou dans le dossier js à la racine du site etc. Difficile de tout regrouper tous dans un même dossier quand on sait que certaines extensions mettaient des fichiers un peu partout.
Magento 2 regroupe tous les fichiers dans un dossier public. Ce regroupement est effectué à l’activation d’un nouveau thème. Voici un screen-shot qui montre que la date de création des thèmes est différente en fonction de la date d’activation du thème.

Ce nouveau dossier permettra de regrouper tous les éléments publics du site et ainsi appliquer des droits précis sur ce dossier. Ce dossier contient également le logo :
magento_deux/pub/media/skin/frontend/default/default/default/fr_FR/images/logo.gif

Apparition du designer glissez déposer ou Visual Design Editor

C’est un éditeur de page un peu comme sur magento go http://bloggento.fr/magento-go-/3267 (pour ceux qui ont testé). Le principe permettre de modifier les blocks sur les pages par glisser-déposer.
Cette fonctionnalité fera partir d’un billet spécial voici pour l’instant le screenShot.

Conception de module personnel :

La conception des modules a été modifiés, désormais les fichiers layout et template des modules ne sont plus dispatchés dans les thèmes respectifs du site, mais directement dans un dossier view du module.
Voici un exemple avec le module communautaire Moneybookers sous magento 2 :
magento_deux\app\code\community\Phoenix\Moneybookers\view
_adminhtml
_email
_frontend

Traduction magento

Sous magento 1.x les traductions par défaut étaient placées dans le dossier /app/locale/en_US et /app/locale/fr_FR, ont pouvait aussi ajouter un fichier de traduction qui surcharger les traductions par défaut dans le thème de magento app/design/frontend/[interface]/[theme]/locale

Les traductions sous magento 2
Même principe de surcharge les traductions par défaut sont placées dans le core de magento ( Pour l’instant ça sent la traduction faite automatiquement via des scripts ou google traduction). Ce qui donnes des traductions différentes de celles présentes sous magento 1.x exemple :
ma liste d’envie => ma liste de voeux
Mon panier => Mon caddy
….

La Partie Back-office de magento 2

Changement dans les jeux attributs, apparition d’un jeu d’attributs « minimal ».
Sous magento 1.3x après une installation il y avait le jeu d’attribut « default », il regroupait tous les attributs de base obligatoires et non obligatoires.
Le nouveau jeu d’attribut minimal contient seulement les attributs obligatoires
Name
description
short_description
sku
price
status
visibility
weight
price_view
Tax_class_id
Évidemment vous pouvez aussi rajouter d’autres attributs qui semble indispensables comme image meta title…. Vous pouvez confectionner votre propre jeu d’attribut minimal.

Changement de politique d’aide de magento

Le manque de documentation officielle de la version 1 était souvent décrié. L’équipe de magento à bien retenu la leçon, La v2 est accompagnée d’une documentation et d’un wiki officiel. La prise en main de magento 2 sera donc plus facile.

Autres changements en vrac ( pas les moins importants )

Possibilité d’installer magento avec d’autres base que mysql
PostgreSQL( ce qui utilise magento et open erp seront ravie )
oracle
MSSQL
Changement de librairie Js adios prototype welcome Jquery (Snif je l’aimais bien moi prototype)

Conclusion

De nombreux défauts inhérents à la version 1 sont gommés dans cette version 2. La structure des fichiers est simplifiée ,bien qu’elle soit un peu déroutante par rapport à magento 1 elle devrait rapidement s’imposer. Il reste encore quelques mois de dev nous allons voir ce que proposera la v2. Un peu tôt, pour se prononcer attendons que les dev soient terminés. Voila le reste suivra au fil de nos découvertes, suivez nous sur Twitter pour les nouveautés.
Projet à télécharger ici

Actualité
7 commentaires : “Magento 2”
  1. Debb dit :

    L’accent a été mis sur la simplicité d’intégration. Cette version de dev est facile à installer ?

  2. sev dit :

    Vous conseillez une mise à jour vers la dernière version 1.7.0.2, ou il faut attendre magento 2.

  3. Web Cluster dit :

    Vis à vis des performances et TTFB, on reste dans les mêmes normes que la Magento 1 ou on peut espérer de véritables améliorations sans forcément passer par des solutions compliquées style Nitrogento ?

  4. cédric rousset dit :

    @debb
    Pour l’installation c’est pareil que magento 1x
    @sev
    Il faut faire une mise à jour 1.7.02 pour supprimer la faille de sécurité ou alors appliquer la patch. La version 2 sort en fin année ou début 2013. Il faut savoir qu’il vaut mieux attendre un mois ou deux avant de migrer..
    @web Cluster
    Par fait de test sur ces points. Mais un partenaire intégrateur est arrivé a un TTFB bas avec magento 1. Sans passer par des solutions nitrogento ou autres modules d’optimisation. Je lui demanderai de tester la version 2

  5. Romario dit :

    Y a t-il une procédure particulière pour la mise à jour v1.7.0.2 > v2 ?

    Merci

  6. cédric rousset dit :

    Nous n’avons pas encore fait de mise à jour vers magento 2. De plus, cette version est toujours en développement, il n’est donc pas conseillé de migrer vers cette version.

  7. [...] See on bloggento.fr [...]

Poster un commentaire

(obligatoire)

(obligatoire)