mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-08 01:37:36 +00:00
50 lines
1.5 KiB
PHP
50 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
declare (strict_types=1);
|
|
namespace Magento\ConfigurableProduct\Model\Plugin;
|
|
|
|
use Magento\Catalog\Model\ResourceModel\GetProductTypeById;
|
|
use Magento\CatalogInventory\Model\ResourceModel\Stock\Item as ItemResourceModel;
|
|
use Magento\Framework\Model\AbstractModel as StockItem;
|
|
use Magento\ConfigurableProduct\Model\Product\Type\Configurable;
|
|
|
|
/**
|
|
* Updates stock_status_changed_auto setting for configurable product when it was saved manually
|
|
*/
|
|
class UpdateStockChangedAuto
|
|
{
|
|
/**
|
|
* @var GetProductTypeById
|
|
*/
|
|
private $getProductTypeById;
|
|
|
|
/**
|
|
* @param GetProductTypeById $getProductTypeById
|
|
*/
|
|
public function __construct(GetProductTypeById $getProductTypeById)
|
|
{
|
|
$this->getProductTypeById = $getProductTypeById;
|
|
}
|
|
|
|
/**
|
|
* Updates stock_status_changed_auto for configurable product
|
|
*
|
|
* @param ItemResourceModel $subject
|
|
* @param StockItem $stockItem
|
|
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
|
*/
|
|
public function beforeSave(ItemResourceModel $subject, StockItem $stockItem): void
|
|
{
|
|
if (!$stockItem->getIsInStock() &&
|
|
!$stockItem->hasStockStatusChangedAutomaticallyFlag() &&
|
|
$this->getProductTypeById->execute($stockItem->getProductId()) == Configurable::TYPE_CODE
|
|
) {
|
|
$stockItem->setStockStatusChangedAuto(0);
|
|
}
|
|
}
|
|
}
|