Magento 2-数量更新后产品丢失缩略图

时间:2018-11-14 21:57:19

标签: php magento2

我不确定Magento为何一切如此困难。我正在尝试以编程方式更新产品数量。

try{
    $product = $this->productRepository->get($sku);
    $product->setStockData( [
        'qty' => $quantity
    ] );

    $this->productRepository->save($product);

} catch (NoSuchEntityException $e) { }

这似乎很好,但是,当我进入管理员页面并查看产品列表时,所有已更新产品的缩略图都将丢失。

如果我进入该产品并查看其图像,它们就全部存在,并且缩略图图像上仍然贴有标签/角色“缩略图”。

1 个答案:

答案 0 :(得分:0)

正确的方法是使用StockRegistryInterface

/**
 * @var StockRegistryInterface
 */
protected $stockRegistry;

/**
 * Inventory constructor.
 * @param StockRegistryInterface $stockRegistry
 */
public function __construct(
    StockRegistryInterface $stockRegistry
)
{
    $this->stockRegistry = $stockRegistry;
}

使用上面的代码,您可以使用以下代码:

$stockItem = $this->stockRegistry->getStockItemBySku($sku);
$stockItem->setQty($qty);
$this->stockRegistry->updateStockItemBySku($sku, $stockItem);

此代码不会调用项目中可能没有的无关的观察者或插件,并且不会破坏缩略图