Beispiel #1
0
 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;
 }
Beispiel #2
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 #3
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();
 }
Beispiel #4
0
 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;
 }
Beispiel #5
0
 public function getProductsIds()
 {
     return $this->listing->getSetting('additional_data', 'adding_new_asin_listing_products_ids');
 }