Ini cukup mendasar, tetapi saya tidak dapat menemukan contoh yang berfungsi di Stackexchange atau google. Saya ingin memuat produk dari helper atau blok. Saya sudah mencoba beberapa hal seperti:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('\Magento\Catalog\Api\Data\ProductInterface');
$product->get('<SKU>');
$product->getName();
Ini tidak menghasilkan apa-apa. Saya juga mencoba memuat model dan API yang tersedia, tetapi sepertinya tidak ada yang berhasil dengan SKU.
Use Magento\Catalog\Api\ProductRepositoryInterface to get it in your constructor.
? Apa yang harus saya lakukan? Terima kasih banyakAlih-alih menggunakan manajer objek secara langsung, menyuntikkan ProductFactory:
Kemudian gunakan seperti ini:
atau untuk melakukan pemuatan penuh (di atas memuatnya menggunakan koleksi):
sumber
load()
dan koleksi adalah cara "Magento 1", lebih baik gunakan repositori seperti yang disarankan oleh @RiccardoT.Api/Data/Product
), yang merupakan model Produk yang dikonversi menjadi DTO yang dumbed-down. Sesuatu untuk dipertimbangkan, karena mereka sangat berbeda.$product = $this->productFactory->create(); $product->load($product->getIdBySku($sku)); $product->getThumbnailUrl()
untuk menampilkan gambar mini produk, tetapi tidak berfungsi.productFactory
Saya suka jawaban @ phoenix128-riccardot, tetapi akan menambahkan pengecualian, kalau-kalau produk tersebut tidak ada:
Saya tidak dapat menambahkannya sebagai komentar (reputasi terlalu rendah), maaf.
sumber
Anda bisa mencobanya
sumber
Coba ini:
sumber
Menggunakan Dependency Injection (DI)
Berikut adalah contoh kode untuk mendapatkan informasi produk berdasarkan ID produk dan SKU di Magento 2 menggunakan injeksi ketergantungan.
Dalam hal ini, kita mungkin perlu menyuntikkan objek dari kelas \ Magento \ Catalog \ Model \ ProductRepository dalam konstruktor kelas blok modul kita dan mengaksesnya dari file view (.phtml).
Contoh File Path: app / code / YourCompanyName / YourModuleName / Block / YourCustomBlock.php
Sekarang, kita dapat menggunakan fungsi dalam file view (.phtml) kita sebagai berikut.
Menggunakan Object Manager
Berikut adalah contoh kode untuk mendapatkan informasi produk berdasarkan id produk dan SKU di Magento 2 menggunakan manajer objek.
sumber
sumber