72 $this->_checkoutSession = $checkoutSession;
73 $this->_productVisibility = $productVisibility;
75 $this->_itemRelationsList = $itemRelationsList;
81 $this->_isScopePrivate =
true;
98 $collection = $this->_getCollection()->addProductFilter($lastAdded);
99 if (!empty($ninProductIds)) {
100 $collection->addExcludeProductFilter($ninProductIds);
105 $ninProductIds[] =
$item->getId();
110 if (count(
$items) < $this->_maxItemCount) {
111 $filterProductIds = array_merge(
113 $this->_itemRelationsList->getRelatedProductIds($this->getQuote()->getAllItems())
115 $collection = $this->_getCollection()->addProductFilter(
117 )->addExcludeProductFilter(
120 $this->_maxItemCount - count(
$items)
121 )->setGroupBy()->setPositionOrder()->load();
151 $ids = $this->
getData(
'_cart_product_ids');
160 $this->
setData(
'_cart_product_ids', $ids);
173 return $this->_checkoutSession->getLastAddedProductId(
true);
184 return $this->_checkoutSession->getQuote();
192 protected function _getCollection()
195 $collection = $this->_productLinkFactory->create()->useCrossSellLinks()->getProductCollection()->setStoreId(
196 $this->_storeManager->getStore()->getId()
197 )->addStoreFilter()->setPageSize(
200 $this->_productVisibility->getVisibleInCatalogIds()
getData($key='', $index=null)
setData($key, $value=null)
_addProductAttributesAndPrices(\Magento\Catalog\Model\ResourceModel\Product\Collection $collection)
__construct(\Magento\Catalog\Block\Product\Context $context, \Magento\Checkout\Model\Session $checkoutSession, \Magento\Catalog\Model\Product\Visibility $productVisibility, \Magento\Catalog\Model\Product\LinkFactory $productLinkFactory, \Magento\Quote\Model\Quote\Item\RelatedProducts $itemRelationsList, StockHelper $stockHelper, array $data=[])