Magento 2 Измените изображение продукта на миникарте с миниатюры на обычное изображение


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

Файл, содержащий ссылку на изображение, находится в пределах Magento_Catalog/web/template/product/image_with_borders.html, хотя src изображения задан следующим образом:

data-bind="attr: {src: src, alt: alt}

Я действительно не знаю, как бы я изменил src изображения, но я полагаю, что есть другой файл где-то, где это упоминается, но я не могу его найти. Любая помощь приветствуется.

Author: A. Fletcher, 2019-03-18

2 answers

Попробуйте это,

Вы можете редактировать view.xml в приведенном ниже пути

Приложение/дизайн/{Пакет}/{Название темы}/etc/view.xml

Добавьте в него приведенный ниже код

<image id="mini_cart_product_image" type="image">
            <width>100</width>
            <height>100</height>
</image>

Вы можете изменить тип изображения и ширину/высоту в соответствии с вашими потребностями

Тип - Это означает, какой тип изображения должен отображаться в соответствующих местах интерфейса.

Объяснение:

  1. изображение – соответствует роли базового изображения
  2. маленькое изображение – соответствует роли малого изображения
  3. swatch_image – соответствует роли изображения образца
  4. swatch_thumb – соответствует роли изображения образца
  5. миниатюра – соответствует роли миниатюры изображения

Для получения дополнительной информации Посмотрите на это

Надеюсь, это поможет

 3
Author: Prathap Gunasekaran, 2019-03-18 13:49:09

В этом разделе мы расскажем, как изменить изображение товара в миникарте

Step 1: Create di.xml file

Step 2: Create Image.php file

Изображение продукта в миникарте будет отображаться функцией doGetItemData() в классе Magento\Checkout\CustomerData\DefaultItem, но эта функция защищена, поэтому мы не можем использовать плагин для нее. Вместо этого он расширяется от Magento\Checkout\CustomerData\AbstractItem и использует функцию getItemData()

Сначала нам нужно создать файл регистрации и модуля в соответствии со структурой magento 2, затем выполните следующие действия.

Step 1: Create di.xml file

Создать di.xml файл в app/code/[Name_Space]/[Your_Module]/etc/frontend

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\CustomerData\AbstractItem">
     <plugin name="Change_Product_Image_In_Minicart" type="[Name_Space]\[Your_Module]\Plugin\Minicart\Image" sortOrder="1"/>
</type>
</config>


Step 2: Create Image.php file

Создать Image.php файл в app/code/[Name_Space]\[Your_Module]\Plugin\Minicart

<?php

namespace [Name_Space]\[Your_Module]\Plugin\Minicart;

class Image
{

    public function aroundGetItemData($subject, $proceed, $item)
    {

        $result = $proceed($item);

        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $product = $objectManager->create('Magento\Catalog\Model\Product')->load($result['product_id']);

        /* thum url */ 
        $storeManager = $objectManager->create('Magento\Store\Model\StoreManagerInterface'); 
        $currentStore = $storeManager->getStore();
        $mediaUrl = $currentStore->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);

        if($product->getThumbnail()){
            $result['product_image']['src'] = $mediaUrl.$product->getThumbnail();
        }
        else{
            $result['product_image']['src'];
        }
        return $result;
    }
}
 2
Author: Baharuni Asif, 2019-12-13 05:36:54