Ejemplo n.º 1
0
 /**
  * @param UuidInterface $cartId
  * @param string $ip4
  * @param UuidInterface|null $userId
  * @param string|null $sessionId
  * @return Cart
  * @throws InvalidArgumentException
  */
 public function create(UuidInterface $cartId, $ip4, UuidInterface $userId = null, $sessionId = null)
 {
     if (empty($userId) && empty($sessionId)) {
         throw new InvalidArgumentException('User or session id required.');
     }
     $cart = new Cart($cartId);
     $cart->setIp4($ip4);
     $cart->setSessionId($sessionId);
     $cart->setUpdated();
     $this->addUserToCartIfExists($cart, $userId);
     $this->cartRepository->create($cart);
     return $cart;
 }