22 private $storeManager;
32 private $customerSession;
37 private $catalogHelper;
42 private $metadataPool;
47 private $baseSelectProcessor;
67 $this->customerSession = $customerSession;
68 $this->catalogHelper = $catalogHelper;
69 $this->metadataPool = $metadataPool;
70 $this->baseSelectProcessor = (
null !== $baseSelectProcessor)
79 $linkField = $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField();
80 $productTable = $this->resource->getTableName(
'catalog_product_entity');
82 $priceSelect = $this->resource->getConnection()->select()
83 ->from([
'parent' => $productTable],
'')
85 [
'link' => $this->resource->getTableName(
'catalog_product_relation')],
86 "link.parent_id = parent.$linkField",
93 [
't' => $this->resource->getTableName(
'catalog_product_entity_tier_price')],
97 ->where(
't.all_groups = 1 OR customer_group_id = ?', $this->customerSession->getCustomerGroupId())
98 ->where(
't.qty = ?', 1)
102 $priceSelect = $this->baseSelectProcessor->process($priceSelect);
104 if (!$this->catalogHelper->isPriceGlobal()) {
105 $priceSelectStore = clone $priceSelect;
106 $priceSelectStore->where(
't.website_id = ?', $this->storeManager->getStore()->getWebsiteId());
107 $selects[] = $priceSelectStore;
110 $priceSelect->where(
't.website_id = ?', self::DEFAULT_WEBSITE_ID);
111 $selects[] = $priceSelect;
const PRODUCT_TABLE_ALIAS
__construct(\Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\ResourceConnection $resourceConnection, \Magento\Customer\Model\Session $customerSession, \Magento\Catalog\Helper\Data $catalogHelper, \Magento\Framework\EntityManager\MetadataPool $metadataPool, BaseSelectProcessorInterface $baseSelectProcessor=null)