Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Member Functions | Protected Attributes
Stock Class Reference

Public Member Functions

 __construct (StoreManagerInterface $storeManager, ScopeConfigInterface $scopeConfig, StatusFactory $stockStatusFactory, StockRegistryProviderInterface $stockRegistryProvider)
 
 assignStatusToProduct (Product $product, $status=null)
 
 addStockStatusToProducts (AbstractCollection $productCollection)
 
 addInStockFilterToCollection ($collection)
 
 addIsInStockFilterToCollection ($collection)
 

Protected Member Functions

 getStockStatusResource ()
 

Protected Attributes

 $storeManager
 
 $scopeConfig
 
 $stockStatusResource
 
 $stockStatusFactory
 

Detailed Description

Class Stock @SuppressWarnings(PHPMD.CouplingBetweenObjects) @api

Deprecated:
2.3.0 Replaced with Multi Source Inventory https://devdocs.magento.com/guides/v2.3/inventory/catalog-inventory-replacements.html

Definition at line 26 of file Stock.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( StoreManagerInterface  $storeManager,
ScopeConfigInterface  $scopeConfig,
StatusFactory  $stockStatusFactory,
StockRegistryProviderInterface  $stockRegistryProvider 
)
Parameters
StoreManagerInterface$storeManager
ScopeConfigInterface$scopeConfig
StatusFactory$stockStatusFactory
StockRegistryProviderInterface$stockRegistryProvider

Definition at line 68 of file Stock.php.

73  {
74  $this->storeManager = $storeManager;
75  $this->scopeConfig = $scopeConfig;
76  $this->stockStatusFactory = $stockStatusFactory;
77  $this->stockRegistryProvider = $stockRegistryProvider;
78  }

Member Function Documentation

◆ addInStockFilterToCollection()

addInStockFilterToCollection (   $collection)

Adds filtering for collection to return only in stock products

Parameters
\Magento\Catalog\Model\ResourceModel\Product\Link\Product\Collection$collection
Returns
void

Definition at line 121 of file Stock.php.

122  {
123  $manageStock = $this->scopeConfig->getValue(
124  \Magento\CatalogInventory\Model\Configuration::XML_PATH_MANAGE_STOCK,
126  );
127  $cond = [
128  '{{table}}.use_config_manage_stock = 0 AND {{table}}.manage_stock=1 AND {{table}}.is_in_stock=1',
129  '{{table}}.use_config_manage_stock = 0 AND {{table}}.manage_stock=0'
130  ];
131 
132  if ($manageStock) {
133  $cond[] = '{{table}}.use_config_manage_stock = 1 AND {{table}}.is_in_stock=1';
134  } else {
135  $cond[] = '{{table}}.use_config_manage_stock = 1';
136  }
137 
138  $collection->joinField(
139  'inventory_in_stock',
140  'cataloginventory_stock_item',
141  'is_in_stock',
142  'product_id=entity_id',
143  '(' . join(') OR (', $cond) . ')'
144  );
145  }

◆ addIsInStockFilterToCollection()

addIsInStockFilterToCollection (   $collection)

Add only is in stock products filter to product collection

Parameters
\Magento\Catalog\Model\ResourceModel\Product\Collection$collection
Returns
void

Definition at line 153 of file Stock.php.

154  {
155  $stockFlag = 'has_stock_status_filter';
156  if (!$collection->hasFlag($stockFlag)) {
157  $isShowOutOfStock = $this->scopeConfig->getValue(
158  \Magento\CatalogInventory\Model\Configuration::XML_PATH_SHOW_OUT_OF_STOCK,
160  );
162  $resource->addStockDataToCollection(
163  $collection,
164  !$isShowOutOfStock
165  );
166  $collection->setFlag($stockFlag, true);
167  }
168  }
$resource
Definition: bulk.php:12

◆ addStockStatusToProducts()

addStockStatusToProducts ( AbstractCollection  $productCollection)

Add stock status information to products

Parameters
AbstractCollection$productCollection
Deprecated:
100.1.0 Use Stock::addIsInStockFilterToCollection instead
Returns
void

Definition at line 104 of file Stock.php.

105  {
106  $scopeId = $this->getStockConfiguration()->getDefaultScopeId();
107  foreach ($productCollection as $product) {
108  $productId = $product->getId();
109  $stockStatus = $this->stockRegistryProvider->getStockStatus($productId, $scopeId);
110  $status = $stockStatus->getStockStatus();
111  $product->setIsSalable($status);
112  }
113  }
$status
Definition: order_status.php:8

◆ assignStatusToProduct()

assignStatusToProduct ( Product  $product,
  $status = null 
)

Assign stock status information to product

Parameters
Product$product
int$status
Returns
void

Definition at line 87 of file Stock.php.

88  {
89  if ($status === null) {
90  $scopeId = $this->getStockConfiguration()->getDefaultScopeId();
91  $stockStatus = $this->stockRegistryProvider->getStockStatus($product->getId(), $scopeId);
92  $status = $stockStatus->getStockStatus();
93  }
94  $product->setIsSalable($status);
95  }
$status
Definition: order_status.php:8

◆ getStockStatusResource()

getStockStatusResource ( )
protected
Returns
Status

Definition at line 173 of file Stock.php.

174  {
175  if (empty($this->stockStatusResource)) {
176  $this->stockStatusResource = $this->stockStatusFactory->create();
177  }
179  }

Field Documentation

◆ $scopeConfig

$scopeConfig
protected

Definition at line 40 of file Stock.php.

◆ $stockStatusFactory

$stockStatusFactory
protected

Definition at line 50 of file Stock.php.

◆ $stockStatusResource

$stockStatusResource
protected

Definition at line 45 of file Stock.php.

◆ $storeManager

$storeManager
protected

Definition at line 33 of file Stock.php.


The documentation for this class was generated from the following file: