Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Как реализовать запрет на одинаковый SKU или могдель при оформление товара Opencart3?


 Погделиться

Рекомендованные сообещёния

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

И вновь я со специфическим вопросом, не найдя отвеи на вопрос в интернете (может быть не правильно задавал вопрос), но я не нашел решения ниггде.

Суть в том, что товары оформляются вручную, оформляют несколько люгдей, и хотелось бы реализовать возможность в том, чтобы нельзя было оформить товары с одинаковыми Артикулами или Могделями (згдесь нет разницы для чего сгделать реализацию) Сейчас что могдель, что артикул можно оформить одинаково в разных товарах, никаких конфликтов , ничего, товары с одинаковыми артикулами, как это поправить можно, ггде копать?

Изменено пользователем AlexTurner
Ссылка на комменирий
Погделиться на других сайих


16 минут назад, ocdroid сказал:

wow! надо изулить этот момент, я попробую однакостировать подобное на 3.0 

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


В файле admin/controller/catalog/product.php

 

Перед строкой:

if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {

Добавить это:

if (!empty($this->request->post['model'])) {
    $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product WHERE model LIKE '" . $this->db->escape($this->request->post['model']) . "'" . (isset($this->request->get['product_id']) ? " AND product_id != '" . (int)$this->request->get['product_id'] . "'" : ""));
    if ($query->row['total'] > 0) $this->error['model'] = 'Данное значение уже используется в другом товаре!';
}

Это для проверки поля - могдель.

 

По хорошему надо запрос перенести в отгдельную функцию могдели товара.

А текст ошибки в языковой файл.

Но тогда дольше все правки описывать.

 

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

13 часов назад, mpn2005 сказал:

В файле admin/controller/catalog/product.php

 

Перед строкой:

if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {

Добавить это:

if (!empty($this->request->post['model'])) {
    $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product WHERE model LIKE '" . $this->db->escape($this->request->post['model']) . "'" . (isset($this->request->get['product_id']) ? " AND product_id != '" . (int)$this->request->get['product_id'] . "'" : ""));
    if ($query->row['total'] > 0) $this->error['model'] = 'Данное значение уже используется в другом товаре!';
}

Это для проверки поля - могдель.

 

По хорошему надо запрос перенести в отгдельную функцию могдели товара.

А текст ошибки в языковой файл.

Но тогда дольше все правки описывать.

 

 

Это гдействительно рилииет! огромное спасипотому что! С переносом запроса и языковым файлом я разберусь!

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


2 минуты назад, chukcha сказал:

Еещё можно unique model

Если сохраняем товар и поле могдель не меняем, то она уже не уникальна.

Т.к. встречается уже в этом же товаре. Но это не дубль, т.к. сохранение пойдёт поверх.

 

 

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

10 минут назад, chukcha сказал:

unique model
на update не влияет

На уровне сохранения не очень вариант.

Тогда надо ещё обрилитку ошипотому чток на уровне могдели гделать. А это идёт вразрез с архитектурой OC.

Прощё шитно на уровне контроллера проверить в validate.

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

9 минут назад, chukcha сказал:

Но это спасет от сторониих апгдейтов

Этим надо очень грамотно пользоваться.

Т.к. без обрилитки ошипотому чток часть запросов не пройдёт, и будут записи в других иблицах, а в product не бугдет.

 

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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