Magento 2: Teklif öğesini güncelleme


10

Magento2 alıntı öğe güncellemeye çalışıyorum. Ama her zaman ben öğeyi kaydetmek onun yerine güncelleme yerine aynı teklif kimliği ile yeni bir öğe oluşturma. İşte kodum

    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();
    }
 }

Ama her ürün kaydettiğinde .. yeni bir ürün üretiliyor. Neden bilmiyorum. Ayrıca I couldn't find any class which explicitly load qoute item in magento2. Yardım takdir edilecektir.

Bu soruda /magento/139298/how-to-save-quote-items-in-magento-2tüm ürünü kuruyorlar ... güncellemeye çalışmıyorlar. Bir ürün ayarladığınızda yeni bir teklif öğesi mutlaka oluşturulur. Ama neden güncelleme durumunda aynı şeyi yapıyor.



1
Aynı değil. Sorumu düzenledim. @AnkitShah lütfen kontrol edin.
Kingshuk Deb

Magento 2.2+ için bunu belirtin
Rohan Patil

Nasıl herhangi bir fikir API istirahat API birden fazla teklif Öğeleri programatik olarak güncellemek için?
Kirti Nariya

Yanıtlar:


16

Aşağıdaki çözümümden emin değilim:

  • Alıntı öğesi nesnesini öğe kimliğine göre yüklemeniz gerekebilir
  • Eğer set fiyat istemek gibi kullanarak sonra setPrice () Eğer o sepeti öğe için arzu fiyatı ayarlayamıyor
$item = $quote->getItemById($item->getId());
if (!$item) {
  continue;
}
$item->setQty((double) $qty);
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
$item->getProduct()->setIsSuperMode(true);
$item->save(); 

1
ek seçenekler nasıl güncellenir
sivakumar

merhaba @Amit, öğe için taxAmount nasıl güncellenir ?, bireysel teklif öğesi için özel vergi tutarı ayarlayabilir miyiz?
jafar pinjar

@ amit Nasıl güncellenir API herhangi bir fikir birden çok teklif Öğeleri programatik olarak adet güncellemek için? magento.stackexchange.com/questions/313301/…
Kirti Nariya

2

Sorduğunuz işlevsellik zaten Magento\Checkout\Controller\Cart\UpdatePost magento'nun sepeti sayfasındaki sepeti güncellediğimizde yürütülen işlemdir. Tablodaki öğeleri güncelleme updateItems()işlevini çalıştırır . Parametreyi dizi şeklinde alır . Magento\Checkout\Model\Cartquote_item$data ['item id of product']['attribute you want to update']

Böylece, updateItems()sepeti model nesnesini arayabilir ve öğeleri güncellemek için verileri buna göre aktarabilirsiniz.Ayrıca öğe kimliği almıyorsanız, onu beğenebilir $this->cart->getQuote()->getAllItems()ve getItemId()her öğeyi arayabilirsiniz .


Nasıl herhangi bir fikir API istirahat API birden fazla teklif Öğeleri programatik olarak güncellemek için? magento.stackexchange.com/questions/313301/…
Kirti Nariya
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.