コード例 #1
0
ファイル: Cart.php プロジェクト: Nosto/nosto-magento2
 /**
  * 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?
         }
     }
 }
コード例 #2
0
 /**
  * @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;
 }