Jump to content
AlexTurner

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

Recommended Posts

Posted (edited)

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

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

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

Edited by AlexTurner

Share this post


Link to post
Share on other sites

В файле 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 1

Share this post


Link to post
Share on other sites
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'] = 'Данное значение уже используется в другом товаре!';
}

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

 

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

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

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

 

 

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

Share this post


Link to post
Share on other sites

Еще можно unique model

Share this post


Link to post
Share on other sites
2 минуты назад, chukcha сказал:

Еще можно unique model

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

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

 

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
10 минут назад, chukcha сказал:

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
9 минут назад, chukcha сказал:

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

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

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By mrz
      2 999.00 руб
      Скачать/Купить дополнение


      Адаптивный, многомодульный шаблон Aridius Fractal
      Шаблон работает на: OcStore 2.3.x,OpenCart 2.3.x,OpenCart Pro 2.3.x,OpenCart 3.x,ocStore 3.x
       
      Fractal – выполнен в современном, ненавязчивом и легком дизайне, что позволяет покупателю сосредоточиться на покупке и купить товар именно в вашем магазине. Шаблон имеет большой набор модулей, настраиваемых из админ панели, описание которых предоставлено ниже, а также более 200 дополнительных настроек, благодаря чему вам не придется тратить деньги на покупку модулей и адаптацию их к шаблону. Шаблон написан «чистым кодом» смотреть.
       
      В шаблоне есть быстрая установка (Quickstart) - установка в 6 кликов.
      Купив шаблон Fractal за 2999р. Вы получаете набор всех необходимых оптимизированных под шаблон модулей стоимостью более 17000р. + сам шаблон.
       

       
      Совместимость:
      ocStore 2.3.x
      openCart 2.3.x
      openCart Pro 2.3.x
      openCart 3.x
      ocStore 3.x
       
      Модули:
      . Быстрая установка шаблона (Quickstart).
      . Гибкая настройка шаблона из-под админ панели.
      . Смена основных цветов из админ панели.
      . Модуль новостей с возможностью добавлять до каждой новости рекомендуемые товары и сопутствующие новости.
      . Модуль Быстрый заказ с учетом опций, количества.
      . Модуль Нашли дешевле.
      . Модуль Заказ обратного звонка с выводом в шапке или сбоку сайта.
      . Модуль Сообщить когда появится.
      . Модуль Подписка на новости.
      . Модуль Быстрого просмотра товара(quick view).
      . Модуль Мега-меню.
      . Модуль Живой поиск с возможностью поиска по модели, описанию, артикулу, тегам.
      . Модуль Стена категорий, с возможностью выбора категорий.
      . Модуль Категории аккордеон, с возможностью выбора категорий и 3 уровнем вложенности категорий .
      . Модуль Табы 5 в 1 наиболее просматриваемые, рекомендуемые, лидеры продаж, новинки, акции.
      . Модуль Таблица размеров с возможностью отображения для определенных товаров.
      . Модуль показа последних отзывов о товарах.
      . Настраиваемые стикеры для товаров и категорий (новинки, акции, лидеры продаж).
      . Добавленные новые позиции для слайдера и баннеров.
      . Переработанное всплывающее окно при нажатии купить, в закладки, в сравнения.
      . Добавлена карусель для модулей рекомендуемые, акции, хиты продаж, новинки.
      . Добавленные эффекты смены слайдов в модуле слайдшоу.
      . Возможность выводить текст или кнопки на баннерах и слайдах.
      . Возможность создавать дополнительные вкладки в карточке товара для товаров.
      . Выбор в карточке товара одного из 5 Zoom эффекта для просмотра изображения товара.
      . Таймер отсчета времени до конца акции в карточке товара.
      . Интерактивная карта в футере, с возможностью установить, свой, маркер для карты.
      . Более 200 дополнительных настроек темы и модулей.
      . Модуль вертикального меню
      . Модуль FAQ с возможностью расположения в колонках или на отдельной странице.
      . Модуль всплывающих уведомлений (позволяет выводить текст или баннеры во всплывающем окне с возможностью выбора схемы вывода модуля).
      . Модуль всплывающее окно подпишись и получи скидку.
      . Микроразметка данных карточки товара Schema.org.
      . Модуль отзывы о магазине.
      . Модуль вы смотрели.
      . И многое другое...
       




       
      Лицензия:
      Шаблон реализуется по принципу "1 покупатель – 1 домен и все его поддомены".
      Продажа, выкладывание в публичный доступ, присвоение и прочие действия данного программного обеспечения запрещены и являются нарушением авторских прав разработчика!
      Для *веб-студий, *разработчиков и при покупке дополнительной лицензии предусмотрены скидки.
      *Скидки, предусмотрены после первой покупки.
       
      Техническая поддержка:
      Поддержка осуществляется через личные сообщения на форуме, скайп или почту (указаны в файле contacts.txt, который идет вместе с шаблоном ). Поддержка доступна только пользователям числящимся в списке купивших шаблон.
       

      <br /><br />
      Добавил mrz Добавлено 22.01.2017 Категория Платные шаблоны Системные требования Ioncube Loader; PHP 5.4-5.6, 7.1 Сайт разработчика http://fractal.aridius.ru Старая цена 3899 Метод активации По запросу в ЛС
      По запросу на почту
      По скайпу
      По емейлу
      Автоматическая активация Ioncube Loader Требуется OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Opencart.pro 2.3 Обращение к серверу разработчика Нет  
    • By AlexTurner
      Добрый день всем! Есть еще один вопрос по Opencart 3.0.3.1, как правильно привязать  input маску при создании модели товара? Например нужен вид маски цифрами и не больше 5?
      Я попробовал разобраться с этим в файле /admin/view/template/catalog/ в файле product_form.twig  там я нашел значение :
                   
        <label class="col-sm-2 control-label" for="input-model">{{ entry_model }}</label>                 <div class="col-sm-10">                   <input type="text" name="model" value="{{ model }}" placeholder="{{ entry_model }}" id="input-model" class="form-control" />                   {% if error_model %}                   <div class="text-danger">{{ error_model }}</div>                   {% endif %}</div>               </div>  
      но при любых попытка внедрить значение  .mask или изменение placeholder - ничего не меняется, или я вообще не там разбираю?
    • By Feech
      Скачать/Купить дополнение


      Кастомный h1 для товаров, категорий и информационных страниц. Opencart 3
      Добавляет H1 для товаров, категорий и информационных страниц. Для Opencart 3
       
      Установка
      Установка производится через стандартный инструмент: Дополнения - Установка дополнений. Выберите файл custom_h1_os3.ocmod.zip (Распаковывать архив не надо) В архиве лежит install.sql - выполните содержимое для вашей БД После установки не забудьте обновить кеш модификаций. Добавил mitlabsFeech Добавлено 11.04.2019 Категория SEO, карта сайта, оптимизация Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
    • By Feech
      Добавляет H1 для товаров, категорий и информационных страниц. Для Opencart 3
       
      Установка
      Установка производится через стандартный инструмент: Дополнения - Установка дополнений. Выберите файл custom_h1_os3.ocmod.zip (Распаковывать архив не надо) В архиве лежит install.sql - выполните содержимое для вашей БД После установки не забудьте обновить кеш модификаций.
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.