31 private $quoteRepository;
36 private $quoteCreation;
41 private $quoteFilling;
46 private $shippingConfiguration;
51 private $paymentConfiguration;
76 $this->quoteCreation = $quoteCreation;
77 $this->quoteFilling = $quoteFilling;
78 $this->shippingConfiguration = $shippingConfiguration;
79 $this->paymentConfiguration = $paymentConfiguration;
80 $this->purchase = $purchase;
101 array $productRequest
103 $quote = $this->quoteCreation->createQuote(
109 $quote = $this->quoteFilling->fillQuote(
116 $this->quoteRepository->save(
$quote);
120 $quote = $this->shippingConfiguration->configureShippingMethod(
124 $quote = $this->paymentConfiguration->configurePayment(
128 $orderId = $this->purchase->purchase(
132 }
catch (Throwable $e) {
133 $quote->setIsActive(
false);
134 $this->quoteRepository->save(
$quote);
placeOrder(Store $store, Customer $customer, InstantPurchaseOption $instantPurchaseOption, Product $product, array $productRequest)
__construct(CartRepositoryInterface $quoteRepository, QuoteCreation $quoteCreation, QuoteFilling $quoteFilling, ShippingConfiguration $shippingConfiguration, PaymentConfiguration $paymentConfiguration, Purchase $purchase)