public function _construct() { parent::_construct(); $this->listing = $this->getHelper('Data\\GlobalData')->getValue('view_listing'); $this->hideSwitchToIndividualConfirm = $this->listing->getSetting('additional_data', 'hide_switch_to_individual_confirm', 0); $this->hideSwitchToParentConfirm = $this->listing->getSetting('additional_data', 'hide_switch_to_parent_confirm', 0); // Initialization block // --------------------------------------- $this->setId('amazonListingViewAmazonGrid' . $this->listing['id']); // --------------------------------------- $this->showAdvancedFilterProductsOption = false; }
protected function _toHtml() { if ($this->getRequest()->isXmlHttpRequest()) { $this->js->add(<<<JS ListingGridHandlerObj.afterInitPage(); JS ); return parent::_toHtml(); } $showNotCompletedPopup = ''; if ($this->getRequest()->getParam('not_completed', false)) { $showNotCompletedPopup = 'ListingGridHandlerObj.showNotCompletedPopup();'; } $this->js->add(<<<JS require([ 'M2ePro/Amazon/Listing/Product/Add/SearchAsin/Grid' ],function() { ListingGridHandlerObj = new AmazonListingProductAddSearchAsinGrid( '{$this->getId()}', {$this->listing->getId()} ); ListingGridHandlerObj.actionHandler.setOptions(M2ePro); ListingGridHandlerObj.productSearchHandler.setOptions(M2ePro); ListingGridHandlerObj.afterInitPage(); {$showNotCompletedPopup} }); JS ); if (!$this->listing->getChildObject()->isGeneralIdAttributeMode() && !$this->listing->getChildObject()->isWorldwideIdAttributeMode()) { if (!$this->listing->getChildObject()->isSearchByMagentoTitleModeEnabled()) { $gridId = $this->getId(); $this->js->add(<<<JS var mmassActionEl = \$("{$gridId}_massaction-select"); if (mmassActionEl && mmassActionEl.select('option[value="assignGeneralId"]').length > 0) { var assignGeneralIdOption = mmassActionEl.select('option[value="assignGeneralId"]')[0]; assignGeneralIdOption.disabled = true; mmassActionEl.insert({bottom: assignGeneralIdOption.remove()}); } JS ); } } else { $autoSearchSetting = $this->listing->getSetting('additional_data', 'auto_search_was_performed'); if (!$autoSearchSetting) { $this->listing->setSetting('additional_data', 'auto_search_was_performed', 1); $this->listing->save(); $this->js->add(<<<JS ListingGridHandlerObj.getGridMassActionObj().selectAll(); ListingGridHandlerObj.productSearchHandler.searchGeneralIdAuto(ListingGridHandlerObj.getSelectedProductsString()); JS ); } } return parent::_toHtml(); }
private function prepareDataByCategories() { $listingProductsIds = $this->listing->getSetting('additional_data', 'adding_new_asin_listing_products_ids'); $listingProductCollection = $this->amazonFactory->getObject('Listing\\Product')->getCollection()->addFieldToFilter('id', array('in' => $listingProductsIds)); $productsIds = array(); $descriptionTemplatesIds = array(); foreach ($listingProductCollection->getData() as $item) { $productsIds[$item['id']] = $item['product_id']; $descriptionTemplatesIds[$item['id']] = $item['template_description_id']; } $productsIds = array_unique($productsIds); $categoriesIds = $this->getHelper('Magento\\Category')->getLimitedCategoriesByProducts($productsIds, $this->listing->getStoreId()); $categoriesData = array(); foreach ($categoriesIds as $categoryId) { $collection = $this->productFactory->create()->getCollection(); $collection->addFieldToFilter('entity_id', array('in' => $productsIds)); $collection->joinTable(array('ccp' => $this->resourceConnection->getTableName('catalog_category_product')), 'product_id=entity_id', array('category_id' => 'category_id')); $collection->addFieldToFilter('category_id', $categoryId); $data = $collection->getData(); foreach ($data as $item) { $categoriesData[$categoryId][] = array_search($item['entity_id'], $productsIds); } $categoriesData[$categoryId] = array_unique($categoriesData[$categoryId]); } $this->setData('categories_data', $categoriesData); $this->setData('description_templates_data', $descriptionTemplatesIds); $this->listing->setSetting('additional_data', 'adding_new_asin_description_templates_data', $descriptionTemplatesIds); $this->listing->save(); }
protected function _prepareCollection() { // Get collection // --------------------------------------- /* @var $collection \Ess\M2ePro\Model\ResourceModel\Magento\Product\Collection */ $collection = $this->magentoProductCollectionFactory->create(); $collection->setListingProductModeOn(); $collection->setStoreId($this->listing->getData('store_id'))->addAttributeToSelect('name')->addAttributeToSelect('sku'); // --------------------------------------- // --------------------------------------- $listingProductsIds = $this->listing->getSetting('additional_data', 'adding_new_asin_listing_products_ids'); $lpTable = $this->activeRecordFactory->getObject('Listing\\Product')->getResource()->getMainTable(); $collection->joinTable(array('lp' => $lpTable), 'product_id=entity_id', array('id' => 'id'), '{{table}}.listing_id=' . (int) $this->listing->getId()); $alpTable = $this->activeRecordFactory->getObject('Amazon\\Listing\\Product')->getResource()->getMainTable(); $collection->joinTable(array('alp' => $alpTable), 'listing_product_id=id', array('listing_product_id' => 'listing_product_id', 'template_description_id' => 'template_description_id')); $collection->getSelect()->where('lp.id IN (?)', $listingProductsIds); $collection->getSelect()->where('alp.search_settings_status != ? OR alp.search_settings_status IS NULL', \Ess\M2ePro\Model\Amazon\Listing\Product::SEARCH_SETTINGS_STATUS_IN_PROGRESS); $collection->getSelect()->where('alp.general_id IS NULL'); // --------------------------------------- $this->setCollection($collection); parent::_prepareCollection(); return $this; }
public function getProductsIds() { return $this->listing->getSetting('additional_data', 'adding_new_asin_listing_products_ids'); }