Saya mencoba memperbarui item kutipan di magento2. Tetapi setiap kali saya menyimpan item itu membuat item baru dengan id kutipan yang sama daripada memperbaruinya. Ini kode saya
public function __construct(
\Magento\Quote\Model\QuoteRepository $quoteRepo
){
$this->_quoteRepo = $quoteRepo;
}
public function updateItem(){
$quote = $this->_quoteRepo->get('id here');
foreach($quote->getAllVisibleItems() as $itemq){
$itemq->setQty(5);
$itemq->setPrice(20);
$itemq->save();
}
}
Tapi setiap kali menyimpan item .. item baru dihasilkan. Tidak tahu kenapa. Juga I couldn't find any class which explicitly load qoute item in magento2
. Bantuan akan dihargai.
Dalam pertanyaan ini /magento/139298/how-to-save-quote-items-in-magento-2
mereka mengatur seluruh produk ... tidak mencoba memperbaruinya. Ketika Anda menetapkan suatu produk, item penawaran baru pasti akan menghasilkan. Tetapi mengapa melakukan hal yang sama dalam hal pembaruan.
Jawaban:
Saya tidak yakin tentang solusi saya di bawah ini:
sumber
Fungsionalitas yang Anda tanyakan sudah dilakukan
Magento\Checkout\Controller\Cart\UpdatePost
yang dijalankan ketika kami memperbarui keranjang di halaman keranjang magento. Ini menjalankanupdateItems()
fungsiMagento\Checkout\Model\Cart
untuk memperbarui item dalamquote_item
tabel. Dibutuhkan parameter dalam bentuk array$data ['item id of product']['attribute you want to update']
.Jadi, Anda dapat memanggil
updateItems()
objek model keranjang dan meneruskan data sesuai untuk memperbarui item. Juga jika Anda tidak mendapatkan id item, Anda bisa mendapatkannya seperti$this->cart->getQuote()->getAllItems()
dan kemudian memanggilgetItemId()
setiap item.sumber