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