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;
 }