Перейти к содержанию
Focto

[Решено] Назначение столбца store_id в таблице покупателей

Рекомендуемые сообщения

Доброго времени суток!

 

Ответьте, пожалуйста, на вопрос: Для чего в таблице _customer нужен столбец store_id ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Доброго времени суток!

 

Ответьте, пожалуйста, на вопрос: Для чего в таблице _customer нужен столбец store_id ?

Это для мультимагазина, 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это для мультимагазина, 

 

Другими словами, это привязка Покупателя к одному из магазинов (в мультимагазине).

 

А зачем нужна эта привязка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Другими словами, это привязка Покупателя к одному из магазинов (в мультимагазине).

 

А зачем нужна эта привязка?

Наверно чтоб Вы понимали к какому магазину привязан покупатель :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наверно чтоб Вы понимали к какому магазину привязан покупатель :)

То есть, когда покупатель регистрируется, в этот столбец будет заноситься id магазинов с которого этот он зарегистрировался.

 

Допустим есть 2 магазина (на мультимагазине). Назовем их 1 и 2.

Покупатель зарегистрировался в 1 магазине, и мне нужно чтобы во 2 он не смог авторизоваться. 

 

Можно ли использовать столбец store_id для валидации по id номеру магазина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно.

Можете подсказать как это сделать?

Я думаю нужно править в model customer.php и controller login.php в /catalog

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

system/library/customer.php

  	public function login($email, $password, $override = false) {
		if ($override) {
			...
		} else {
			$customer_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1' AND approved = '1'");
		}
...
>>

  	public function login($email, $password, $override = false) {
		if ($override) {
			...
		} else {
			//$noCrossStoreCustomerSql = "";
			$noCrossStoreCustomerSql = " AND store_id = '".(int)$this->config->get('config_store_id')."'";
			$customer_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1' AND approved = '1'".$noCrossStoreCustomerSql."");
		}
...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От mebtorg
      Как добавить колонку store_id в oc_setting (phpMyAdmin)?????
      Notice: Error: Unknown column 'store_id' in 'where clause'
      Error No: 1054
      SELECT * FROM oc_setting WHERE store_id = '0' OR store_id = '0' ORDER BY store_id ASC in/home/maron/public_html/mydomain.ru/system/database/mysql.php on line 49
      Не могу понять, откуда эта ошибка... Помогите пожалуйста советом. 
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.