quoteIdToMaskedQuoteId = $quoteIdToMaskedQuoteId; } /** * Extract data from cart * * @param Quote $cart * @return array * @throws NoSuchEntityException */ public function execute(Quote $cart): array { $items = []; /** * @var QuoteItem $cartItem */ foreach ($cart->getAllItems() as $cartItem) { $productData = $cartItem->getProduct()->getData(); $productData['model'] = $cartItem->getProduct(); $items[] = [ 'id' => $cartItem->getItemId(), 'qty' => $cartItem->getQty(), 'product' => $productData, 'model' => $cartItem, ]; } $appliedCoupon = $cart->getCouponCode(); return [ 'cart_id' => $this->quoteIdToMaskedQuoteId->execute((int)$cart->getId()), 'items' => $items, 'applied_coupon' => $appliedCoupon ? ['code' => $appliedCoupon] : null ]; } }