Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CheckoutValidator.php
Go to the documentation of this file.
1 <?php
8 
10 {
14  private $_checkoutSession;
15 
19  private $_paymentData;
20 
24  private $_shortcutValidator;
25 
31  public function __construct(
32  \Magento\Checkout\Model\Session $checkoutSession,
33  Validator $shortcutValidator,
34  \Magento\Payment\Helper\Data $paymentData
35  ) {
36  $this->_checkoutSession = $checkoutSession;
37  $this->_paymentData = $paymentData;
38  $this->_shortcutValidator = $shortcutValidator;
39  }
40 
48  public function validate($code, $isInCatalog)
49  {
50  return $this->_shortcutValidator->isContextAvailable($code, $isInCatalog)
51  && $this->_shortcutValidator->isPriceOrSetAvailable($isInCatalog)
52  && $this->isMethodQuoteAvailable($code, $isInCatalog)
53  && $this->isQuoteSummaryValid($isInCatalog);
54  }
55 
63  public function isMethodQuoteAvailable($paymentCode, $isInCatalog)
64  {
65  $quote = $isInCatalog ? null : $this->_checkoutSession->getQuote();
66  // check payment method availability
68  $methodInstance = $this->_paymentData->getMethodInstance($paymentCode);
69  if (!$methodInstance->isAvailable($quote)) {
70  return false;
71  }
72  return true;
73  }
74 
81  public function isQuoteSummaryValid($isInCatalog)
82  {
83  $quote = $isInCatalog ? null : $this->_checkoutSession->getQuote();
84  // validate minimum quote amount and validate quote for zero grandtotal
85  if (null !== $quote && (!$quote->validateMinimumAmount() || !$quote->getGrandTotal())) {
86  return false;
87  }
88  return true;
89  }
90 }
$quote
__construct(\Magento\Checkout\Model\Session $checkoutSession, Validator $shortcutValidator, \Magento\Payment\Helper\Data $paymentData)
$code
Definition: info.phtml:12