/**
  * Clean expired quotes (cron process)
  *
  * @return void
  */
 public function execute()
 {
     $lifetimes = $this->storesConfig->getStoresConfigByPath('checkout/cart/delete_quote_after');
     foreach ($lifetimes as $storeId => $lifetime) {
         $lifetime *= self::LIFETIME;
         /** @var $quotes \Magento\Sales\Model\Resource\Quote\Collection */
         $quotes = $this->quoteCollectionFactory->create();
         $quotes->addFieldToFilter('store_id', $storeId);
         $quotes->addFieldToFilter('updated_at', array('to' => date("Y-m-d", time() - $lifetime)));
         $quotes->addFieldToFilter('is_active', 0);
         foreach ($this->getExpireQuotesAdditionalFilterFields() as $field => $condition) {
             $quotes->addFieldToFilter($field, $condition);
         }
         $quotes->walk('delete');
     }
 }
Beispiel #2
0
 /**
  * Clean expired quotes (cron process)
  *
  * @param \Magento\Cron\Model\Schedule $schedule
  * @return $this
  */
 public function cleanExpiredQuotes($schedule)
 {
     $this->_eventManager->dispatch('clear_expired_quotes_before', array('sales_observer' => $this));
     $lifetimes = $this->_storesConfig->getStoresConfigByPath('checkout/cart/delete_quote_after');
     foreach ($lifetimes as $storeId => $lifetime) {
         $lifetime *= 86400;
         /** @var $quotes \Magento\Sales\Model\Resource\Quote\Collection */
         $quotes = $this->_quoteCollectionFactory->create();
         $quotes->addFieldToFilter('store_id', $storeId);
         $quotes->addFieldToFilter('updated_at', array('to' => date("Y-m-d", time() - $lifetime)));
         $quotes->addFieldToFilter('is_active', 0);
         foreach ($this->getExpireQuotesAdditionalFilterFields() as $field => $condition) {
             $quotes->addFieldToFilter($field, $condition);
         }
         $quotes->walk('delete');
     }
     return $this;
 }