Ich möchte Funktionen wie getName()
, getPrice()
usw. des Produkts verwenden, um Produktinformationen in Magento 2 abzurufen.
Kann mir jemand zeigen, wie ich das erreichen kann?
product
price
magento2
magento-2.0
J. John
quelle
quelle
Antworten:
In Magento 2 wurde vorgeschlagen, hierfür Service Layer zu verwenden. Verwenden Sie die
\Magento\Catalog\Model\ProductRepository::getById
Methode, um das Produkt anhand der ID abzurufenquelle
Magento 2 empfiehlt,
Factories
zum Laden aller Modelle zu verwenden. So solltest du es machen:Fügen Sie über Ihrer Klasse die folgende Zeile ein:
Erstellen Sie nun eine Klasseneigenschaft:
Fügen Sie in Ihrem Konstruktor Abhängigkeit hinzu:
Laden Sie nun das Produkt wie folgt:
quelle
Zusätzlich zu anderen Antworten empfehle ich die Verwendung der folgenden Methoden für Serviceverträge:
\Magento\Catalog\Api\ProductRepositoryInterface::getById
: um ein Produkt nach ID zu laden\Magento\Catalog\Api\ProductRepositoryInterface::get
: um ein Produkt von SKU zu ladenquelle
Der einfachere Weg, dies mit Magento zu erreichen, obwohl es schwer zu sagen ist, da die meisten Stellen im Kerncode anders vorgehen, ist die Verwendung des Produkt-Repositorys.
quelle
Dafür müssen Sie unten verwenden
verwenden
\Magento\Catalog\Model\Resource\Product\CollectionFactory
quelle
Ich habe Produktdetails mit der Funktion auf der Produktansichtsseite wie unten abgerufen.
Hier ist Sm / Sawyer mein Thema.
quelle