Beispiel #1
0
 /**
  * Retrieve quote model object
  *
  * @return \Magento\Quote\Model\Quote
  */
 public function getQuote()
 {
     if ($this->_quote === null) {
         $this->_quote = $this->quoteFactory->create();
         if ($this->getStoreId()) {
             if (!$this->getQuoteId()) {
                 $this->_quote->setCustomerGroupId($this->groupManagement->getDefaultGroup()->getId());
                 $this->_quote->setIsActive(false);
                 $this->_quote->setStoreId($this->getStoreId());
                 $this->quoteRepository->save($this->_quote);
                 $this->setQuoteId($this->_quote->getId());
                 $this->_quote = $this->quoteRepository->get($this->getQuoteId(), [$this->getStoreId()]);
             } else {
                 $this->_quote = $this->quoteRepository->get($this->getQuoteId(), [$this->getStoreId()]);
                 $this->_quote->setStoreId($this->getStoreId());
             }
             if ($this->getCustomerId() && $this->getCustomerId() != $this->_quote->getCustomerId()) {
                 $customer = $this->customerRepository->getById($this->getCustomerId());
                 $this->_quote->assignCustomer($customer);
                 $this->quoteRepository->save($this->_quote);
             }
         }
         $this->_quote->setIgnoreOldQty(true);
         $this->_quote->setIsSuperMode(true);
     }
     return $this->_quote;
 }
Beispiel #2
0
 public function buildQuote()
 {
     try {
         // do not change invoke order
         // ---------------------------------------
         $this->initializeQuote();
         $this->initializeCustomer();
         $this->initializeAddresses();
         $this->configureStore();
         $this->configureTaxCalculation();
         $this->initializeCurrency();
         $this->initializeShippingMethodData();
         $this->initializeQuoteItems();
         $this->initializePaymentMethodData();
         $this->quote->collectTotals()->save();
         // todo investigate
         //            $this->prepareOrderNumber();
         // ---------------------------------------
     } catch (\Exception $e) {
         $this->quote->setIsActive(false)->save();
         throw $e;
     }
 }
Beispiel #3
0
 /**
  * Delete quote item
  *
  * @param Quote $quote
  * @param array $orderData
  * @return \Magento\Framework\Model\AbstractExtensibleModel|\Magento\Sales\Api\Data\OrderInterface|object|void
  * @throws \Exception
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function submit(QuoteEntity $quote, $orderData = [])
 {
     if (!$quote->getAllVisibleItems()) {
         $quote->setIsActive(false);
         return;
     }
     return $this->submitQuote($quote, $orderData);
 }