/**
  * @param OrderInterface $cart
  * @param OrderItemInterface $cartItem
  *
  * @return int
  */
 private function getExistingCartItemQuantityFromCart(OrderInterface $cart, OrderItemInterface $cartItem)
 {
     foreach ($cart->getItems() as $existingCartItem) {
         if ($existingCartItem->equals($cartItem)) {
             return $existingCartItem->getQuantity();
         }
     }
     return 0;
 }
Ejemplo n.º 2
0
 /**
  * @param OrderInterface $order
  * @param OrderItemInterface $item
  */
 private function resolveOrderItem(OrderInterface $order, OrderItemInterface $item)
 {
     foreach ($order->getItems() as $existingItem) {
         if ($item->equals($existingItem)) {
             $this->orderItemQuantityModifier->modify($existingItem, $existingItem->getQuantity() + $item->getQuantity());
             return;
         }
     }
     $order->addItem($item);
 }
Ejemplo n.º 3
0
 function it_changes_quantity_of_an_item_if_same_order_item_already_exists(OrderInterface $order, OrderItemInterface $existingItem, OrderItemInterface $newItem, OrderItemQuantityModifierInterface $orderItemQuantityModifier, OrderProcessorInterface $orderProcessor)
 {
     $order->getItems()->willReturn([$existingItem]);
     $newItem->equals($existingItem)->willReturn(true);
     $existingItem->getQuantity()->willReturn(2);
     $newItem->getQuantity()->willReturn(3);
     $order->addItem($existingItem)->shouldNotBeCalled();
     $orderItemQuantityModifier->modify($existingItem, 5)->shouldBeCalled();
     $orderProcessor->process($order)->shouldBeCalled();
     $this->addToOrder($order, $newItem);
 }
Ejemplo n.º 4
0
 /**
  * @param OrderInterface $order
  */
 private function clearTaxes(OrderInterface $order)
 {
     $order->removeAdjustments(AdjustmentInterface::TAX_ADJUSTMENT);
     foreach ($order->getItems() as $item) {
         $item->removeAdjustmentsRecursively(AdjustmentInterface::TAX_ADJUSTMENT);
     }
 }