Вы можете сделать следующее, чтобы отобразить пользовательский атрибут продукта, в данном случае гарантийный атрибут продукта на странице просмотра продукта.
Шаг 1: Создайте новый атрибут «гарантия» в бэкэнде Magento под STORES->Attributes->Product
.
Установите значения «ДА» в параметрах «Видимый на странице представления продукта в интерфейсе» и «Используется в списке продуктов» в разделе «Свойства витрины» при создании атрибута для отображения его в списке продуктов и просмотра страниц.
Шаг 2: Назначьте новый атрибут «гарантия» атрибуту по умолчанию, установленному в наборе STORES->Attributes->Attribute
.
Шаг 3: Теперь вы увидите атрибут при создании продуктов. Вы можете дать любое желаемое значение.
Шаг 4: Отредактируйте файл 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>
Шаг 5: Создайте новый файл 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; ?>