protected function getItemCount(Cart $cart) { $count = 0; if ($cart->getLineItems()) { foreach ($cart->getLineItems() as $lineItem) { $count += $lineItem->getQuantity(); } } return $count; }
protected function getCartLineItems(Cart $cart) { $cartItems = new ViewData(); $cartItems->list = new ViewDataCollection(); $lineItems = $cart->getLineItems(); if (!is_null($lineItems)) { foreach ($lineItems as $lineItem) { $variant = $lineItem->getVariant(); $cartLineItem = new ViewData(); $cartLineItem->productId = $lineItem->getProductId(); $cartLineItem->variantId = $variant->getId(); $cartLineItem->lineItemId = $lineItem->getId(); $cartLineItem->quantity = $lineItem->getQuantity(); $lineItemVariant = new ViewData(); $lineItemVariant->url = (string) $this->generateUrl('pdp-master', ['slug' => (string) $lineItem->getProductSlug()]); $lineItemVariant->name = (string) $lineItem->getName(); $lineItemVariant->image = (string) $variant->getImages()->current()->getUrl(); $price = $lineItem->getPrice(); if (!is_null($price->getDiscounted())) { $lineItemVariant->price = (string) $price->getDiscounted()->getValue(); $lineItemVariant->priceOld = (string) $price->getValue(); } else { $lineItemVariant->price = (string) $price->getValue(); } $cartLineItem->variant = $lineItemVariant; $cartLineItem->sku = $variant->getSku(); $cartLineItem->totalPrice = $lineItem->getTotalPrice(); $cartLineItem->attributes = new ViewDataCollection(); $cartAttributes = $this->config['sunrise.cart.attributes']; foreach ($cartAttributes as $attributeName) { $attribute = $variant->getAttributes()->getByName($attributeName); if ($attribute) { $lineItemAttribute = new ViewData(); $lineItemAttribute->label = $attributeName; $lineItemAttribute->key = $attributeName; $lineItemAttribute->value = (string) $attribute->getValue(); $cartLineItem->attributes->add($lineItemAttribute); } } $cartItems->list->add($cartLineItem); } } return $cartItems; }