Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IsSalableOptionSelectBuilder.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
16 
21 {
25  private $storeManager;
26 
30  private $stockResolver;
31 
35  private $stockIndexTableNameResolver;
36 
42  public function __construct(
43  StoreManagerInterface $storeManager,
44  StockResolverInterface $stockResolver,
45  StockIndexTableNameResolverInterface $stockIndexTableNameResolver
46  ) {
47  $this->storeManager = $storeManager;
48  $this->stockResolver = $stockResolver;
49  $this->stockIndexTableNameResolver = $stockIndexTableNameResolver;
50  }
51 
61  public function afterGetSelect(
64  ) {
65  $websiteCode = $this->storeManager->getWebsite()->getCode();
66  $stock = $this->stockResolver->execute(SalesChannelInterface::TYPE_WEBSITE, $websiteCode);
67  $stockId = (int)$stock->getStockId();
68  $stockTable = $this->stockIndexTableNameResolver->execute($stockId);
69 
70  $select->joinInner(
71  ['stock' => $stockTable],
72  'stock.sku = entity.sku',
73  []
74  )->where(
75  'stock.is_salable = ?',
76  1
77  );
78 
79  return $select;
80  }
81 }
__construct(StoreManagerInterface $storeManager, StockResolverInterface $stockResolver, StockIndexTableNameResolverInterface $stockIndexTableNameResolver)
$storeManager
$stock
if(!isset($_GET['website_code'])) $websiteCode
Definition: website.php:11