Example #1
0
 /**
  * Calculate cache product compare collection
  *
  * @param bool $logout
  * @return $this
  */
 public function calculate($logout = false)
 {
     /** @var $collection Collection */
     $collection = $this->_itemCollectionFactory->create()->useProductItem(true);
     if (!$logout && $this->_customerSession->isLoggedIn()) {
         $collection->setCustomerId($this->_customerSession->getCustomerId());
     } elseif ($this->_customerId) {
         $collection->setCustomerId($this->_customerId);
     } else {
         $collection->setVisitorId($this->_logVisitor->getId());
     }
     /* Price data is added to consider item stock status using price index */
     $collection->addPriceData()->setVisibility($this->_catalogProductVisibility->getVisibleInSiteIds());
     $count = $collection->getSize();
     $this->_catalogSession->setCatalogCompareItemsCount($count);
     return $this;
 }