context->cart->id; if (!$idCart) { $this->ajaxRender(json_encode([ 'success' => false, 'message' => $this->module->l('No cart found.', 'ajax') ])); return; } if (!preg_match('/^[a-zA-Z0-9_\- ]+$/', $orderReference)) { $this->ajaxRender(json_encode([ 'success' => false, 'message' => $this->module->l('Please enter a valid order reference. Characters allowed: a-z, 0-9, -, _ and space', 'ajax') ])); return; } try { /** @var \Doctrine\ORM\EntityManagerInterface $entityManager */ $entityManager = $this->get('doctrine.orm.default_entity_manager'); /** @var OrderReferenceRepository $repository */ $repository = $entityManager->getRepository(OrderReference::class); $orderRef = $repository->findByCartId($idCart); if (!$orderRef) { $orderRef = new OrderReference(); $orderRef->setIdCart($idCart); } $orderRef->setOrderReference($orderReference); $entityManager->persist($orderRef); $entityManager->flush(); $this->ajaxRender(json_encode([ 'success' => true, 'message' => $this->module->l('Order reference received!', 'ajax') ])); } catch (Exception $e) { $this->ajaxRender(json_encode([ 'success' => false, 'message' => $this->module->l('Could not save order reference.', 'ajax') ])); } } }