Magento 2: अद्यतन उद्धरण आइटम


10

मैं Magento2 में उद्धरण आइटम को अपडेट करने की कोशिश कर रहा हूं। लेकिन हर बार मैं आइटम को सहेजने के बजाय उसी उद्धरण आईडी के साथ एक नया आइटम बनाने के लिए सहेज रहा हूं। यहाँ मेरा कोड है

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

लेकिन हर बार एक आइटम को बचाने के लिए .. एक नया आइटम उत्पन्न हो रहा है। पता नहीं क्यों। इसके अलावा I couldn't find any class which explicitly load qoute item in magento2। मदद की सराहना की जाएगी।

इस सवाल में /magento/139298/how-to-save-quote-items-in-magento-2वे पूरे उत्पाद को सेट कर रहे हैं ... इसे अपडेट करने का प्रयास नहीं कर रहे हैं। जब आप उत्पाद सेट करते हैं तो एक नया उद्धरण आइटम निश्चित रूप से उत्पन्न होगा। लेकिन अपडेशन के मामले में ऐसा क्यों किया जा रहा है।



1
एक जैसा नहीं। मैंने अपना प्रश्न संपादित किया है। @AnkitShah कृपया जाँच करें।
किंग्सुक देब


किसी भी विचार को आराम करने के लिए एक से अधिक उद्धरण आइटम क्यूटी प्रोग्रामेटिक रूप से अपडेट कैसे करें?
कीर्ति नारिया

जवाबों:


16

मैं अपने नीचे दिए गए समाधान के बारे में निश्चित नहीं हूं:

  • हो सकता है कि आपको आइटम आईडी द्वारा उद्धरण आइटम ऑब्जेक्ट लोड करने की आवश्यकता हो
  • जैसा कि आप सेट की कीमत चाहते हैं, तो सेटप्राइस () का उपयोग करके आप उस कार्ट आइटम के लिए अपनी इच्छा का मूल्य निर्धारित नहीं कर सकते हैं
$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
अतिरिक्त विकल्प कैसे अपडेट करें
शिवकुमार

hi @Amit, आइटम के लिए कर अद्यतन कैसे करें ?, क्या हम व्यक्तिगत बोली मद के लिए कस्टम कर राशि निर्धारित कर सकते हैं?
जफ़र पिंजर

@amit किसी भी विचार को बाकी एपीआई में कई आइटम क्यूटी प्रोग्रामेटिक रूप से कैसे अपडेट करें? magento.stackexchange.com/questions/313301/…
कीर्ति

2

जिस कार्यक्षमता के बारे में आप पूछ रहे हैं वह पहले ही हो चुकी है, Magento\Checkout\Controller\Cart\UpdatePost जब हम मैग्नेटो के कार्ट पेज पर कार्ट अपडेट करते हैं तो उसे निष्पादित किया जाता है । यह तालिका में आइटम अपडेट करने का updateItems()कार्य करता है । यह ऐरे के रूप में पैरामीटर लेता है । Magento\Checkout\Model\Cartquote_item$data ['item id of product']['attribute you want to update']

तो, आप updateItems()कार्ट मॉडल ऑब्जेक्ट पर कॉल कर सकते हैं और आइटम अपडेट करने के अनुसार डेटा पास कर सकते हैं। इसके अलावा अगर आपको आइटम आईडी नहीं मिल रहा है तो आप इसे पसंद कर सकते हैं $this->cart->getQuote()->getAllItems()और फिर getItemId()प्रत्येक आइटम पर कॉल कर सकते हैं ।


किसी भी विचार को आराम करने के लिए एक से अधिक उद्धरण आइटम क्यूटी प्रोग्रामेटिक रूप से अपडेट कैसे करें? magento.stackexchange.com/questions/313301/…
कीर्ति
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.