Exemple #1
0
 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();
 }
Exemple #2
0
 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;
 }
Exemple #3
0
 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();
 }
Exemple #4
0
 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;
 }
Exemple #5
0
 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();
 }
Exemple #6
0
 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();
 }
Exemple #8
0
 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();
 }
Exemple #9
0
 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;
 }
Exemple #10
0
 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();
 }