/** * Constructor. * * @param Context $context * @param Session $customerSession * @param \Magento\Checkout\Model\Session $checkoutSession * @param Url $catalogUrlBuilder * @param \Magento\Checkout\Helper\Cart $cartHelper * @param \Magento\Framework\App\Http\Context $httpContext * @param CartBuilder $cartBuilder * @param FormatHelper $formatHelper * @param CustomerFactory $customerFactory * @param array $data */ public function __construct(Context $context, Session $customerSession, CookieManagerInterface $cookieManager, CheckoutSession $checkoutSession, Url $catalogUrlBuilder, CartHelper $cartHelper, HttpContext $httpContext, CartBuilder $cartBuilder, FormatHelper $formatHelper, CustomerFactory $customerFactory, array $data = []) { parent::__construct($context, $customerSession, $checkoutSession, $catalogUrlBuilder, $cartHelper, $httpContext, $data); $this->_cartBuilder = $cartBuilder; $this->_formatHelper = $formatHelper; $this->_customerFactory = $customerFactory; $this->_cookieManager = $cookieManager; // Handle the Nosto customer & quote mapping $nostoCustomerId = $this->_cookieManager->getCookie(NostoCustomer::COOKIE_NAME); $quoteId = $this->getQuote()->getId(); if (!empty($quoteId) && !empty($nostoCustomerId)) { $nostoCustomer = $this->_customerFactory->create()->getCollection()->addFieldToFilter(NostoCustomer::QUOTE_ID, $quoteId)->addFieldToFilter(NostoCustomer::NOSTO_ID, $nostoCustomerId)->setPageSize(1)->setCurPage(1)->getFirstItem(); if ($nostoCustomer->hasData(NostoCustomer::CUSTOMER_ID)) { $nostoCustomer->setUpdatedAt(new \DateTime('now')); } else { $nostoCustomer = $this->_customerFactory->create(); $nostoCustomer->setQuoteId($quoteId); $nostoCustomer->setNostoId($nostoCustomerId); $nostoCustomer->setCreatedAt(new \DateTime('now')); $nostoCustomer->setUpdatedAt(new \DateTime('now')); } try { $nostoCustomer->save(); } catch (\Exception $e) { //Todo - handle errors, maybe log? } } }
/** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Customer\Model\Session $customerSession * @param \Magento\Checkout\Model\Session $checkoutSession * @param \Magento\Catalog\Model\Resource\Url $catalogUrlBuilder * @param \Magento\Checkout\Helper\Cart $cartHelper * @param \Magento\Framework\App\Http\Context $httpContext * @param array $data */ public function __construct(\Magento\Framework\View\Element\Template\Context $context, \Magento\Customer\Model\Session $customerSession, \Magento\Checkout\Model\Session $checkoutSession, \Magento\Catalog\Model\Resource\Url $catalogUrlBuilder, \Magento\Checkout\Helper\Cart $cartHelper, \Magento\Framework\App\Http\Context $httpContext, array $data = []) { parent::__construct($context, $customerSession, $checkoutSession, $catalogUrlBuilder, $cartHelper, $httpContext, $data); $this->_isScopePrivate = false; }