Saya ingin menggunakan fungsi seperti getName()
, getPrice()
, dll produk untuk mengambil informasi produk di Magento 2.
Adakah yang bisa menunjukkan kepada saya bagaimana saya bisa mencapai itu?
Saya ingin menggunakan fungsi seperti getName()
, getPrice()
, dll produk untuk mengambil informasi produk di Magento 2.
Adakah yang bisa menunjukkan kepada saya bagaimana saya bisa mencapai itu?
Jawaban:
Dalam Magento 2 diusulkan untuk menggunakan lapisan layanan untuk ini. Coba gunakan \Magento\Catalog\Model\ProductRepository::getById
metode untuk mendapatkan produk melalui id
Magento 2 merekomendasikan untuk digunakan Factories
untuk memuat semua Model. Inilah cara Anda harus melakukannya:
Di atas kelas Anda tambahkan baris ini:
use Magento\Catalog\Model\ProductFactory;
Sekarang buat properti kelas:
protected $productFactory;
Di konstruktor Anda, tambahkan ketergantungan:
public function __construct(
ProductFactory $productFactory
) {
$this->productFactory = $productFactory;
}
Sekarang muat produk seperti di bawah ini:
$_product = $this->productFactory->create()->load(<product_id>);
Di atas jawaban orang lain, saya sangat menyarankan menggunakan metode kontrak layanan berikut:
\Magento\Catalog\Api\ProductRepositoryInterface::getById
: untuk memuat produk dengan id\Magento\Catalog\Api\ProductRepositoryInterface::get
: untuk memuat produk dengan skuCara Magento yang lebih banyak untuk mencapai hal ini, meskipun sulit untuk diketahui karena kebanyakan tempat di seluruh kode inti melakukannya secara berbeda adalah dengan menggunakan penyimpanan produk.
use Magento\Catalog\Model\ProductRepository;
protected $productRepository;
public function __construct(
ProductRepository $productRepository
) {
$this->productRepository = $productRepository;
}
public function getMyProduct($productId)
{
return $this->productRepository->getById($productId);
}
untuk ini Anda harus menggunakan di bawah ini
menggunakan \Magento\Catalog\Model\Resource\Product\CollectionFactory
$prod_id = "Your product id goes here";
$om = \Magento\Framework\App\ObjectManager::getInstance();
$pdata = $om->create('Magento\Catalog\Model\Product')->load($prod_id);
Saya telah mengambil detail produk menggunakan fungsi di halaman tampilan produk seperti di bawah ini.
Di sini Sm / Sawyer adalah temanku.
$_config = $this->helper('Sm\Sawyer\Helper\Data');
$productId = $this->getProduct()->getId();
$name = $this->getProduct()->getName();
$stock1 = $this->getProduct()->getQty();
$price = $this->getProduct()->getPrice();