Пример #1
0
 /**
  * Load customer by email
  *
  * @param \Magento\Customer\Model\Customer $customer
  * @param string $email
  * @return $this
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 public function loadByEmail(\Magento\Customer\Model\Customer $customer, $email)
 {
     $adapter = $this->_getReadAdapter();
     $bind = ['customer_email' => $email];
     $select = $adapter->select()->from($this->getEntityTable(), [$this->getEntityIdField()])->where('email = :customer_email');
     if ($customer->getSharingConfig()->isWebsiteScope()) {
         if (!$customer->hasData('website_id')) {
             throw new \Magento\Framework\Exception\LocalizedException(__('Customer website ID must be specified when using the website scope'));
         }
         $bind['website_id'] = (int) $customer->getWebsiteId();
         $select->where('website_id = :website_id');
     }
     $customerId = $adapter->fetchOne($select, $bind);
     if ($customerId) {
         $this->load($customer, $customerId);
     } else {
         $customer->setData([]);
     }
     return $this;
 }