Beispiel #1
0
    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();
    }
Beispiel #2
0
 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();
 }