_persistentSession = $persistentSession; $this->quoteManager = $quoteManager; $this->_customerSession = $customerSession; $this->_persistentData = $persistentData; } /** * Set persistent data into quote * * @param \Magento\Framework\Event\Observer $observer * @return void */ public function execute(\Magento\Framework\Event\Observer $observer) { if (!$this->_persistentSession->isPersistent()) { return; } /** @var $quote \Magento\Quote\Model\Quote */ $quote = $observer->getEvent()->getQuote(); if (!$quote) { return; } if (( ($this->_persistentSession->isPersistent() && !$this->_customerSession->isLoggedIn()) && !$this->_persistentData->isShoppingCartPersist() ) && $this->quoteManager->isPersistent() ) { //Quote is not actual customer's quote, just persistent $quote->setIsPersistent(true); } } }