public function testCreate() { $this->quoteFactoryMock->expects($this->once())->method('create')->with([1, 2, 3])->willReturn($this->quoteMock); $this->storeManagerMock->expects($this->never())->method('getStore'); $this->storeMock->expects($this->never())->method('getId'); $this->quoteMock->expects($this->never())->method('setSharedStoreIds'); $this->quoteMock->expects($this->never())->method('load'); $this->quoteMock->expects($this->never())->method('getId'); $this->assertEquals($this->quoteMock, $this->model->create([1, 2, 3])); }
/** * Load data for customer quote and merge with current quote * * @return $this */ public function loadCustomerQuote() { if (!$this->_customerSession->getCustomerId()) { return $this; } $this->_eventManager->dispatch('load_customer_quote_before', ['checkout_session' => $this]); try { $customerQuote = $this->quoteRepository->getForCustomer($this->_customerSession->getCustomerId()); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { $customerQuote = $this->quoteRepository->create(); } $customerQuote->setStoreId($this->_storeManager->getStore()->getId()); if ($customerQuote->getId() && $this->getQuoteId() != $customerQuote->getId()) { if ($this->getQuoteId()) { $this->quoteRepository->save($customerQuote->merge($this->getQuote())->collectTotals()); } $this->setQuoteId($customerQuote->getId()); if ($this->_quote) { $this->quoteRepository->delete($this->_quote); } $this->_quote = $customerQuote; } else { $this->getQuote()->getBillingAddress(); $this->getQuote()->getShippingAddress(); $this->getQuote()->setCustomer($this->_customerSession->getCustomerDataObject())->setTotalsCollectedFlag(false)->collectTotals(); $this->quoteRepository->save($this->getQuote()); } return $this; }
/** * Loads customer, quote and quote item by request params * * @return $this * @throws \Magento\Framework\Exception\LocalizedException */ protected function _initData() { $this->_customerId = (int) $this->getRequest()->getParam('customer_id'); if (!$this->_customerId) { throw new \Magento\Framework\Exception\LocalizedException(__('No customer ID defined.')); } $quoteItemId = (int) $this->getRequest()->getParam('id'); $websiteId = (int) $this->getRequest()->getParam('website_id'); try { $this->_quote = $this->quoteRepository->getForCustomer($this->_customerId); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { $this->_quote = $this->quoteRepository->create(); } $this->_quote->setWebsite($this->_objectManager->get('Magento\\Store\\Model\\StoreManagerInterface')->getWebsite($websiteId)); $this->_quoteItem = $this->_quote->getItemById($quoteItemId); if (!$this->_quoteItem) { throw new LocalizedException(__('Please correct the quote items and try again.')); } return $this; }
/** * Get the quote of the cart * * @return \Magento\Quote\Model\Quote */ protected function getQuote() { if (null === $this->quote) { $customerId = $this->getCustomerId(); $storeIds = $this->_storeManager->getWebsite($this->getWebsiteId())->getStoreIds(); try { $this->quote = $this->quoteRepository->getForCustomer($customerId, $storeIds); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { $this->quote = $this->quoteRepository->create()->setSharedStoreIds($storeIds); } } return $this->quote; }
/** * Creates a cart for the currently logged-in customer. * * @param int $customerId * @param int $storeId * @return \Magento\Quote\Model\Quote Cart object. * @throws CouldNotSaveException The cart could not be created. */ protected function createCustomerCart($customerId, $storeId) { $customer = $this->customerRepository->getById($customerId); try { $quote = $this->quoteRepository->getActiveForCustomer($customerId); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->quoteRepository->create(); $quote->setStoreId($storeId); $quote->setCustomer($customer); $quote->setCustomerIsGuest(0); } return $quote; }
/** * Get quote * * @return \Magento\Quote\Model\Quote */ protected function getQuote() { if (null == $this->quote) { $storeIds = $this->_storeManager->getWebsite($this->getWebsiteId())->getStoreIds(); $this->quote = $this->quoteRepository->create()->setSharedStoreIds($storeIds); $currentCustomerId = $this->_coreRegistry->registry(RegistryConstants::CURRENT_CUSTOMER_ID); if (!empty($currentCustomerId)) { try { $this->quote = $this->quoteRepository->getForCustomer($currentCustomerId, $storeIds); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { } } } return $this->quote; }
/** * Creates a cart for the currently logged-in customer. * * @param int $storeId * @return \Magento\Quote\Model\Quote Cart object. * @throws CouldNotSaveException The cart could not be created. */ protected function createCustomerCart($storeId) { $customer = $this->customerRepository->getById($this->userContext->getUserId()); try { $this->quoteRepository->getActiveForCustomer($this->userContext->getUserId()); throw new CouldNotSaveException(__('Cannot create quote')); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { } /** @var \Magento\Quote\Model\Quote $quote */ $quote = $this->quoteRepository->create(); $quote->setStoreId($storeId); $quote->setCustomer($customer); $quote->setCustomerIsGuest(0); return $quote; }
/** * Retrieve quote model object * * @return \Magento\Quote\Model\Quote */ public function getQuote() { if ($this->_quote === null) { $this->_quote = $this->quoteRepository->create(); if ($this->getStoreId()) { if (!$this->getQuoteId()) { $this->_quote->setCustomerGroupId($this->groupManagement->getDefaultGroup()->getId())->setIsActive(false)->setStoreId($this->getStoreId()); $this->quoteRepository->save($this->_quote); $this->setQuoteId($this->_quote->getId()); } else { $this->_quote = $this->quoteRepository->get($this->getQuoteId(), [$this->getStoreId()]); $this->_quote->setStoreId($this->getStoreId()); } if ($this->getCustomerId()) { $customer = $this->customerRepository->getById($this->getCustomerId()); $this->_quote->assignCustomer($customer); } } $this->_quote->setIgnoreOldQty(true); $this->_quote->setIsSuperMode(true); } return $this->_quote; }
/** * Retrieve customer cart quote object model * * @return \Magento\Quote\Model\Quote */ public function getCustomerCart() { if (!is_null($this->_cart)) { return $this->_cart; } $this->_cart = $this->quoteRepository->create(); $customerId = (int) $this->getSession()->getCustomerId(); if ($customerId) { try { $this->_cart = $this->quoteRepository->getForCustomer($customerId); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { $this->_cart->setStore($this->getSession()->getStore()); $customerData = $this->customerRepository->getById($customerId); $this->_cart->assignCustomer($customerData); $this->quoteRepository->save($this->_cart); } } return $this->_cart; }