From 7c1a2f5b098372abf4898338e94f8fa1e05a9862 Mon Sep 17 00:00:00 2001
From: Vitalii Zabaznov <vzabaznov@ebay.com>
Date: Tue, 20 Oct 2015 14:16:11 +0300
Subject: [PATCH] MAGETWO-44109: Import Custom Options grid contains
 Downloadable product if Import Custom Options for Simple product

---
 .../Product/Edit/Tab/Options/Popup/Grid.php       | 15 ++++++++++++++-
 .../catalog/product/edit/options/option.phtml     |  1 +
 .../view/adminhtml/web/js/custom-options.js       |  2 +-
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Popup/Grid.php b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Popup/Grid.php
index 53bcc298732..e7aeff7affa 100644
--- a/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Popup/Grid.php
+++ b/app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Options/Popup/Grid.php
@@ -62,7 +62,20 @@ class Grid extends \Magento\Catalog\Block\Adminhtml\Product\Grid
     protected function _prepareCollection()
     {
         parent::_prepareCollection();
-        $this->getCollection()->addFieldToFilter('has_options', 1);
+
+        if (null !== $this->getRequest()->getParam('current_product_id')) {
+            $this->getCollection()->getSelect()->where(
+                'e.entity_id != ?', $this->getRequest()->getParam('current_product_id')
+            );
+        }
+
+        $this->getCollection()->getSelect()->distinct()->join(
+            ['opt' => $this->getCollection()->getTable('catalog_product_option')],
+            'opt.product_id = e.entity_id',
+            null
+        );
+
+        $this->_productFactory->create()->getMediaGalleryEntries();
 
         return $this;
     }
diff --git a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml
index ef38f34b168..f0baae3a2bd 100644
--- a/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml
+++ b/app/code/Magento/Catalog/view/adminhtml/templates/catalog/product/edit/options/option.phtml
@@ -97,6 +97,7 @@ jQuery(function ($) {
             'customOptionsUrl' => $block->getCustomOptionsUrl(),
             'isReadonly' => $block->isReadonly(),
             'itemCount' => $block->getItemCount(),
+            'currentProductId' => $block->getRequest()->getParam('id'),
         ]
     )?>);
     //adding data to templates
diff --git a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
index 1b36e6ae0bf..69072252e41 100644
--- a/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
+++ b/app/code/Magento/Catalog/view/adminhtml/web/js/custom-options.js
@@ -179,7 +179,7 @@ define([
                     });
                     importContainer.load(
                         this.options.productGridUrl,
-                        {form_key: this.options.formKey},
+                        {form_key: this.options.formKey, current_product_id : this.options.currentProductId},
                         function () {
                             importContainer.modal('openModal');
                         }
-- 
GitLab