Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PlaceOrder.php
Go to the documentation of this file.
1 <?php
7 
15 use Psr\Log\LoggerInterface;
16 
21 {
25  private $orderPlace;
26 
32  private $logger;
33 
43  public function __construct(
44  Context $context,
47  Helper\OrderPlace $orderPlace,
48  LoggerInterface $logger = null
49  ) {
50  parent::__construct($context, $config, $checkoutSession);
51  $this->orderPlace = $orderPlace;
52  $this->logger = $logger ?: ObjectManager::getInstance()->get(LoggerInterface::class);
53  }
54 
59  public function execute()
60  {
61  $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
62  $agreement = array_keys($this->getRequest()->getPostValue('agreement', []));
63  $quote = $this->checkoutSession->getQuote();
64 
65  try {
66  $this->validateQuote($quote);
67 
68  $this->orderPlace->execute($quote, $agreement);
69 
71  return $resultRedirect->setPath('checkout/onepage/success', ['_secure' => true]);
72  } catch (\Exception $e) {
73  $this->logger->critical($e);
74  $this->messageManager->addExceptionMessage($e, $e->getMessage());
75  }
76 
77  return $resultRedirect->setPath('checkout/cart', ['_secure' => true]);
78  }
79 }
$quote
__construct(Context $context, Config $config, Session $checkoutSession, Helper\OrderPlace $orderPlace, LoggerInterface $logger=null)
Definition: PlaceOrder.php:43