29 private $stockRegistry;
65 $quantityAndStockStatus =
$product->getData(
'quantity_and_stock_status');
66 if (is_array($quantityAndStockStatus)) {
70 $quantityAndStockStatus = $this->prepareQuantityAndStockStatus(
$stockItem, $quantityAndStockStatus);
72 if ($quantityAndStockStatus) {
88 private function prepareQuantityAndStockStatus(StockItemInterface
$stockItem, array $quantityAndStockStatus)
92 if (
null !== $stockItemId) {
93 if (isset($quantityAndStockStatus[
'is_in_stock'])
94 &&
$stockItem->getIsInStock() == $quantityAndStockStatus[
'is_in_stock']
96 unset($quantityAndStockStatus[
'is_in_stock']);
98 if (array_key_exists(
'qty', $quantityAndStockStatus)
99 &&
$stockItem->getQty() == $quantityAndStockStatus[
'qty']
101 unset($quantityAndStockStatus[
'qty']);
105 if (array_key_exists(
'qty', $quantityAndStockStatus) && $quantityAndStockStatus[
'qty'] ===
'') {
106 $quantityAndStockStatus[
'qty'] =
null;
108 return $quantityAndStockStatus;
122 private function setStockDataToProduct(Product
$product, Item
$stockItem, array $quantityAndStockStatus)
124 $stockData = array_replace((array)
$product->getData(
'stock_data'), $quantityAndStockStatus);
execute(EventObserver $observer)
__construct(\Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry)