Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Data Fields
QuoteValidator Class Reference

Public Member Functions

 __construct (AllowedCountries $allowedCountryReader=null, OrderAmountValidationMessage $minimumAmountMessage=null, QuoteValidationRuleInterface $quoteValidationRule=null)
 
 validateQuoteAmount (QuoteEntity $quote, $amount)
 
 validateBeforeSubmit (QuoteEntity $quote)
 

Data Fields

const MAXIMUM_AVAILABLE_NUMBER = 99999999
 

Detailed Description

Class to validate the quote

@api

Since
100.0.2

Definition at line 23 of file QuoteValidator.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( AllowedCountries  $allowedCountryReader = null,
OrderAmountValidationMessage  $minimumAmountMessage = null,
QuoteValidationRuleInterface  $quoteValidationRule = null 
)

QuoteValidator constructor.

Parameters
AllowedCountries | null$allowedCountryReader
OrderAmountValidationMessage | null$minimumAmountMessage
QuoteValidationRuleInterface | null$quoteValidationRule

Definition at line 52 of file QuoteValidator.php.

56  {
57  $this->allowedCountryReader = $allowedCountryReader ?: ObjectManager::getInstance()
58  ->get(AllowedCountries::class);
59  $this->minimumAmountMessage = $minimumAmountMessage ?: ObjectManager::getInstance()
60  ->get(OrderAmountValidationMessage::class);
61  $this->quoteValidationRule = $quoteValidationRule ?: ObjectManager::getInstance()
62  ->get(QuoteValidationRuleInterface::class);
63  }

Member Function Documentation

◆ validateBeforeSubmit()

validateBeforeSubmit ( QuoteEntity  $quote)

Validates quote before submit.

Parameters
Quote$quote
Returns
$this
Exceptions
LocalizedException

Definition at line 89 of file QuoteValidator.php.

90  {
91  if ($quote->getHasError()) {
92  $errors = $this->getQuoteErrors($quote);
93  throw new LocalizedException(__($errors ?: 'Something went wrong. Please try to place the order again.'));
94  }
95 
96  foreach ($this->quoteValidationRule->validate($quote) as $validationResult) {
97  if ($validationResult->isValid()) {
98  continue;
99  }
100 
101  $messages = $validationResult->getErrors();
102  $defaultMessage = array_shift($messages);
103  if ($defaultMessage && !empty($messages)) {
104  $defaultMessage .= ' %1';
105  }
106  if ($defaultMessage) {
107  throw new LocalizedException(__($defaultMessage, implode(' ', $messages)));
108  }
109  }
110 
111  return $this;
112  }
$quote
__()
Definition: __.php:13
$errors
Definition: overview.phtml:9

◆ validateQuoteAmount()

validateQuoteAmount ( QuoteEntity  $quote,
  $amount 
)

Validate quote amount

Parameters
QuoteEntity$quote
float$amount
Returns
$this

Definition at line 72 of file QuoteValidator.php.

73  {
74  if (!$quote->getHasError() && $amount >= self::MAXIMUM_AVAILABLE_NUMBER) {
75  $quote->setHasError(true);
76  $quote->addMessage(__('This item price or quantity is not valid for checkout.'));
77  }
78 
79  return $this;
80  }
$quote
__()
Definition: __.php:13
$amount
Definition: order.php:14

Field Documentation

◆ MAXIMUM_AVAILABLE_NUMBER

const MAXIMUM_AVAILABLE_NUMBER = 99999999

Maximum available number

Definition at line 28 of file QuoteValidator.php.


The documentation for this class was generated from the following file: