{"id":7570,"date":"2025-06-29T08:46:26","date_gmt":"2025-06-29T06:46:26","guid":{"rendered":"https:\/\/www.h-hennes.fr\/blog\/?p=7570"},"modified":"2025-06-29T08:46:27","modified_gmt":"2025-06-29T06:46:27","slug":"magento-2-ajouter-une-colonne-dans-la-grid-admin-des-commandes","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2025\/06\/29\/magento-2-ajouter-une-colonne-dans-la-grid-admin-des-commandes\/","title":{"rendered":"Magento 2 : Ajouter une colonne dans la grid admin des commandes"},"content":{"rendered":"\n<p>Voici un tutoriel rapide sur la proc\u00e9dure pour rajouter un nouvelle colonne d&rsquo;information dans la grille admin des commandes.<br \/>Dans notre hypoth\u00e8se je pars sur l&rsquo;hypoth\u00e8se qu&rsquo;on souhaite que la colonne soit physiquement pr\u00e9sente dans la table sales_order_grid de la base de donn\u00e9es.<br \/>Et pour l&rsquo;exemple nous allons rendre disponible le coupon de r\u00e9duction utilis\u00e9 sur la commande.<br \/>Celui-ci est initialement stock\u00e9 dans la colonne coupon_code dans la table sales_order<\/p>\n<p>Pour cela on va cr\u00e9er un module Hhennes_OrderAdminGrid (le lien vers le code sur github est disponible en fin d&rsquo;article)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ajout de la colonne dans la table sales_order_grid<\/h3>\n\n\n\n<p>Pour cela nous pouvons mettre le code suivant dans le fichier etc\/db_schema.xml de notre module<\/p>\n\n\n\n\n\n<h3 class=\"wp-block-heading\">Ajout de colonne dans la vue admin<\/h3>\n\n\n\n<p>Pour cela nous pouvons mettre le code suivant dans le fichier view\/adminhtml\/ui_component\/sales_order_grid.xml<\/p>\n\n\n\n<pre lang=\"xml\"><?xml version=\"1.0\"?>\n<listing xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n         xsi:noNamespaceSchemaLocation=\"urn:magento:module:Magento_Ui:etc\/ui_configuration.xsd\">\n    <columns name=\"sales_order_columns\">\n        <column name=\"coupon_code\">\n            <settings>\n                <label translate=\"true\">coupon code<\/label>\n                <filter>text<\/filter>\n                <sorting>asc<\/sorting>\n                <visible>true<\/visible>\n            <\/settings>\n        <\/column>\n    <\/columns>\n<\/listing><\/pre>\n\n\n\n\n<h3 class=\"wp-block-heading\">Gestion de la copie de la donn\u00e9es vers la table sales_order_grid<\/h3>\n\n\n\n<p>Pour cela il est n\u00e9cessaire dans le fichier di.xml de rajouter un param\u00e8tre avec le nom de notre colonne ainsi que sa table source sur la classe virtuelle Magento\\Sales\\Model\\ResourceModel\\Order\\Grid\u00a0\u00bb<\/p>\n\n\n\n<pre lang=\"xml\">\n<?xml version=\"1.0\"?>\n<config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n        xsi:noNamespaceSchemaLocation=\"urn:magento:framework:ObjectManager\/etc\/config.xsd\">\n    <!-- Add customer_note column to sales_order_grid -->\n    <virtualType name=\"Magento\\Sales\\Model\\ResourceModel\\Order\\Grid\" type=\"Magento\\Sales\\Model\\ResourceModel\\Grid\">\n        <arguments>\n            <argument name=\"columns\">\n                <item name=\"coupon_code\" xsi:type=\"string\">sales_order.coupon_code<\/item>\n            <\/argument>\n        <\/arguments>\n    <\/virtualType>\n<\/config>\n<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2025\/06\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"94\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2025\/06\/image-1024x94.png\" alt=\"\" class=\"wp-image-7571\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2025\/06\/image-1024x94.png 1024w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2025\/06\/image-300x28.png 300w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2025\/06\/image-768x71.png 768w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2025\/06\/image-1536x141.png 1536w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2025\/06\/image.png 1796w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Et voila la logique est relativement simple \u00e0 mettre en place et la colonne est bien visible et remplie. \ud83d\ude42 <br \/>Vous pouvez retrouver le code complet du module sur github ici :\u00a0<a title=\"https:\/\/github.com\/nenes25\/magento2_samplemodules\/tree\/master\/Hhennes\/OrderAdminGrid\" href=\"https:\/\/github.com\/nenes25\/magento2_samplemodules\/tree\/master\/Hhennes\/OrderAdminGrid\">https:\/\/github.com\/nenes25\/magento2_samplemodules\/tree\/master\/Hhennes\/OrderAdminGrid<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici un tutoriel rapide sur la proc\u00e9dure pour rajouter un nouvelle colonne d&rsquo;information dans la grille admin des commandes.Dans notre hypoth\u00e8se je pars sur l&rsquo;hypoth\u00e8se qu&rsquo;on souhaite que la colonne soit physiquement pr\u00e9sente dans la table sales_order_grid de la base de donn\u00e9es.Et pour l&rsquo;exemple nous allons rendre disponible le coupon de r\u00e9duction utilis\u00e9 sur la [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[246],"tags":[617,482,618],"class_list":["post-7570","post","type-post","status-publish","format-standard","hentry","category-magento-2","tag-admin-grid","tag-magento-2","tag-order-grid"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/7570","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=7570"}],"version-history":[{"count":3,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/7570\/revisions"}],"predecessor-version":[{"id":7574,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/7570\/revisions\/7574"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=7570"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=7570"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=7570"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}