{"id":2710,"date":"2024-12-31T20:26:01","date_gmt":"2024-12-31T20:26:01","guid":{"rendered":"https:\/\/meetanshi.com\/blog\/how-to-display-product-image-in-order-create-page-in-magento-2\/"},"modified":"2025-03-17T06:19:06","modified_gmt":"2025-03-17T06:19:06","slug":"display-product-image-in-order-create-page-in-magento-2","status":"publish","type":"post","link":"https:\/\/meetanshi.com\/blog\/display-product-image-in-order-create-page-in-magento-2\/","title":{"rendered":"How to Display Product Image in Order Create Page in Magento 2"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Magento Folks!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We all love&nbsp;<a href=\"https:\/\/business.adobe.com\/products\/magento\/magento-commerce.html\" target=\"_blank\" rel=\"noreferrer noopener\">Magento<\/a>&nbsp;because of its extensive customization capabilities, and this blog post is dedicated to another&nbsp;<a href=\"https:\/\/meetanshi.com\/magento-development-services.html\" target=\"_blank\" rel=\"noreferrer noopener\">Magento 2 customization<\/a>&nbsp;tutorial  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog, I am going to show you&nbsp;the method to&nbsp;<strong><em>display product image in order create page in Magento 2<\/em><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/meetanshi.com\/blog\/create-customers-programmatically-in-magento-2\/\" target=\"_blank\" rel=\"noreferrer noopener\">Creating customer orders<\/a>&nbsp;from the backend is an easy-peasy process in Magento 2. The admin can go to&nbsp;<strong>Sales &gt; Orders<\/strong>, select the products and create an order with just a few clicks! The product selection grid shows the product name, SKU, Price, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">These details are generally enough to add and identify the items you want, but not always when you have hundreds or thousands of products to choose from! Things can get really confusing. Adding the product image to the grid can make it easier to select the correct product.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/meetanshi.com\/blog\/wp-content\/uploads\/2023\/03\/Product-Selection-Grid-in-Magento-2-Order-Create.png\" alt=\"Product Selection Grid in Magento 2 Order Create\" class=\"wp-image-29919\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">Displaying images in the select products grid can make it a bit easier to choose the products.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this blog post, I will share the entire method to do that!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s see <strong><em>how to<\/em> display product image in order create page in Magento 2<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method to Display Product Image in Order Create Page in Magento 2<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In order to display product image in order create page in Magento 2, we need to override the default grid.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>You can simply follow these steps to do that:<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 1:&nbsp;<\/strong>Create&nbsp;<strong>di.xml<\/strong>&nbsp;at&nbsp;<em><strong><em><strong>app\\code\\Vendor\\Module\\<\/strong><\/em>&nbsp;<\/strong><\/em>with the following code:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?xml version=\"1.0\"?>\n&lt;config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"urn:magento:framework:ObjectManager\/etc\/config.xsd\">\n    &lt;preference for=\"\\Magento\\Sales\\Block\\Adminhtml\\Order\\Create\\Search\\Grid\" type=\"Vendor\\Module\\Block\\Adminhtml\\OverrideOrder\\Create\\Search\\Grid\" \/>\n&lt;\/config><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 2:&nbsp;<\/strong>Add the following code in the&nbsp;<strong>Grid.php<\/strong>&nbsp;file at&nbsp;<em><strong><em><strong>app\\code\\Vendor\\Module\\Block\\Adminhtml\\OverrideOrder\\Create\\Search\\<\/strong><\/em><\/strong><\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">protected function _prepareColumns()\n    {\n      $this->addColumn(\n            'thumbnail',\n            [\n                'filter' => false,\n                'sortable' => false,\n                'header' => __('Images'),\n                'name' => 'thumbnail',\n                'inline_css' => 'thumbnail',\n                'index' => 'image',\n                'class' => 'image',\n                'renderer' => 'Vendor\\Module\\Block\\Adminhtml\\Product\\Grid\\Renderer\\Image',\n            ]\n        );\n    }<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 3:&nbsp;<\/strong>Lastly, create&nbsp;<em><strong><em><strong>\\Vendor\\Module\\Block\\Adminhtml\\Product\\Grid\\Renderer\\Image.php<\/strong><\/em>&nbsp;<\/strong><\/em>and add the following code:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\nnamespace Vendor\\Module\\Block\\Adminhtml\\Product\\Grid\\Renderer;\n\nuse Magento\\Backend\\Block\\Widget\\Grid\\Column\\Renderer\\AbstractRenderer;\nuse Magento\\Framework\\DataObject;\nuse Magento\\Store\\Model\\StoreManagerInterface;\nuse Magento\\Framework\\View\\Asset\\Repository;\nuse Magento\\Catalog\\Helper\\ImageFactory;\nuse Magento\\Framework\\Image\\AdapterFactory;\nuse Magento\\Store\\Model\\StoreManager;\nuse Magento\\Store\\Model\\ScopeInterface;\n\nclass Image extends AbstractRenderer\n{\n    private $_storeManager;\n    private $helperImageFactory;\n    private $assetRepos;\n    private $adapterFactory;\n    private $scopeConfig;\n    private $storeManager;\n    \/**\n     * @param \\Magento\\Backend\\Block\\Context $context\n     * @param array $data\n     *\/\n    public function __construct(\\Magento\\Backend\\Block\\Context $context,\n                                Repository $assetRepos,\n                                ImageFactory $helperImageFactory,\n                                AdapterFactory $adapterFactory,\n                                StoreManager $storeManager,\n                                StoreManagerInterface $storemanager, array $data = [])\n    {\n        $this->_storeManager = $storemanager;\n        $this->assetRepos = $assetRepos;\n        $this->helperImageFactory = $helperImageFactory;\n        $this->adapterFactory = $adapterFactory;\n        $this->storeManager = $storeManager;\n        $this->scopeConfig = $context->getScopeConfig();\n\n        parent::__construct($context, $data);\n        $this->_authorization = $context->getAuthorization();\n    }\n    \/**\n     * Renders grid column\n     *\n     * @param Object $row\n     * @return  string\n     *\/\n    public function render(DataObject $row)\n    {\n        $mediaDirectory = $this->_storeManager->getStore()->getBaseUrl(\n            \\Magento\\Framework\\UrlInterface::URL_TYPE_MEDIA\n        );\n\n        if($this->_getValue($row)){\n            $imageUrl = $mediaDirectory.'\/catalog\/product'.$this->_getValue($row);\n        }else{\n            $plUrl = $this->scopeConfig->getValue('catalog\/placeholder\/thumbnail_placeholder',ScopeInterface::SCOPE_STORE,0);\n            $imageUrl = $mediaDirectory.'\/catalog\/product\/placeholder\/'.$plUrl;\n        }\n        return '&lt;img src=\"'.$imageUrl.'\" style=\"width: 5rem;border: 1px solid #d6d6d6;\"\/>';\n\n    }\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s it!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, the default product grid in the Magento 2 create order page will be overridden. The above code will add a new column for the product image to the grid.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/meetanshi.com\/blog\/wp-content\/uploads\/2023\/03\/Add-Product-Image-in-Order-Create-Grid.png\" alt=\"Display Product Image in Order Create Page in Magento 2\" class=\"wp-image-29925\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">This is how you can display product image in order create page in Magento 2. You can&nbsp;<a href=\"https:\/\/meetanshi.com\/blog\/create-order-in-magento-2-admin-panel\/\">create order in M2 admin panel<\/a>&nbsp;to assist your customers placing orders when they require.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Similar read:&nbsp;<\/strong><a href=\"https:\/\/meetanshi.com\/blog\/add-image-thumbnail-column-in-magento-2-admin-ui-grid\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Add Image Thumbnail Column in Magento 2 Admin UI Grid<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Loved this post?&nbsp;<em><strong>Rate this post with five stars &amp; share it via social media.<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Feel free to comment in case of any doubts or queries; I\u2019d be happy to help you!  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Thanks for reading!  <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Magento Folks! We all love&nbsp;Magento&nbsp;because of its extensive customization capabilities, and this blog post is dedicated to another&nbsp;Magento 2 customization&nbsp;tutorial In this blog, I am&#8230;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[34],"tags":[],"class_list":["post-2710","post","type-post","status-publish","format-standard","hentry","category-magento"],"acf":[],"_links":{"self":[{"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/posts\/2710","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/comments?post=2710"}],"version-history":[{"count":3,"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/posts\/2710\/revisions"}],"predecessor-version":[{"id":9368,"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/posts\/2710\/revisions\/9368"}],"wp:attachment":[{"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/media?parent=2710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/categories?post=2710"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meetanshi.com\/blog\/wp-json\/wp\/v2\/tags?post=2710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}