em->getRepository(OrderShopInterface::class)->findCartCurrent(['user' => $user]); if ($newOrderShop === null) { $newOrderShop = $this->createOrderShop(array( 'user' => $user, 'merchant' => $this->merchantUtils->getMerchantUser() )); } return $newOrderShop; } public function getCartCurrent($createIfNotExist = false) { $paramsSearchOrderShop = []; $user = $this->security->getUser(); $visitor = $this->userUtils->getVisitorCurrent(); $orderShop = null; $orderShopUser = null; $orderShopVisitor = null; if ($user) { $orderShopUser = $this->orderShopRepo->findCartCurrent([ 'user' => $user ]); } if ($visitor) { $orderShopVisitor = $this->orderShopRepo->findCartCurrent([ 'visitor' => $visitor ]); } if ($orderShopUser || $orderShopVisitor) { // merge if ($orderShopUser && $orderShopVisitor && $orderShopUser != $orderShopVisitor && $orderShopVisitor->getOrderProducts() && count($orderShopVisitor->getOrderProducts()) && $orderShopUser->getOrderStatus()->getAlias() == OrderStatus::ALIAS_CART) { $orderShop = $this->mergeOrderShops($orderShopUser, $orderShopVisitor); $this->utils->addFlash('success', "Votre panier visiteur vient d'ĂȘtre fusionnĂ© avec votre panier client."); } else { $orderShop = ($orderShopUser) ? $orderShopUser : $orderShopVisitor; } // set user if ($orderShop && $user && !$orderShop->getUser()) { $orderShop->setUser($user); $orderShop->setVisitor(null) ; $this->em->persist($orderShop); $this->em->flush(); } } if($createIfNotExist && !$orderShop) { $orderShop = $this->createOrderShop([ 'user' => $user, 'visitor' => $visitor, 'merchant' => $this->merchantUtils->getMerchantCurrent() ]); } return $orderShop; } public function isCartAllowToBeOrder($order){ return true; } }