ম্যাজেন্টো 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
একই না. আমি আমার প্রশ্ন সম্পাদনা করেছি। @ অঙ্কিতশাহ দয়া করে পরীক্ষা করুন।
কিংশুক দেব

ম্যাজেন্টো ২.২+ এর জন্য এটি উল্লেখ করুন - magento.stackexchange.com/a/182152/4492
রোহন পাতিল

উত্তর:


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
কীভাবে অতিরিক্ত বিকল্পগুলি আপডেট করবেন
শিবকুমার

হাই @ আমিট, আইটেমটির জন্য ট্যাক্সঅ্যামাউন্ট কীভাবে আপডেট করবেন ?, আমরা স্বতন্ত্র উদ্ধৃতি আইটেমের জন্য কাস্টম ট্যাক্সের পরিমাণ নির্ধারণ করতে পারি?
জাফর পিনজার

2

আপনি যে কার্যকারিতা সম্পর্কে জিজ্ঞাসা করছেন তা ইতিমধ্যে সম্পন্ন হয়েছে Magento\Checkout\Controller\Cart\UpdatePost যা আমরা ম্যাজেন্টোর কার্ট পৃষ্ঠায় কার্ট আপডেট করার সময় কার্যকর করা হয়। এটি টেবিলে আইটেমগুলি আপডেট করার updateItems()ফাংশনটি চালায় । এটি অ্যারের আকারে প্যারামিটার নেয় । Magento\Checkout\Model\Cartquote_item$data ['item id of product']['attribute you want to update']

সুতরাং, আপনি updateItems()কার্টের মডেল অবজেক্টে কল করতে পারেন এবং আইটেমগুলি আপডেট করতে সেই অনুযায়ী ডেটা পাস করতে পারেন A এছাড়াও আপনি যদি আইটেম আইডি না পেয়ে থাকেন তবে আপনি এটি পছন্দ মতো পেতে পারেন $this->cart->getQuote()->getAllItems()এবং তারপরে getItemId()প্রতিটি আইটেমে কল করতে পারেন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.