마 젠토 2 : 견적 항목 업데이트


10

magento2에서 견적 항목을 업데이트하려고합니다. 그러나 매번 항목을 저장할 때마다 업데이트하지 않고 동일한 견적 ID로 새 항목을 만듭니다. 여기 내 코드가 있습니다

    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 확인하십시오.
Kingshuk Deb 2012

- 젠토이 참조 2.2를 들어 magento.stackexchange.com/a/182152/4492
로한 파틸

답변:


16

아래 솔루션에 대해 잘 모르겠습니다.

  • 품목 ID별로 품목 품목 견적 을로드해야 할 수도 있습니다.
  • setPrice () 를 사용하여 가격설정 하려면 해당 장바구니 항목에 대해 원하는 가격을 설정할 수 없습니다
$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
추가 옵션을 업데이트하는 방법
sivakumar

안녕하세요 @Amit, 항목에 대한 taxAmount를 업데이트하는 방법은 무엇입니까? 개별 견적 항목에 대해 사용자 정의 세금 금액을 설정할 수 있습니까?
jafar pinjar

2

귀하가 요청하는 기능은 이미 Magento\Checkout\Controller\Cart\UpdatePost magento의 장바구니 페이지에서 장바구니를 업데이트 할 때 실행되는 기능입니다. 테이블의 항목을 업데이트하는 updateItems()기능을 실행 합니다. array 형식의 매개 변수를 사용합니다 . Magento\Checkout\Model\Cartquote_item$data ['item id of product']['attribute you want to update']

따라서 updateItems()장바구니 모델 객체를 호출 하고 그에 따라 데이터를 업데이트하여 항목을 업데이트 할 수 있습니다. 또한 항목 ID를 얻지 못하면 각 항목 $this->cart->getQuote()->getAllItems()을 가져 와서 호출 할 수 있습니다 getItemId().

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.