/**
  * Disable creation for default stock item on product save.
  *
  * @param \Magento\CatalogInventory\Model\StockRegistry $subject
  * @param \Closure $proceed
  * @param string $productSku
  * @param \Magento\CatalogInventory\Api\Data\StockItemInterface $stockItem
  * @return int
  */
 public function aroundUpdateStockItemBySku(\Magento\CatalogInventory\Model\StockRegistry $subject, \Closure $proceed, $productSku, \Magento\CatalogInventory\Api\Data\StockItemInterface $stockItem)
 {
     $result = null;
     $stockId = $stockItem->getStockId();
     if ($stockId) {
         $result = $proceed($productSku, $stockItem);
     }
     return $result;
 }
 /**
  * @param ProductInterface $product
  * @param StockItemInterface $stockItem
  * @throws LocalizedException
  * @return void
  */
 private function validateStockItem(ProductInterface $product, StockItemInterface $stockItem)
 {
     $defaultScopeId = $this->stockConfiguration->getDefaultScopeId();
     $defaultStockId = $this->stockRegistry->getStock($defaultScopeId)->getStockId();
     $stockId = $stockItem->getStockId();
     if ($stockId !== null && $stockId != $defaultStockId) {
         throw new LocalizedException(__('Invalid stock id: %1. Only default stock with id %2 allowed', $stockId, $defaultStockId));
     }
     $stockItemId = $stockItem->getItemId();
     if ($stockItemId !== null && (!is_numeric($stockItemId) || $stockItemId <= 0)) {
         throw new LocalizedException(__('Invalid stock item id: %1. Should be null or numeric value greater than 0', $stockItemId));
     }
     $defaultStockItemId = $this->stockRegistry->getStockItem($product->getId())->getItemId();
     if ($defaultStockItemId && $stockItemId !== null && $defaultStockItemId != $stockItemId) {
         throw new LocalizedException(__('Invalid stock item id: %1. Assigned stock item id is %2', $stockItemId, $defaultStockItemId));
     }
 }