Is there a way to load a quote_item
directly using current Magento coding standards?
Right now I'm loading the cart and then finding the quote item like so:
$cart_id = $this->getRequest()->getParam('cart');
$item_id = $this->getRequest()->getParam('item');
/** $this->cartItemRepo = Magento\Quote\Api\CartItemRepositoryInterface **/
$items = $this->cartItemRepo->getList($cart_id);
$quote_item = null;
foreach($items as $item){
if ( $item->getId() && $item->getId() === $item_id ){
$quote_item = $item;
break;
}
}
The above works but I want to clean it up and simplify. I would also like to load using just the $item_id
, with no $cart_id
.
Best Answer
Ok, here's 2 different ways to do this.
Grab it from the collection.
The other option is a class which caches items by cartId/itemId so that if you need to continuously repeat this function you won't make any unnecessary queries to the database for items within the same cart.