Why aren't the roles I selected in my controller for an uploaded image displaying in the admin backend

magento.stackexchange https://magento.stackexchange.com/questions/300154

문제

I've recently created some code that grabs a remote image, pulls it to the server, and sets a product to have this image with a number of roles. See below:

file_put_contents($import_filepath, file_get_contents($bgg_image));
$attribute_codes = ['image', 'small_image', 'thumbnail', 'bgg_image'];
$product->addImageToMediaGallery($import_filepath, $attribute_codes, false, false);
unlink($import_filepath);
$this->productRepository->save($product);

$import_filepath is the path to place on the server. $bgg_image is a remote image.

This is working fine, the upload is successful. The roles are actually being set too, i.e.

$attribute_codes = ['image', 'small_image', 'thumbnail', 'bgg_image'];

I can tell because if I use the below code, it will print out the correct path for my image:

 $product = $this->productRepository->getById($product_id);
 $logger->info('data is now bgg -------- ' . $product->getData('bgg_image'));
2020-01-02T04:48:43+00:00 INFO (6): data is now bgg -------- //b/g/bgg_img_24291_pic2428687_1_2.jpg

The issue is that in the below screenshot, these roles don't display on the frontend at all unless I manually select them and save the product. All other behaviour on the frontend website is as expected.

enter image description here enter image description here I've tried reloading the cache, completely clearing the cache, redploying all static files, and a whole bunch of stuff that's brought up nada.

Pls help.

도움이 되었습니까?

해결책

Turns out they were being set for the scope of my store view, not the scope of all stores. If one wants to set scope for all stores, they should set store view to 0, set the image, and then set the store scope back again.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top