Ini adalah pengamat saya:
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());
}
}
Bagaimana saya bisa mendapatkan gambar produk dan URL produk dari item?
magento2
product
event-observer
product-images
Ramkishan Suthar
sumber
sumber
Jawaban:
Cara ini mungkin bukan cara terbaik untuk mendapatkan gambar produk.
Suntikkan
\Magento\Catalog\Api\ProductRepositoryInterfaceFactory
di konstruktor kami.Kita bisa mendapatkan gambar:
sumber
pub/media/catalog/product
Jika Anda ingin URL tampilan depan / cache dari suatu gambar untuk tampilan toko tertentu (seperti yang saya lakukan) ini berfungsi untuk saya:
Lalu, di mana pun Anda perlu mendapatkan URL frontend gambar:
Anda dapat memilih jenis gambar lain selain
product_thumbnail_image
: lihatmagento/theme-frontend-luma/etc/view.xml
daftar gambar produk yang tersedia, atau buat gambar Anda sendiri dalamview.xml
file.sumber
Jika Anda perlu mengembalikan URL produk, URL akan terlihat seperti ini:
sumber
Itulah yang saya lakukan. cukup efisien dan bersih:
1) Pertama, Anda perlu menyuntikkan kelas-kelas berikut:
2) Kemudian, buat metode getImageUrl dengan kode di bawah ini:
Catatan: Kode "appEmulation" hanya diperlukan ketika Anda melakukan panggilan ini dari admin atau untuk API . Jika tidak, Anda akan mendapatkan kesalahan di bawah ini (atau serupa):
3) Panggil getImageUrl lewat objek produk dan jenis gambar yang Anda inginkan (berdasarkan file view.xml Anda )
sumber
Untuk mendapatkan url gambar khusus, saya menggunakan kode ini. Jadi jika gambar tidak keluar itu akan memuat gambar tema default.
sumber