Das ist mein Beobachter:
public function execute(\Magento\Framework\Event\Observer $observer)
{
$orderIds = $observer->getEvent()->getOrderIds();
$order = $this->_orderRepositoryInterface->get($orderIds[0]);
$items =$order->getAllVisibleItems();
$productQuantity = array();
$productPrice = array();
$productName = array();
$productIds = array();
foreach($items as $item) {
$productIds[]= $item->getProductId();
$productName[]= $item->getSku();
$productPrice[] = $item->getPrice();
$productQuantity[]= floor($item->getQtyOrdered());
}
}
Wie kann ich das Produktbild und die Produkt-URL aus dem Artikel erhalten?
magento2
product
event-observer
product-images
Ramkishan Suthar
quelle
quelle
Antworten:
Dieser Weg ist möglicherweise nicht der beste Weg, um ein Produktimage zu erhalten.
\Magento\Catalog\Api\ProductRepositoryInterfaceFactory
In unseren Konstruktor einspritzen .Wir können das Bild bekommen:
quelle
pub/media/catalog/product
Wenn Sie die veröffentlichte / Cache-Frontend-URL eines Bildes für eine bestimmte Geschäftsansicht (wie ich) möchten, funktioniert dies für mich:
Dann, wo immer Sie die Bild-Frontend-URL benötigen:
Sie können auch andere Bildtypen auswählen
product_thumbnail_image
:magento/theme-frontend-luma/etc/view.xml
Eine Liste der verfügbaren Produktbilder finden Sie unter, oder Sie erstellen eigene Bilder in einerview.xml
Datei.quelle
Wenn Sie eine Produkt-URL zurückgeben müssen, sollte diese folgendermaßen aussehen:
quelle
So habe ich es gemacht. es ist sehr effizient und sauber:
1) Zuerst müssen Sie die folgenden Klassen injizieren:
2) Erstellen Sie anschließend eine getImageUrl-Methode mit dem folgenden Code:
Hinweis: Der Code "appEmulation" ist nur erforderlich, wenn Sie diesen Aufruf vom Administrator oder für eine API ausführen . Andernfalls erhalten Sie den folgenden (oder einen ähnlichen) Fehler:
3) Rufen Sie die getImageUrl auf und übergeben Sie das Produktobjekt und den gewünschten Bildtyp (basierend auf Ihrer view.xml- Datei).
quelle
Um eine benutzerdefinierte Bild-URL zu erhalten, habe ich diesen Code verwendet. Wenn das Bild nicht beendet wird, wird das Standarddesignbild geladen.
quelle