/**
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     $quote = $observer->getEvent()->getQuote();
     /* @var $quote \Magento\Quote\Model\Quote */
     if ($quote->getIsCheckoutCart()) {
         $this->checkoutSession->getQuoteId($quote->getId());
     }
 }
 /**
  * Check and clear session data if persistent session expired
  *
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     if (!$this->_persistentData->canProcess($observer)) {
         return;
     }
     if ($this->_persistentData->isEnabled() && !$this->_persistentSession->isPersistent() && !$this->_customerSession->isLoggedIn() && $this->_checkoutSession->getQuoteId() && !$observer->getControllerAction() instanceof \Magento\Checkout\Controller\Onepage) {
         $this->_eventManager->dispatch('persistent_session_expired');
         $this->quoteManager->expire();
         $this->_customerSession->setCustomerId(null)->setCustomerGroupId(null);
     }
 }
 /**
  * Load already specified item level gift messages.
  *
  * @return \Magento\GiftMessage\Api\Data\MessageInterface[]|null
  */
 protected function getItemLevelGiftMessages()
 {
     $itemMessages = [];
     $cartId = $this->checkoutSession->getQuoteId();
     $items = $this->checkoutSession->getQuote()->getAllVisibleItems();
     foreach ($items as $item) {
         $itemId = $item->getId();
         $message = $this->itemRepository->get($cartId, $itemId);
         if ($message) {
             $itemMessages[$itemId] = $message->getData();
         }
     }
     return count($itemMessages) === 0 ? null : $itemMessages;
 }
Esempio n. 4
0
 /**
  * Get shopping cart items summary (includes config settings)
  *
  * @return int|float
  */
 public function getSummaryQty()
 {
     $quoteId = $this->_checkoutSession->getQuoteId();
     //If there is no quote id in session trying to load quote
     //and get new quote id. This is done for cases when quote was created
     //not by customer (from backend for example).
     if (!$quoteId && $this->_customerSession->isLoggedIn()) {
         $this->_checkoutSession->getQuote();
         $quoteId = $this->_checkoutSession->getQuoteId();
     }
     if ($quoteId && $this->_summaryQty === null) {
         $useQty = $this->_scopeConfig->getValue('checkout/cart_link/use_qty', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
         $this->_summaryQty = $useQty ? $this->getItemsQty() : $this->getItemsCount();
     }
     return $this->_summaryQty;
 }
Esempio n. 5
0
 /**
  * Instantiate
  *
  * @return void
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 protected function _initCheckout()
 {
     $pre = __METHOD__ . " : ";
     $this->_logger->debug($pre . 'bof');
     $this->_order = $this->_checkoutSession->getLastRealOrder();
     if (!$this->_order->getId()) {
         $this->getResponse()->setStatusHeader(404, '1.1', 'Not found');
         throw new \Magento\Framework\Exception\LocalizedException(__('We could not find "Order" for processing'));
     }
     if ($this->_order->getState() != \Magento\Sales\Model\Order::STATE_PENDING_PAYMENT) {
         $this->_order->setState(\Magento\Sales\Model\Order::STATE_PENDING_PAYMENT)->save();
     }
     if ($this->_order->getQuoteId()) {
         $this->_checkoutSession->setPayfastQuoteId($this->_checkoutSession->getQuoteId());
         $this->_checkoutSession->setPayfastSuccessQuoteId($this->_checkoutSession->getLastSuccessQuoteId());
         $this->_checkoutSession->setPayfastRealOrderId($this->_checkoutSession->getLastRealOrderId());
         $this->_checkoutSession->getQuote()->setIsActive(false)->save();
         //$this->_checkoutSession->clear();
     }
     $this->_logger->debug($pre . 'eof');
     //$this->_checkout = $this->_checkoutTypes[$this->_checkoutType];
 }
 /**
  * Load already specified quote level gift message.
  *
  * @return \Magento\GiftMessage\Api\Data\MessageInterface|null
  */
 protected function getOrderLevelGiftMessages()
 {
     $cartId = $this->checkoutSession->getQuoteId();
     return $this->cartRepository->get($cartId);
 }