Magento 2-Produktattribut-Farbfeldbild

7

Ich habe ein Produkt geschaffen Attribut , das ein Bild verwendet Feld für jedes Attribut Wert.

Meine Frage ist, wie ich die Image-Swatch-URL aus dem Attribut in meiner Produktansicht abrufen kann.

Ich bin mit dem Abrufen eines Attributwerts vertraut, kann aber anscheinend nicht herausfinden, wie das Bildfeld abgerufen wird.

Jede Hilfe wäre großartig.

DevinCharles
quelle

Antworten:

1

Um diesen Wert abzurufen, benötigen Sie den nächsten in Ihrem Block oder viewModel ( https://www.yireo.com/blog/1856-viewmodels-in-magento-2 ).

...

use Magento\Catalog\Helper\Data as CatalogData;
use Magento\Swatches\Helper\Data;
use Magento\Swatches\Helper\Media;

...

/**
 * @var Data
 */
private $swatchesHelper;

/**
 * @var Media
 */
private $swatchesHelperMedia;

/**
 * @var CatalogData
 */
private $catalogHelperData;

...

/**
 * @return string|null
 */
public function getSwatchImage()
{
    $product = $this->catalogHelperData->getProduct(); //This depends of as you want do it,but you can do it on this way
    if ($product->getSwatchAttribute()) {
        $image = $this->swatchesHelper->getSwatchesByOptionsId([$product->getSwatchAttribute()]);
        if (current($image)['value']) {
            return $this->swatchesHelperMedia->getSwatchAttributeImage('swatch_thumb', current($image)['value']);
        }
    }

    return null;
}

swatch_attribute ist der Attributcode.

raumatbel
quelle