From 80a97b275f2b77c7e874994769795add01b4e761 Mon Sep 17 00:00:00 2001 From: gonzalo Date: Thu, 19 May 2022 16:40:54 -0300 Subject: [PATCH] select only necessary fields for carts #1391 for magento 2.3 --- Model/Api/Cart.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Model/Api/Cart.php b/Model/Api/Cart.php index 6e931774..41aa364a 100644 --- a/Model/Api/Cart.php +++ b/Model/Api/Cart.php @@ -146,6 +146,8 @@ protected function _getConvertedQuotes($mailchimpStoreId, $magentoStoreId) // get only the converted quotes $convertedCarts->addFieldToFilter('store_id', ['eq' => $magentoStoreId]); $convertedCarts->addFieldToFilter('is_active', ['eq' => 0]); + $convertedCarts->getSelect()->reset(\Zend_Db_Select::COLUMNS)->columns(['entity_id']); + //join with mailchimp_ecommerce_sync_data table to filter by sync data. $convertedCarts->getSelect()->joinLeft( ['m4m' => $this->_helper->getTableName('mailchimp_sync_ecommerce')], @@ -223,6 +225,8 @@ protected function _getModifiedQuotes($mailchimpStoreId, $magentoStoreId) $modifiedCarts->addFieldToFilter('is_active', ['eq'=>1]); // select carts for the current Magento store id $modifiedCarts->addFieldToFilter('store_id', ['eq' => $magentoStoreId]); + $modifiedCarts->getSelect()->reset(\Zend_Db_Select::COLUMNS)->columns(['entity_id']); + //join with mailchimp_ecommerce_sync_data table to filter by sync data. $modifiedCarts->getSelect()->joinLeft( ['m4m' => $this->_helper->getTableName('mailchimp_sync_ecommerce')], @@ -237,7 +241,6 @@ protected function _getModifiedQuotes($mailchimpStoreId, $magentoStoreId) ); // limit the collection $modifiedCarts->getSelect()->limit(self::BATCH_LIMIT); - /** * @var $cart \Magento\Quote\Model\Quote */ @@ -356,6 +359,8 @@ protected function _getNewQuotes($mailchimpStoreId, $magentoStoreId) if ($this->_firstDate) { $newCarts->addFieldToFilter('created_at', ['gt' => $this->_firstDate]); } + $newCarts->getSelect()->reset(\Zend_Db_Select::COLUMNS)->columns(['entity_id']); + //join with mailchimp_ecommerce_sync_data table to filter by sync data. $newCarts->getSelect()->joinLeft( ['m4m' => $this->_helper->getTableName('mailchimp_sync_ecommerce')], @@ -365,7 +370,6 @@ protected function _getNewQuotes($mailchimpStoreId, $magentoStoreId) ); // be sure that the quotes are already in mailchimp and not deleted $newCarts->getSelect()->where("m4m.mailchimp_sync_delta IS NULL"); - // limit the collection $newCarts->getSelect()->limit(self::BATCH_LIMIT); /**