Hyvä Admin : finalisation du module qui rend l’admin Magento 2 plus souple et rapide

Présentation du module open-source Hyvä Admin, avec des exemples de grilles produits, commandes et CMS — sans UI Components.

📅 Mars 2025  |  🕒 8 min de lecture  |  🏷️ Magento 2, Hyvä, Admin, Performance


ModuleCompatibilitéUI ComponentsLicenceGrilles inclusesConfig
Hyvä AdminMagento 2.4+Aucun requisOpen SourceProducts, Orders, CMSXML déclaratif

Sommaire


Pourquoi l’admin Magento 2 est pas foufou

Tout développeur Magento 2 le sait : créer une grille ou un formulaire dans l’interface d’administration, c’est s’aventurer dans les méandres des UI Components. Cette architecture basée sur Knockout.js et des fichiers XML imbriqués est puissante, certes — mais elle est lente à maîtriser, difficile à déboguer et génère des pages admin qui peinent à se charger.

Entre les listing.xml, les form.xml, les providers de données et les composants virtuels, le moindre ajout d’une colonne personnalisée semble parfois compliqué, abstrait. Sans parler des performances : les UI Components chargent du JavaScript lourd côté client, ce qui alourdit considérablement l’expérience.

Hyvä Admin : une alternative allégée des UI Components

C’est exactement le problème que résout Hyvä Admin, le module open-source de l’équipe Hyvä Themes. L’objectif affiché est clair : rendre la création de grilles et de formulaires dans l’adminhtml de Magento 2 rapide et agréable.

Le module fonctionne en réduisant les couches natives d’UI Component. On repart sur une base qui s’appuie sur une configuration XML simple et génère des interfaces propres, légères et performantes. Exit Knockout.js, bootstrap ui, place à des templates PHP/HTML classiques, faciles à personnaliser et à étendre.

Exemple pour ajouter une colonne Select dans magento 2 natif

<column name="name" class="Vendor\Module\Ui\Component\Listing\Column\Name">
    <argument name="data" xsi:type="array">
        <item name="options" xsi:type="object">Vendor\Module\Model\Source\Type</item>
        <item name="config" xsi:type="array">
            <item name="filter" xsi:type="string">select</item>
            <item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item>
            <item name="dataType" xsi:type="string">select</item>
            <item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item>
            <item name="label" xsi:type="string" translate="true">Name</item>
            <item name="sortOrder" xsi:type="number">80</item>
            <item name="visible" xsi:type="boolean">false</item>
        </item>
    </argument>
</column>

Et maintenant sous Hyva

<column name="website_ids" label="Websites" type="website_id" template="Hyva_Admin::grid/content.phtml" source="Magento\Store\Model\ResourceModel\Website\Collection"/>

Les atouts clés

Performance
Rendu serveur, aucun JS lourd côté client.

📄 Config XML simple
Une syntaxe déclarative claire et prévisible.

🔧 Extensible
Colonnes custom, renderers, filtres, actions de masse.

🎯 DX améliorée
Développement plus rapide, debugging aisé.

Exemple du module : grilles produits, commandes et CMS / Avec formulaire en ajax

J’ai récemment finalisé l’intégration complète du module Hyvä Admin sur un projet Magento 2. Le projet était déjà bien avancé par la communauté, il manquait plus que à mettre en place les models de save, load, les inputs, les layouts et quelques interfaces. Vous pouvez trouver le core du projet git sur ce lien.

Ajouté à ce module, il faut installé aussi Hyva admin Test qui comporte tous les grids et de formulaires réalisés.

Grille des produits du catalogue

La grille catalogue affiche, comme la grille native, les produits avec colonnes SKU, nom, prix, stock et statut.

Grille produits Hyvä Admin Magento 2 – interface sans UI Components par Pixellescence

Grille CMS, Customers & Sales : commandes, factures, livraisons et remboursements

Pareil pour les autres grilles, j’ai remis tous les éléments natifs. A savoir les mêmes mass action, les mêmes variables de grilles, export csv etc.

Formulaire Hyva Admin

Le formulaire ressemble à celui natif de magento mais il est bien épuré et plus rapide ! Avec un Save intégré en Ajax.

Formulaire Hyvä Admin Magento 2 avec sauvegarde Ajax – développement Pixellescence

A partir des formulaires on peut maintenant créer plus facilement de nouveaux modules dans l’admin de Magento. Pour exemple ici https://github.com/tweetyx/pagespeedfr_cmsacf ; j’ai développé un module qui comporte à la fois la grille et le formulaire sur la même page. Cela permet une interface de gestion plus interactif, plus rapide ! La sauvegarde étant en ajax, la page ne se recharge pas donc on peut enchainé les créations et éditions de nos données.

Le module Hyva advance custom field que j’ai développé ici permet, à la chaine, d’uploader des images, fichiers, textes et liens. Cela évite au client d’avoir à faire dans certain cas du HTML ou malencontreusement à modifier du html et casser tout le site.

Formulaire Hyvä Admin module ACF Magento 2 avec sauvegarde Ajax – développement Pixellescence

Comparatif : UI Components vs Hyvä Admin

Voici un tableau récapitulatif des différences concrètes entre les deux approches :

CritèreUI Components (natif)Hyvä Admin
Courbe d’apprentissageTrès élevéeFaible
ConfigurationXML complexe, imbriquéXML simple et lisible
Dépendance Knockout.js✅ Oui❌ Non
Performance chargementLente (JS lourd)Rapide (rendu serveur)
DebuggingDifficileStandard PHP/HTML
Colonne personnalisée30–60 min5–10 min
Compatibilité Magento 2✅ Native✅ 2.4+
Open Source✅ Oui✅ Oui
Formulaires admin✅ Oui✅ Oui
Support Alpine.js / Tailwind❌ Non natif✅ Compatible

FAQ — Questions fréquentes sur Hyvä Admin

Les questions les plus fréquentes sur Hyvä Admin.

La migration se fait progressivement. Il suffit de créer un nouveau fichier XML de configuration Hyvä Admin et de rediriger l’URL vers le nouveau controller. Les grilles natives peuvent coexister avec les grilles Hyvä Admin pendant la transition. La documentation officielle du module fournit des exemples détaillés.

Oui. Hyvä Admin est compatible avec Magento 2.4.x et les versions suivantes. Il ne remplace pas le core Magento mais s’y intègre en tant que module additionnel. Aucune dépendance à Hyvä Theme (front-office) n’est requise pour utiliser Hyvä Admin.

Oui, le module couvre à la fois les grilles (listing) et les formulaires (form). Les formulaires supportent les fieldsets, les dépendances conditionnelles entre champs, les validations et les onglets. La syntaxe reste aussi simple que pour les grilles.

Absolument. Hyvä Admin est un module indépendant dédié à l’interface d’administration. Il fonctionne parfaitement avec le thème Luma ou tout autre thème front-office. Les deux modules (Hyvä Theme et Hyvä Admin) sont complètement dissociés.

Pour des cas d’usage très complexes avec des interactions JS avancées côté client, les UI Components natifs offrent plus de flexibilité. Hyvä Admin cible les grilles et formulaires classiques qui représentent 90 % des besoins. Pour les 10 % restants (widgets interactifs poussés), une approche hybride reste possible.