Es ist ziemlich einfach, aber ich kann kein funktionierendes Beispiel für Stackexchange oder Google finden. Ich möchte ein Produkt von einem Helfer oder Block laden. Ich habe schon einige Dinge ausprobiert:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('\Magento\Catalog\Api\Data\ProductInterface');
$product->get('<SKU>');
$product->getName();
Dies gibt nichts zurück. Ich habe auch versucht, verfügbare Modelle und APIs zu laden, aber mit SKUs scheint nichts zu funktionieren.
Use Magento\Catalog\Api\ProductRepositoryInterface to get it in your constructor.
? Was soll ich tun? Vielen DankAnstatt den Objektmanager direkt zu verwenden, injizieren Sie die ProductFactory:
Dann benutze es so:
oder, um eine vollständige Ladung durchzuführen (die oben genannten laden sie mit einer Sammlung):
quelle
load()
und Sammlungen die "Magento 1" -Methode. Verwenden Sie besser das von @RiccardoT vorgeschlagene Repository.Api/Data/Product
), die ein Produktmodell ist in eine abgespeckte DTO umgewandelt. Etwas zu beachten, da sie ganz anders sind.$product = $this->productFactory->create(); $product->load($product->getIdBySku($sku)); $product->getThumbnailUrl()
Miniaturbild des Produkts anzuzeigen, aber es funktioniert nicht.productFactory
Ich mag die Antwort von @ phoenix128-riccardot, würde aber eine Ausnahme hinzufügen, nur für den Fall, dass das Produkt nicht existiert:
Ich konnte es leider nicht als Kommentar hinzufügen (zu geringes Ansehen).
quelle
Sie können das versuchen
quelle
Versuche dies:
quelle
Verwenden der Abhängigkeitsinjektion (DI)
Hier ist der Beispielcode, um die Produktinformationen nach Produkt-ID und SKU in Magento 2 mithilfe der Abhängigkeitsinjektion abzurufen.
In diesem Fall müssen wir möglicherweise das Objekt der Klasse \ Magento \ Catalog \ Model \ ProductRepository in den Konstruktor der Blockklasse unseres Moduls einfügen und über die Ansichtsdatei (.phtml) darauf zugreifen.
Beispieldateipfad: app / code / YourCompanyName / YourModuleName / Block / YourCustomBlock.php
Jetzt können wir die Funktionen in unserer Ansichtsdatei (.phtml) wie folgt verwenden.
Verwenden des Objektmanagers
Hier ist der Beispielcode zum Abrufen der Produktinformationen nach Produkt-ID und SKU in Magento 2 mithilfe des Objektmanagers.
quelle
quelle