Как отобразить атрибут на странице просмотра товара в magento 2

Я пытаюсь отобразить некоторые атрибуты на странице просмотра продукта на веб-сайте magento 2. Однако я не могу получить значения для отображения на странице. Я пытался использовать

$block->getData('price')

а также

$block->getAttributeText('name')

Я пытаюсь вызвать значение цены, а также пользовательский текстовый атрибут и отображение / использование через файл phtml.

Ценю помощь. Спасибо

0

Решение

Попробуй это:

<?php $_product = $block->getProduct();
echo $_product->getPrice();
echo $_product->getAttributeText('color');
?>
0

Другие решения

Вы можете настроить следующую кодировку в соответствии с вашими требованиями. Предположим, что вы хотите отобразить пользовательский атрибут продукта (гарантию), сначала вам нужно отредактировать catalog_product_view.xml файл и обновите следующий контент. Вы можете добавить этот раздел в контейнер product.info.main. Вы можете добавить свой блок рядом с блоком product.info.overview. Поэтому он будет отображаться рядом с атрибутом краткого описания.

<block class="Magento\Catalog\Block\Product\View\Description" name="product.info.demo" template="product/view/demo.phtml" after="-">
<arguments>

<argument name="at_call" xsi:type="string">getWarranty</argument>

<argument name="at_code" xsi:type="string">warranty</argument>

<argument name="css_class" xsi:type="string">warranty </argument>

<argument name="at_label" xsi:type="string">warranty </argument>

<argument name="add_attribute" xsi:type="string">itemprop="warranty "</argument>

</arguments>

</block>

Создать новый файл warranty.phtml под mageno2root/vendor/magento/module-catalog/view/frontend/templates/product/view со следующим содержанием.

<?php

$_helper = $this->helper('Magento\Catalog\Helper\Output');

$_product = $block->getProduct();

$_code = $block->getAtCode();

$_className = $block->getCssClass();

$_attributeLabel = $block->getAtLabel();

$_attributeType = $block->getAtType();

$_attributeAddAttribute = $block->getAddAttribute();if ($_attributeLabel && $_attributeLabel == 'default') {

$_attributeLabel = $_product->getResource()->getAttribute($_code)->getFrontendLabel();

}

$_attributeValue =$_product->getResource()->getAttribute($_code)->getFrontend()->getValue($_product);

?>

<?php if ($_attributeValue): ?>

<div class="product attibute <?php echo $_className?>">

<?php if ($_attributeLabel != 'none'): ?><strong class="type"><?php echo $_attributeLabel?></strong><?php endif; ?>

<div class="value" <?php echo $_attributeAddAttribute;?>><?php echo $_attributeValue; ?></div>

</div>

<?php endif; ?>

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

0

$product = $objectManager->create('Magento\Catalog\Model\Product')->load($singleproductdata['entity_id']);
$attributes = $product->getAttributes();
foreach ($attributes as $attribute) {

echo $attribute->getAttributeCode();
echo $attribute->getFrontend()->getValue($product);

}
0
По вопросам рекламы [email protected]