| Current Path : /home/rtorresani/www/vendor/magento/module-instant-purchase/Model/QuoteManagement/ |
| Current File : //home/rtorresani/www/vendor/magento/module-instant-purchase/Model/QuoteManagement/Purchase.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\InstantPurchase\Model\QuoteManagement;
use Magento\Framework\Exception\LocalizedException;
use Magento\Quote\Api\CartManagementInterface;
use Magento\Quote\Api\CartRepositoryInterface;
use Magento\Quote\Model\Quote;
/**
* Purchase products from quote.
*
* @api May be used for pluginization.
* @since 100.2.0
*/
class Purchase
{
/**
* @var CartRepositoryInterface
*/
private $quoteRepository;
/**
* @var CartManagementInterface
*/
private $quoteManagement;
/**
* Purchase constructor.
* @param CartRepositoryInterface $quoteRepository
* @param CartManagementInterface $quoteManagement
*/
public function __construct(
CartRepositoryInterface $quoteRepository,
CartManagementInterface $quoteManagement
) {
$this->quoteRepository = $quoteRepository;
$this->quoteManagement = $quoteManagement;
}
/**
* Summarize quote and place order.
*
* @param Quote $quote
* @return int Order id
* @throws LocalizedException if order can not be placed for a quote.
* @since 100.2.0
*/
public function purchase(Quote $quote): int
{
$quote->collectTotals();
$this->quoteRepository->save($quote);
$orderId = $this->quoteManagement->placeOrder($quote->getId());
return $orderId;
}
}