protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data')->getData(); // --------------------------------------- // Get collection // --------------------------------------- /** @var Mage_Catalog_Model_Resource_Product_Collection $collection */ $collection = Mage::getModel('catalog/product')->getCollection(); $collection->addAttributeToSelect('sku'); $collection->addAttributeToSelect('name'); // --------------------------------------- // Join listing product tables // --------------------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'additional_data' => 'additional_data'), '{{table}}.listing_id=' . (int) $listingData['id']); $collection->joinTable(array('elp' => 'M2ePro/Ebay_Listing_Product'), 'listing_product_id=id', array('listing_product_id' => 'listing_product_id', 'online_title' => 'online_title', 'online_sku' => 'online_sku', 'ebay_item_id' => 'ebay_item_id', 'translation_status' => 'translation_status', 'translation_service' => 'translation_service', 'translated_date' => 'translated_date')); $collection->joinTable(array('ei' => 'M2ePro/Ebay_Item'), 'id=ebay_item_id', array('item_id' => 'item_id'), NULL, 'left'); // --------------------------------------- // Set collection filters // --------------------------------------- $collection->addFieldToFilter('translation_status', array('neq' => Ess_M2ePro_Model_Ebay_Listing_Product::TRANSLATION_STATUS_NONE)); // --------------------------------------- // Set collection to grid $this->setCollection($collection); return parent::_prepareCollection(); }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection //---------------------------- /* @var $collection Mage_Core_Model_Mysql4_Collection_Abstract */ $collection = Mage::getConfig()->getModelInstance('Ess_M2ePro_Model_Mysql4_Magento_Product_Collection', Mage::getModel('catalog/product')->getResource()); $collection->getSelect()->group('e.entity_id'); $collection->addAttributeToSelect('name')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty', 'is_in_stock' => 'is_in_stock'), '{{table}}.stock_id=1', 'left'); //---------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'amazon_status' => 'status', 'additional_data' => 'additional_data'), array('listing_id' => (int) $listingData['id'])); $collection->joinTable(array('alp' => 'M2ePro/Amazon_Listing_Product'), 'listing_product_id=id', array('general_id' => 'general_id', 'amazon_sku' => 'sku', 'online_qty' => 'online_qty', 'online_price' => 'online_price', 'online_sale_price' => 'online_sale_price', 'is_afn_channel' => 'is_afn_channel'), NULL, 'left'); //---------------------------- // Set filter store //---------------------------- $store = $this->_getStore(); if ($store->getId()) { $collection->joinAttribute('price', 'catalog_product/price', 'entity_id', NULL, 'left', $store->getId()); $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('thumbnail', 'catalog_product/thumbnail', 'entity_id', NULL, 'left', $store->getId()); } else { $collection->addAttributeToSelect('price'); $collection->addAttributeToSelect('status'); $collection->addAttributeToSelect('visibility'); $collection->addAttributeToSelect('thumbnail'); } //---------------------------- // exit($collection->getSelect()->__toString()); // Set collection to grid $this->setCollection($collection); parent::_prepareCollection(); $this->getCollection()->addWebsiteNamesToResult(); return $this; }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection // --------------------------------------- /* @var $collection Ess_M2ePro_Model_Mysql4_Magento_Product_Collection */ $collection = Mage::getConfig()->getModelInstance('Ess_M2ePro_Model_Mysql4_Magento_Product_Collection', Mage::getModel('catalog/product')->getResource()); $collection->setListingProductModeOn()->addAttributeToSelect('name')->addAttributeToSelect('sku')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty', 'is_in_stock' => 'is_in_stock'), '{{table}}.stock_id=1', 'left'); // --------------------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'amazon_status' => 'status', 'component_mode' => 'component_mode', 'additional_data' => 'additional_data'), array('listing_id' => (int) $listingData['id'], 'status' => array(Ess_M2ePro_Model_Listing_Product::STATUS_LISTED, Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED, Ess_M2ePro_Model_Listing_Product::STATUS_BLOCKED, Ess_M2ePro_Model_Listing_Product::STATUS_UNKNOWN))); $collection->joinTable(array('alp' => 'M2ePro/Amazon_Listing_Product'), 'listing_product_id=id', array('general_id' => 'general_id', 'search_settings_status' => 'search_settings_status', 'amazon_sku' => 'sku', 'online_qty' => 'online_qty', 'online_price' => 'online_price', 'online_sale_price' => 'IF( `alp`.`online_sale_price_start_date` IS NOT NULL AND `alp`.`online_sale_price_end_date` IS NOT NULL AND `alp`.`online_sale_price_end_date` >= CURRENT_DATE(), `alp`.`online_sale_price`, NULL )', 'online_sale_price_start_date' => 'online_sale_price_start_date', 'online_sale_price_end_date' => 'online_sale_price_end_date', 'is_afn_channel' => 'is_afn_channel', 'is_general_id_owner' => 'is_general_id_owner', 'variation_child_statuses' => 'variation_child_statuses', 'is_variation_parent' => 'is_variation_parent', 'variation_parent_id' => 'variation_parent_id', 'defected_messages' => 'defected_messages', 'min_online_price' => 'IF( `alp`.`online_sale_price_start_date` IS NOT NULL AND `alp`.`online_sale_price_end_date` IS NOT NULL AND `alp`.`online_sale_price_start_date` <= CURRENT_DATE() AND `alp`.`online_sale_price_end_date` >= CURRENT_DATE(), `alp`.`online_sale_price`, `alp`.`online_price` )'), '{{table}}.is_variation_parent = 0'); // --------------------------------------- // Set collection to grid $this->setCollection($collection); return parent::_prepareCollection(); }
protected function _prepareCollection() { $listing = Mage::helper('M2ePro/Component_Ebay')->getCachedObject('Listing', $this->getRequest()->getParam('listing_id'))->getData(); // Get collection //---------------------------- /* @var $collection Mage_Catalog_Model_Resource_Product_Collection */ $collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('sku')->addAttributeToSelect('name')->addAttributeToSelect('type_id')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty', 'is_in_stock' => 'is_in_stock'), '{{table}}.stock_id=1', 'left'); //---------------------------- //---------------------------- $collection->getSelect()->distinct(); //---------------------------- // Set filter store //---------------------------- $store = $this->_getStore(); if ($store->getId()) { $collection->joinAttribute('price', 'catalog_product/price', 'entity_id', NULL, 'left', $store->getId()); $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('thumbnail', 'catalog_product/thumbnail', 'entity_id', NULL, 'left', $store->getId()); } else { $collection->addAttributeToSelect('price'); $collection->addAttributeToSelect('status'); $collection->addAttributeToSelect('visibility'); $collection->addAttributeToSelect('thumbnail'); } //---------------------------- // Hide products others listings //---------------------------- $prefix = Mage::helper('M2ePro/Data_Global')->getValue('hide_products_others_listings_prefix'); is_null($hideParam = Mage::helper('M2ePro/Data_Session')->getValue($prefix)) && ($hideParam = true); if ($hideParam || isset($listing['id'])) { $dbExcludeSelect = Mage::getResourceModel('core/config')->getReadConnection()->select()->from(Mage::getResourceModel('M2ePro/Listing_Product')->getMainTable(), new Zend_Db_Expr('DISTINCT `product_id`')); if ($hideParam) { $dbExcludeSelect->join(array('l' => Mage::getResourceModel('M2ePro/Listing')->getMainTable()), '`l`.`id` = `listing_id`', NULL); $dbExcludeSelect->where('`l`.`account_id` = ?', $listing['account_id']); $dbExcludeSelect->where('`l`.`marketplace_id` = ?', $listing['marketplace_id']); $dbExcludeSelect->where('`l`.`component_mode` = ?', Ess_M2ePro_Helper_Component_Ebay::NICK); } else { $dbExcludeSelect->where('`listing_id` = ?', (int) $listing['id']); } // default sql select $collection->getSelect()->joinLeft(array('sq' => $dbExcludeSelect), 'sq.product_id = e.entity_id', array())->where('sq.product_id IS NULL'); // alternatively sql select (for mysql v.5.1) // $collection->getSelect()->where('`e`.`entity_id` NOT IN ('.$dbExcludeSelect->__toString().')'); } //---------------------------- $collection->addFieldToFilter(array(array('attribute' => 'type_id', 'neq' => 'virtual'))); //exit($collection->getSelect()->__toString()); // Set collection to grid $this->setCollection($collection); parent::_prepareCollection(); $this->getCollection()->addWebsiteNamesToResult(); return $this; }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection // --------------------------------------- /* @var $collection Mage_Core_Model_Mysql4_Collection_Abstract */ $collection = Mage::getConfig()->getModelInstance('Ess_M2ePro_Model_Mysql4_Magento_Product_Collection', Mage::getModel('catalog/product')->getResource()); $collection->setListingProductModeOn()->addAttributeToSelect('name')->addAttributeToSelect('sku')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty'), '{{table}}.stock_id=1', 'left'); // --------------------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'listing_id' => 'listing_id', 'component_mode' => 'component_mode', 'buy_status' => 'status', 'additional_data' => 'additional_data'), array('listing_id' => (int) $listingData['id'])); $collection->joinTable(array('blp' => 'M2ePro/Buy_Listing_Product'), 'listing_product_id=id', array('template_new_product_id' => 'template_new_product_id', 'general_id' => 'general_id', 'buy_sku' => 'sku', 'online_price' => 'online_price', 'online_qty' => 'online_qty', 'search_settings_status' => 'search_settings_status', 'search_settings_data' => 'search_settings_data'), null); // --------------------------------------- $this->setCollection($collection); return parent::_prepareCollection(); }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection //---------------------------- /* @var $collection Mage_Core_Model_Mysql4_Collection_Abstract */ $collection = Mage::getConfig()->getModelInstance('Ess_M2ePro_Model_Mysql4_Magento_Product_Collection', Mage::getModel('catalog/product')->getResource()); $collection->setListingProductModeOn(); $collection->addAttributeToSelect('name')->addAttributeToSelect('sku')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty'), '{{table}}.stock_id=1', 'left'); //---------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'component_mode' => 'component_mode', 'amazon_status' => 'status', 'additional_data' => 'additional_data'), array('listing_id' => (int) $listingData['id'])); $collection->joinTable(array('alp' => 'M2ePro/Amazon_Listing_Product'), 'listing_product_id=id', array('general_id' => 'general_id', 'general_id_search_info' => 'general_id_search_info', 'search_settings_status' => 'search_settings_status', 'search_settings_data' => 'search_settings_data', 'variation_child_statuses' => 'variation_child_statuses', 'amazon_sku' => 'sku', 'online_qty' => 'online_qty', 'online_price' => 'online_price', 'online_sale_price' => 'online_sale_price', 'online_sale_price_start_date' => 'online_sale_price_start_date', 'online_sale_price_end_date' => 'online_sale_price_end_date', 'is_afn_channel' => 'is_afn_channel', 'is_general_id_owner' => 'is_general_id_owner', 'is_variation_parent' => 'is_variation_parent'), '{{table}}.variation_parent_id is NULL'); //---------------------------- // exit($collection->getSelect()->__toString()); // Set collection to grid $this->setCollection($collection); return parent::_prepareCollection(); }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data')->getData(); //-------------------------------- // Get collection //---------------------------- /** @var Mage_Catalog_Model_Resource_Product_Collection $collection */ $collection = Mage::getModel('catalog/product')->getCollection(); $collection->addAttributeToSelect('sku'); $collection->addAttributeToSelect('name'); //-------------------------------- // Join listing product tables //---------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'status' => 'status', 'additional_data' => 'additional_data'), '{{table}}.listing_id=' . (int) $listingData['id']); $collection->joinTable(array('elp' => 'M2ePro/Ebay_Listing_Product'), 'listing_product_id=id', array('listing_product_id' => 'listing_product_id', 'end_date' => 'end_date', 'start_date' => 'start_date', 'online_title' => 'online_title', 'online_sku' => 'online_sku', 'available_qty' => new Zend_Db_Expr('(online_qty - online_qty_sold)'), 'ebay_item_id' => 'ebay_item_id', 'online_category' => 'online_category', 'online_qty_sold' => 'online_qty_sold', 'online_buyitnow_price' => 'online_buyitnow_price', 'template_category_id' => 'template_category_id')); $collection->joinTable(array('ei' => 'M2ePro/Ebay_Item'), 'id=ebay_item_id', array('item_id' => 'item_id'), NULL, 'left'); //---------------------------- // exit($collection->getSelect()->__toString()); // Set collection to grid $this->setCollection($collection); return parent::_prepareCollection(); }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection //---------------------------- /* @var $collection Mage_Core_Model_Mysql4_Collection_Abstract */ $collection = Mage::getConfig()->getModelInstance('Ess_M2ePro_Model_Mysql4_Magento_Product_Collection', Mage::getModel('catalog/product')->getResource()); $collection->setListingProductModeOn()->addAttributeToSelect('name')->addAttributeToSelect('sku')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty', 'is_in_stock' => 'is_in_stock'), '{{table}}.stock_id=1', 'left'); //---------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'amazon_status' => 'status', 'component_mode' => 'component_mode', 'additional_data' => 'additional_data'), array('listing_id' => (int) $listingData['id'], 'status' => array(Ess_M2ePro_Model_Listing_Product::STATUS_LISTED, Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED, Ess_M2ePro_Model_Listing_Product::STATUS_BLOCKED))); $collection->joinTable(array('alp' => 'M2ePro/Amazon_Listing_Product'), 'listing_product_id=id', array('general_id' => 'general_id', 'search_settings_status' => 'search_settings_status', 'amazon_sku' => 'sku', 'online_qty' => 'online_qty', 'online_price' => 'online_price', 'online_sale_price' => 'online_sale_price', 'online_sale_price_start_date' => 'online_sale_price_start_date', 'online_sale_price_end_date' => 'online_sale_price_end_date', 'is_afn_channel' => 'is_afn_channel', 'is_general_id_owner' => 'is_general_id_owner', 'variation_child_statuses' => 'variation_child_statuses', 'is_variation_parent' => 'is_variation_parent', 'variation_parent_id' => 'variation_parent_id', 'defected_messages' => 'defected_messages'), '{{table}}.is_variation_parent = 0'); //---------------------------- // exit($collection->getSelect()->__toString()); // Change default Magento message when items count is zero $collectionForCounting = clone $collection; if (count($collectionForCounting) === 0) { $this->setEmptyText(Mage::helper('M2ePro')->__('Only Simple and Child Products listed on Amazon will be shown in Seller Сentral View Mode.')); } // Set collection to grid $this->setCollection($collection); return parent::_prepareCollection(); }
protected function _prepareCollection() { /** @var Ess_M2ePro_Model_Listing $listing */ $listing = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection //---------------------------- /* @var $collection Mage_Catalog_Model_Resource_Product_Collection */ $collection = Mage::getModel('catalog/product')->getCollection(); $collection->addAttributeToSelect('sku')->addAttributeToSelect('name')->addAttributeToSelect('type_id')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty', 'is_in_stock' => 'is_in_stock'), '{{table}}.stock_id=1', 'left'); //---------------------------- //---------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('listing_product_id' => 'id', 'additional_data' => 'additional_data'), '{{table}}.listing_id=' . (int) $listing->getId()); $collection->joinTable(array('elp' => 'M2ePro/Ebay_Listing_Product'), 'listing_product_id=listing_product_id', array('end_date' => 'end_date', 'start_date' => 'start_date', 'online_title' => 'online_title', 'online_sku' => 'online_sku', 'available_qty' => new Zend_Db_Expr('(online_qty - online_qty_sold)'), 'ebay_item_id' => 'ebay_item_id', 'online_category' => 'online_category', 'online_qty_sold' => 'online_qty_sold', 'online_buyitnow_price' => 'online_buyitnow_price'), NULL, 'left'); $collection->joinTable(array('ei' => 'M2ePro/Ebay_Item'), 'id=ebay_item_id', array('item_id' => 'item_id'), NULL, 'left'); //---------------------------- // Set filter store //---------------------------- $store = $this->_getStore(); if ($store->getId()) { //$collection->addStoreFilter($store); $collection->joinAttribute('price', 'catalog_product/price', 'entity_id', NULL, 'left', $store->getId()); $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('thumbnail', 'catalog_product/thumbnail', 'entity_id', NULL, 'left', $store->getId()); } else { $collection->addAttributeToSelect('price'); $collection->addAttributeToSelect('status'); $collection->addAttributeToSelect('visibility'); $collection->addAttributeToSelect('thumbnail'); } //---------------------------- // exit($collection->getSelect()->__toString()); // Set collection to grid $this->setCollection($collection); parent::_prepareCollection(); $this->getCollection()->addWebsiteNamesToResult(); return $this; }
protected function _prepareCollection() { /** @var Ess_M2ePro_Model_Listing $listing */ $listing = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection // --------------------------------------- /* @var $collection Mage_Catalog_Model_Resource_Product_Collection */ $collection = Mage::getModel('catalog/product')->getCollection(); $collection->addAttributeToSelect('sku')->addAttributeToSelect('name')->addAttributeToSelect('type_id')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty', 'is_in_stock' => 'is_in_stock'), '{{table}}.stock_id=1', 'left'); // --------------------------------------- // --------------------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'ebay_status' => 'status', 'additional_data' => 'additional_data'), '{{table}}.listing_id=' . (int) $listing->getId()); $collection->joinTable(array('elp' => 'M2ePro/Ebay_Listing_Product'), 'listing_product_id=id', array('end_date' => 'end_date', 'start_date' => 'start_date', 'online_title' => 'online_title', 'online_sku' => 'online_sku', 'available_qty' => new Zend_Db_Expr('(online_qty - online_qty_sold)'), 'ebay_item_id' => 'ebay_item_id', 'online_category' => 'online_category', 'online_qty_sold' => 'online_qty_sold', 'online_start_price' => 'online_start_price', 'online_current_price' => 'online_current_price', 'online_reserve_price' => 'online_reserve_price', 'online_buyitnow_price' => 'online_buyitnow_price', 'min_online_price' => 'IF( (`t`.`variation_min_price` IS NULL), `elp`.`online_current_price`, `t`.`variation_min_price` )', 'max_online_price' => 'IF( (`t`.`variation_max_price` IS NULL), `elp`.`online_current_price`, `t`.`variation_max_price` )'), NULL, 'left'); $collection->joinTable(array('ei' => 'M2ePro/Ebay_Item'), 'id=ebay_item_id', array('item_id' => 'item_id'), NULL, 'left'); $collection->getSelect()->joinLeft(new Zend_Db_Expr('( SELECT `mlpv`.`listing_product_id`, MIN(`melpv`.`online_price`) as variation_min_price, MAX(`melpv`.`online_price`) as variation_max_price FROM `' . Mage::getResourceModel('M2ePro/Listing_Product_Variation')->getMainTable() . '` AS `mlpv` INNER JOIN `' . Mage::getResourceModel('M2ePro/Ebay_Listing_Product_Variation')->getMainTable() . '` AS `melpv` ON (`mlpv`.`id` = `melpv`.`listing_product_variation_id`) WHERE `melpv`.`status` != ' . Ess_M2ePro_Model_Listing_Product::STATUS_NOT_LISTED . ' GROUP BY `mlpv`.`listing_product_id` )'), 'elp.listing_product_id=t.listing_product_id', array('variation_min_price' => 'variation_min_price', 'variation_max_price' => 'variation_max_price')); // --------------------------------------- // Set filter store // --------------------------------------- $store = $this->_getStore(); if ($store->getId()) { $collection->joinAttribute('price', 'catalog_product/price', 'entity_id', NULL, 'left', $store->getId()); $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', NULL, 'inner', $store->getId()); $collection->joinAttribute('thumbnail', 'catalog_product/thumbnail', 'entity_id', NULL, 'left', $store->getId()); } else { $collection->addAttributeToSelect('price'); $collection->addAttributeToSelect('status'); $collection->addAttributeToSelect('visibility'); $collection->addAttributeToSelect('thumbnail'); } // --------------------------------------- // Set collection to grid $this->setCollection($collection); parent::_prepareCollection(); $this->getCollection()->addWebsiteNamesToResult(); return $this; }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data')->getData(); // --------------------------------------- // Get collection // --------------------------------------- /* @var $collection Ess_M2ePro_Model_Mysql4_Magento_Product_Collection */ $collection = Mage::getConfig()->getModelInstance('Ess_M2ePro_Model_Mysql4_Magento_Product_Collection', Mage::getModel('catalog/product')->getResource()); $collection->setListingProductModeOn(); $collection->addAttributeToSelect('sku'); $collection->addAttributeToSelect('name'); // --------------------------------------- // Join listing product tables // --------------------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'ebay_status' => 'status', 'component_mode' => 'component_mode', 'additional_data' => 'additional_data'), '{{table}}.listing_id=' . (int) $listingData['id']); $collection->joinTable(array('elp' => 'M2ePro/Ebay_Listing_Product'), 'listing_product_id=id', array('listing_product_id' => 'listing_product_id', 'end_date' => 'end_date', 'start_date' => 'start_date', 'online_title' => 'online_title', 'online_sku' => 'online_sku', 'available_qty' => new Zend_Db_Expr('(elp.online_qty - elp.online_qty_sold)'), 'ebay_item_id' => 'ebay_item_id', 'online_category' => 'online_category', 'online_qty_sold' => 'online_qty_sold', 'online_bids' => 'online_bids', 'online_start_price' => 'online_start_price', 'online_current_price' => 'online_current_price', 'online_reserve_price' => 'online_reserve_price', 'online_buyitnow_price' => 'online_buyitnow_price', 'template_category_id' => 'template_category_id', 'min_online_price' => 'IF( (`t`.`variation_min_price` IS NULL), `elp`.`online_current_price`, `t`.`variation_min_price` )', 'max_online_price' => 'IF( (`t`.`variation_max_price` IS NULL), `elp`.`online_current_price`, `t`.`variation_max_price` )')); $collection->joinTable(array('ei' => 'M2ePro/Ebay_Item'), 'id=ebay_item_id', array('item_id' => 'item_id'), NULL, 'left'); $collection->getSelect()->joinLeft(new Zend_Db_Expr('( SELECT `mlpv`.`listing_product_id`, MIN(`melpv`.`online_price`) as variation_min_price, MAX(`melpv`.`online_price`) as variation_max_price FROM `' . Mage::getResourceModel('M2ePro/Listing_Product_Variation')->getMainTable() . '` AS `mlpv` INNER JOIN `' . Mage::getResourceModel('M2ePro/Ebay_Listing_Product_Variation')->getMainTable() . '` AS `melpv` ON (`mlpv`.`id` = `melpv`.`listing_product_variation_id`) WHERE `melpv`.`status` != ' . Ess_M2ePro_Model_Listing_Product::STATUS_NOT_LISTED . ' GROUP BY `mlpv`.`listing_product_id` )'), 'elp.listing_product_id=t.listing_product_id', array('variation_min_price' => 'variation_min_price', 'variation_max_price' => 'variation_max_price')); // --------------------------------------- // Set collection to grid $this->setCollection($collection); return parent::_prepareCollection(); }
protected function _prepareCollection() { $listingData = Mage::helper('M2ePro/Data_Global')->getValue('temp_data'); // Get collection // --------------------------------------- /* @var $collection Ess_M2ePro_Model_Mysql4_Magento_Product_Collection */ $collection = Mage::getConfig()->getModelInstance('Ess_M2ePro_Model_Mysql4_Magento_Product_Collection', Mage::getModel('catalog/product')->getResource()); $collection->setListingProductModeOn(); $collection->addAttributeToSelect('name')->addAttributeToSelect('sku')->joinTable(array('cisi' => 'cataloginventory/stock_item'), 'product_id=entity_id', array('qty' => 'qty'), '{{table}}.stock_id=1', 'left'); // --------------------------------------- $collection->joinTable(array('lp' => 'M2ePro/Listing_Product'), 'product_id=entity_id', array('id' => 'id', 'component_mode' => 'component_mode', 'amazon_status' => 'status', 'additional_data' => 'additional_data'), array('listing_id' => (int) $listingData['id'])); $collection->joinTable(array('alp' => 'M2ePro/Amazon_Listing_Product'), 'listing_product_id=id', array('general_id' => 'general_id', 'general_id_search_info' => 'general_id_search_info', 'search_settings_status' => 'search_settings_status', 'search_settings_data' => 'search_settings_data', 'variation_child_statuses' => 'variation_child_statuses', 'amazon_sku' => 'sku', 'online_qty' => 'online_qty', 'online_price' => 'online_price', 'online_sale_price' => 'IF( `alp`.`online_sale_price_start_date` IS NOT NULL AND `alp`.`online_sale_price_end_date` IS NOT NULL AND `alp`.`online_sale_price_end_date` >= CURRENT_DATE(), `alp`.`online_sale_price`, NULL )', 'online_sale_price_start_date' => 'online_sale_price_start_date', 'online_sale_price_end_date' => 'online_sale_price_end_date', 'is_afn_channel' => 'is_afn_channel', 'is_general_id_owner' => 'is_general_id_owner', 'is_variation_parent' => 'is_variation_parent', 'is_repricing' => 'is_repricing', 'defected_messages' => 'defected_messages', 'min_online_price' => 'IF( (`t`.`variation_min_price` IS NULL), IF( `alp`.`online_sale_price_start_date` IS NOT NULL AND `alp`.`online_sale_price_end_date` IS NOT NULL AND `alp`.`online_sale_price_start_date` <= CURRENT_DATE() AND `alp`.`online_sale_price_end_date` >= CURRENT_DATE(), `alp`.`online_sale_price`, `alp`.`online_price` ), `t`.`variation_min_price` )', 'max_online_price' => 'IF( (`t`.`variation_max_price` IS NULL), IF( `alp`.`online_sale_price_start_date` IS NOT NULL AND `alp`.`online_sale_price_end_date` IS NOT NULL AND `alp`.`online_sale_price_start_date` <= CURRENT_DATE() AND `alp`.`online_sale_price_end_date` >= CURRENT_DATE(), `alp`.`online_sale_price`, `alp`.`online_price` ), `t`.`variation_max_price` )'), '{{table}}.variation_parent_id is NULL'); $collection->getSelect()->joinLeft(new Zend_Db_Expr('( SELECT `malp`.`variation_parent_id`, MIN( IF( `malp`.`online_sale_price_start_date` IS NOT NULL AND `malp`.`online_sale_price_end_date` IS NOT NULL AND `malp`.`online_sale_price_start_date` <= CURRENT_DATE() AND `malp`.`online_sale_price_end_date` >= CURRENT_DATE(), `malp`.`online_sale_price`, `malp`.`online_price` ) ) as variation_min_price, MAX( IF( `malp`.`online_sale_price_start_date` IS NOT NULL AND `malp`.`online_sale_price_end_date` IS NOT NULL AND `malp`.`online_sale_price_start_date` <= CURRENT_DATE() AND `malp`.`online_sale_price_end_date` >= CURRENT_DATE(), `malp`.`online_sale_price`, `malp`.`online_price` ) ) as variation_max_price FROM `' . Mage::getResourceModel('M2ePro/Amazon_Listing_Product')->getMainTable() . '` as malp INNER JOIN `' . Mage::getResourceModel('M2ePro/Listing_Product')->getMainTable() . '` AS `mlp` ON (`malp`.`listing_product_id` = `mlp`.`id`) WHERE `mlp`.`status` IN ( ' . Ess_M2ePro_Model_Listing_Product::STATUS_LISTED . ', ' . Ess_M2ePro_Model_Listing_Product::STATUS_STOPPED . ' ) AND `malp`.`variation_parent_id` IS NOT NULL GROUP BY `malp`.`variation_parent_id` )'), 'alp.listing_product_id=t.variation_parent_id', array('variation_min_price' => 'variation_min_price', 'variation_max_price' => 'variation_max_price')); // --------------------------------------- // Set collection to grid $this->setCollection($collection); return parent::_prepareCollection(); }