Magento 2 - Order best sellers products by periodIs there a Way to Create Customer Segment based on Order Values for a specific periodWhat is the best way to delete a Magento order?Delete products from order programmaticallyBest practice for attribute sets when importing productsMagento Order Products Calculation MissingMagento 2.3 Can't view module's front end page output?How to get products from wishlist using customer idMagento 2.3 Change Order Status ProgrammaticallyHow to get last order id in Magento 2.3?MsrpPriceCalculator Exception
How can I fix this gap between bookcases I made?
Was there ever an axiom rendered a theorem?
Where to refill my bottle in India?
I see my dog run
Can I find out the caloric content of bread by dehydrating it?
What does 'script /dev/null' do?
What is it called when one voice type sings a 'solo'?
How would photo IDs work for shapeshifters?
Why was the "bread communication" in the arena of Catching Fire left out in the movie?
How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)
Is "plugging out" electronic devices an American expression?
How to make payment on the internet without leaving a money trail?
Ideas for 3rd eye abilities
Extreme, but not acceptable situation and I can't start the work tomorrow morning
What happens when a metallic dragon and a chromatic dragon mate?
How to answer pointed "are you quitting" questioning when I don't want them to suspect
What is the command to reset a PC without deleting any files
Does the average primeness of natural numbers tend to zero?
Does it makes sense to buy a new cycle to learn riding?
aging parents with no investments
Is it legal to have the "// (c) 2019 John Smith" header in all files when there are hundreds of contributors?
Calculate Levenshtein distance between two strings in Python
Are white and non-white police officers equally likely to kill black suspects?
Can a planet have a different gravitational pull depending on its location in orbit around its sun?
Magento 2 - Order best sellers products by period
Is there a Way to Create Customer Segment based on Order Values for a specific periodWhat is the best way to delete a Magento order?Delete products from order programmaticallyBest practice for attribute sets when importing productsMagento Order Products Calculation MissingMagento 2.3 Can't view module's front end page output?How to get products from wishlist using customer idMagento 2.3 Change Order Status ProgrammaticallyHow to get last order id in Magento 2.3?MsrpPriceCalculator Exception
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
For now, I'm getting my best sales like this.
I would like to be able to influence the order of my products in the collection.
In my Block :
use MagentoSalesModelResourceModelReportBestsellersCollectionFactory;
// ...
public function __construct(TemplateContext $context,CollectionFactory $bestSellersCollectionFactory)
$this->bestSellersCollectionFactory = $bestSellersCollectionFactory;
parent::__construct($context, []);
public function getBestSellersProducts()
$collection = $this->bestSellersCollectionFactory->create()->setModel(
'MagentoCatalogModelProduct'
)
;
return $collection;
// ...
In my template :
$collection = $block->getBestSellersProducts();
// improvised part that doesn't work
$collection->setPeriod('month')->setOrder('period','DESC')->load();
// result data period -> 2015,2016,2017,2018,2019...
The problem is that these products arrive in a chronologically increasing way and I would like the opposite of course :)
php orders products magento2.3
add a comment |
For now, I'm getting my best sales like this.
I would like to be able to influence the order of my products in the collection.
In my Block :
use MagentoSalesModelResourceModelReportBestsellersCollectionFactory;
// ...
public function __construct(TemplateContext $context,CollectionFactory $bestSellersCollectionFactory)
$this->bestSellersCollectionFactory = $bestSellersCollectionFactory;
parent::__construct($context, []);
public function getBestSellersProducts()
$collection = $this->bestSellersCollectionFactory->create()->setModel(
'MagentoCatalogModelProduct'
)
;
return $collection;
// ...
In my template :
$collection = $block->getBestSellersProducts();
// improvised part that doesn't work
$collection->setPeriod('month')->setOrder('period','DESC')->load();
// result data period -> 2015,2016,2017,2018,2019...
The problem is that these products arrive in a chronologically increasing way and I would like the opposite of course :)
php orders products magento2.3
Have you tried doing$collection->getSelect()->order('period DESC')
? Looking in the Bestsellers collection class it looks like that's how it sets the sort order, so that might override it.
– rain2o
11 hours ago
add a comment |
For now, I'm getting my best sales like this.
I would like to be able to influence the order of my products in the collection.
In my Block :
use MagentoSalesModelResourceModelReportBestsellersCollectionFactory;
// ...
public function __construct(TemplateContext $context,CollectionFactory $bestSellersCollectionFactory)
$this->bestSellersCollectionFactory = $bestSellersCollectionFactory;
parent::__construct($context, []);
public function getBestSellersProducts()
$collection = $this->bestSellersCollectionFactory->create()->setModel(
'MagentoCatalogModelProduct'
)
;
return $collection;
// ...
In my template :
$collection = $block->getBestSellersProducts();
// improvised part that doesn't work
$collection->setPeriod('month')->setOrder('period','DESC')->load();
// result data period -> 2015,2016,2017,2018,2019...
The problem is that these products arrive in a chronologically increasing way and I would like the opposite of course :)
php orders products magento2.3
For now, I'm getting my best sales like this.
I would like to be able to influence the order of my products in the collection.
In my Block :
use MagentoSalesModelResourceModelReportBestsellersCollectionFactory;
// ...
public function __construct(TemplateContext $context,CollectionFactory $bestSellersCollectionFactory)
$this->bestSellersCollectionFactory = $bestSellersCollectionFactory;
parent::__construct($context, []);
public function getBestSellersProducts()
$collection = $this->bestSellersCollectionFactory->create()->setModel(
'MagentoCatalogModelProduct'
)
;
return $collection;
// ...
In my template :
$collection = $block->getBestSellersProducts();
// improvised part that doesn't work
$collection->setPeriod('month')->setOrder('period','DESC')->load();
// result data period -> 2015,2016,2017,2018,2019...
The problem is that these products arrive in a chronologically increasing way and I would like the opposite of course :)
php orders products magento2.3
php orders products magento2.3
asked 12 hours ago
![](https://i.stack.imgur.com/cVDIl.jpg?s=32&g=1)
![](https://i.stack.imgur.com/cVDIl.jpg?s=32&g=1)
arnoarno
358
358
Have you tried doing$collection->getSelect()->order('period DESC')
? Looking in the Bestsellers collection class it looks like that's how it sets the sort order, so that might override it.
– rain2o
11 hours ago
add a comment |
Have you tried doing$collection->getSelect()->order('period DESC')
? Looking in the Bestsellers collection class it looks like that's how it sets the sort order, so that might override it.
– rain2o
11 hours ago
Have you tried doing
$collection->getSelect()->order('period DESC')
? Looking in the Bestsellers collection class it looks like that's how it sets the sort order, so that might override it.– rain2o
11 hours ago
Have you tried doing
$collection->getSelect()->order('period DESC')
? Looking in the Bestsellers collection class it looks like that's how it sets the sort order, so that might override it.– rain2o
11 hours ago
add a comment |
1 Answer
1
active
oldest
votes
You can override this method in this class : MagentoSalesModelResourceModelReportBestsellersCollectionFactory
/**
* Make select object for date boundary
*
* @param string $from
* @param string $to
* @return MagentoFrameworkDBSelect
*/
protected function _makeBoundarySelect($from, $to)
$connection = $this->getConnection();
$cols = $this->_getSelectedColumns();
$cols[$this->getOrderedField()] = 'SUM(' . $this->getOrderedField() . ')';
$select = $connection->select()->from(
$this->getResource()->getMainTable(),
$cols
)->where(
'period >= ?',
$from
)->where(
'period <= ?',
$to
)->group(
'product_id'
)->order(
$this->getOrderedField() . ' DESC' // 'period DESC'
)->limit(
$this->_ratingLimit
);
$this->_applyStoresFilterToSelect($select);
return $select;
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f269216%2fmagento-2-order-best-sellers-products-by-period%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can override this method in this class : MagentoSalesModelResourceModelReportBestsellersCollectionFactory
/**
* Make select object for date boundary
*
* @param string $from
* @param string $to
* @return MagentoFrameworkDBSelect
*/
protected function _makeBoundarySelect($from, $to)
$connection = $this->getConnection();
$cols = $this->_getSelectedColumns();
$cols[$this->getOrderedField()] = 'SUM(' . $this->getOrderedField() . ')';
$select = $connection->select()->from(
$this->getResource()->getMainTable(),
$cols
)->where(
'period >= ?',
$from
)->where(
'period <= ?',
$to
)->group(
'product_id'
)->order(
$this->getOrderedField() . ' DESC' // 'period DESC'
)->limit(
$this->_ratingLimit
);
$this->_applyStoresFilterToSelect($select);
return $select;
add a comment |
You can override this method in this class : MagentoSalesModelResourceModelReportBestsellersCollectionFactory
/**
* Make select object for date boundary
*
* @param string $from
* @param string $to
* @return MagentoFrameworkDBSelect
*/
protected function _makeBoundarySelect($from, $to)
$connection = $this->getConnection();
$cols = $this->_getSelectedColumns();
$cols[$this->getOrderedField()] = 'SUM(' . $this->getOrderedField() . ')';
$select = $connection->select()->from(
$this->getResource()->getMainTable(),
$cols
)->where(
'period >= ?',
$from
)->where(
'period <= ?',
$to
)->group(
'product_id'
)->order(
$this->getOrderedField() . ' DESC' // 'period DESC'
)->limit(
$this->_ratingLimit
);
$this->_applyStoresFilterToSelect($select);
return $select;
add a comment |
You can override this method in this class : MagentoSalesModelResourceModelReportBestsellersCollectionFactory
/**
* Make select object for date boundary
*
* @param string $from
* @param string $to
* @return MagentoFrameworkDBSelect
*/
protected function _makeBoundarySelect($from, $to)
$connection = $this->getConnection();
$cols = $this->_getSelectedColumns();
$cols[$this->getOrderedField()] = 'SUM(' . $this->getOrderedField() . ')';
$select = $connection->select()->from(
$this->getResource()->getMainTable(),
$cols
)->where(
'period >= ?',
$from
)->where(
'period <= ?',
$to
)->group(
'product_id'
)->order(
$this->getOrderedField() . ' DESC' // 'period DESC'
)->limit(
$this->_ratingLimit
);
$this->_applyStoresFilterToSelect($select);
return $select;
You can override this method in this class : MagentoSalesModelResourceModelReportBestsellersCollectionFactory
/**
* Make select object for date boundary
*
* @param string $from
* @param string $to
* @return MagentoFrameworkDBSelect
*/
protected function _makeBoundarySelect($from, $to)
$connection = $this->getConnection();
$cols = $this->_getSelectedColumns();
$cols[$this->getOrderedField()] = 'SUM(' . $this->getOrderedField() . ')';
$select = $connection->select()->from(
$this->getResource()->getMainTable(),
$cols
)->where(
'period >= ?',
$from
)->where(
'period <= ?',
$to
)->group(
'product_id'
)->order(
$this->getOrderedField() . ' DESC' // 'period DESC'
)->limit(
$this->_ratingLimit
);
$this->_applyStoresFilterToSelect($select);
return $select;
answered 12 hours ago
RobinRobin
61
61
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f269216%2fmagento-2-order-best-sellers-products-by-period%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you tried doing
$collection->getSelect()->order('period DESC')
? Looking in the Bestsellers collection class it looks like that's how it sets the sort order, so that might override it.– rain2o
11 hours ago