Saya mendapatkan atribut produk dari penawaran. Sepertinya ada nilai yang salah datang. Silakan periksa kode saya di bawah ini.
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cart = $objectManager->get('\Magento\Checkout\Model\Cart');
$itemsCollection = $cart->getQuote()->getItemsCollection();
$itemsVisible = $cart->getQuote()->getAllVisibleItems();
$items = $cart->getQuote()->getAllItems();
$product_object = $objectManager->create('Magento\Catalog\Model\Product');
foreach($itemsVisible as $item){
if($option = $item->getOptionByCode('simple_product')) {
$productId = $option->getProduct()->getId();
$item_s = $product_object->load($productId);
echo $screen_size = $productId."/".$item_s->getScreenFrameSize()."/".$item_s->getFiberglassScreenRollSize()."/".$item_s->getScreenCornerSize()."<br>";
}
}
Silakan periksa gambar di bawah ini untuk pemahaman yang lebih baik. Apakah ada kesalahan dalam koleksi atau loop saya?
Tolong bantu aku!!!
magento2
cart
sales-quote
Sunny Rahevar
sumber
sumber
$objectManager->create('Magento\Catalog\Model\Product');
dalam foreach loop. Periksa jawabankuJawaban:
Karena Anda menggunakan objek yang sama setiap kali di foreach. Anda harus membuat objek baru di foreach loop. Jadi kode akhir Anda terlihat seperti ini:
CATATAN: Jangan gunakan manajer objek secara langsung dalam kode. Gunakan pabrik produk karena pabrik akan membuat objek baru setiap saat.
sumber
Silakan coba sesuatu seperti ini
sumber
Saya kira Anda harus membuat objek produk baru alih-alih menggunakannya kembali di loop foreach Anda. Dengan menggunakan kembali objek produk Anda bisa mendapatkan efek samping seperti itu bahkan jika metode "memuat" menunjukkan, bahwa setiap data akan ditimpa. Periksa penggunaan atribut khusus di
AbstractExtensibleModel
sumber