Magento 2 добавить пользовательский атрибут к названию продукта - PullRequest
0 голосов
/ 11 октября 2019

Я бы хотел добавить 2 пользовательских атрибута после названия продукта ВЕЗДЕ в магазине magento 2.

Как "Атрибут продукта1 Атрибут1"

Возможно ли это и как? Нужно ли изменять каждую страницу или есть способ напрямую воздействовать на визуализацию названия продукта для всей системы?

спасибо

1 Ответ

0 голосов
/ 11 октября 2019

Для этого необходимо создать расширение. Пожалуйста, проверьте мой код

  1. Создать папку в приложении / code / Magenest
  2. Создать подпапку в приложении / code / Magenest / Sample
  3. Теперь создайте файл registration.php со следующим кодом

</p> <pre><code><?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Magenest_Sample', __DIR__ );

Создайте папку etc в приложении / code / Magenest / Sample / Создайте файл module.xml в папке etc с помощью следующего кода

</p> <pre><code><?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Magenest_Sample" setup_version="2.0.0"> </module></config>

Создать папку в веб-интерфейсе в приложении / code / Magenest / Sample / etc / Создать файл di.xml в приложении / code / Magenest / Sample / etc / со следующимикод

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Catalog\Model\Product" type="Magenest\Sample\Model\Product"/>
</config>
</code>
Теперь создайте папку Model в приложении / Magenest / Sample / Создайте Product.php в папке Model со следующим кодом

<?php

namespace Magenest\Sample\Model;

class Product extends \Magento\Catalog\Model\Product
{
public function getName()
{

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $product = $objectManager->create('Magento\Catalog\Model\Product')->load($this->_getData('entity_id'));
     $myattribute = $product->getResource()->getAttribute('putyourcustomattribute')->getFrontend()->getValue($product);

     $changeNamebyPreference = $this->_getData('name') . ' '. $myattribute;
     return $changeNamebyPreference;
}
}
</code>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...