Magento 2 - продукт теряет эскиз после обновления количества - PullRequest
0 голосов
/ 15 ноября 2018

Я не уверен, почему с Magento все так сложно.Я пытаюсь обновлять количество продуктов программно.

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

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

} catch (NoSuchEntityException $e) { }

Кажется, это работает просто отлично, однако, когда я захожу в администратор и просматриваю список продуктов, миниатюры отсутствуют для любого продукта, который былобновлено.

Если я зайду в этот продукт и посмотрю на его изображения, все они есть, а к миниатюре изображения все еще прикреплена метка / роль "thumbnail".

1 Ответ

0 голосов
/ 15 ноября 2018

Правильный способ сделать это - использовать 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);

Этот код не будет вызывать несвязанных наблюдателей или плагинов, которые могут быть у вас в вашем проекте, и он не сломает миниатюру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...