Всё о web

Для чайников и не только


Переделка карточки товаров в админке Opencart

Февраль 25, 2016

Большинство интернет-магазинов не использует все возможности CMS. Не всем нужно учитывать UPC, EAN, JAN, расположение и т. д. Но, между тем, при большом количестве полей в товаре и большом потоке товаров у контент-менеджера, неизбежны ошибки. Например, можно на автомате перепутать артикул с моделью.

Совсем удалить лишние поля нельзя, иначе Opencart перестанет работать, но мы можем их скрыть.

Откроем: /admin/view/template/catalog/product_form.tpl

Задача следующая: нужно найти блоки всех ненужных полей, затем добавить в них класс .hidden.

Как искать: открываем инспектор объектов в браузере ( fierfox в моём случае). Затем активируем выбор html элементов:

инспектор объектов

и кликаем по нужному инпуту:

инспектор объектов

Копируем ID инпута и по нему ищем текст в product_form.tpl. Весь инпут должен состоять из вот такой структуры:

              <div class="form-group">
                <label class="col-sm-2 control-label" for="input-upc"><span data-toggle="tooltip" title="<?php echo $help_upc; ?>"><?php echo $entry_upc; ?></span></label>
                <div class="col-sm-10">
                  <input type="text" name="upc" value="<?php echo $upc; ?>" placeholder="<?php echo $entry_upc; ?>" id="input-upc" class="form-control" />
                </div>
              </div>

Нам нужно добавить класс "hidden" в главный слой [div class="form-group"]. Должно получиться следующее:

              <div class="form-group hidden">
                <label class="col-sm-2 control-label" for="input-upc"><span data-toggle="tooltip" title="<?php echo $help_upc; ?>"><?php echo $entry_upc; ?></span></label>
                <div class="col-sm-10">
                  <input type="text" name="upc" value="<?php echo $upc; ?>" placeholder="<?php echo $entry_upc; ?>" id="input-upc" class="form-control" />
                </div>
              </div>

Повторяем эту процедуру для всех лишних полей. Результат:

Карточка товаров



Комментарии

19 комментариев | “Переделка карточки товаров в админке Opencart

  1. Аватар Дмитрий:

    Отличная статейка!
    А как убрать обязательной заполнение модели?
    И есть отличия применения style=»display:none;» и класса .hidden?

  2. Аватар Дмитрий:

    Поправка, этот способ для второго опенкарта не подходит? Что то у меня не скрываются. В нем конечно эти элементы скрываются под спойлер но все же.

  3. Илья Илья:

    Обязательные поля надо заполнять обязательно, и от этого никуда не денешься. В противном случае тянется множество ошибок: работа с поиском, фильтрацией, фидами итд.

    Отличий .hidden от display:none никаких. Используйте то, что привычнее. Этот способ подходит для опенкарт любой версии, но есть отличия в структуре инпутов. Конкретно этот пример делался на основе Opencart 2.1.0.1

    1. Аватар Влад:

      В OpenCart 2.2. правка product_form.tpl срабатывает по пути
      ваш сайт/system/storage/modification/admin/view/template/catalog
      а не в ветке /admin/view/template/

  4. Аватар Дмитрий:

    OpenCart 2.1.0.2 — Не работает метод, перепробовал по всякому.
    Стоит сторонний шаблон, но он вроде не подменял этот файл.

    2.1.0.1 чистый — тоже не сработал

    Причем даже полностью div удалял а он не пропадает.

    Что то в общем не так.

    1. Илья Илья:

      Дмитрий, Вы редактируете не тот шаблон. Других вариантов нет.

  5. Аватар Александр:

    Спасибо за оперативность (вчера задал вопрос, сегодня готово) и отличное решение, всё работает!

  6. Аватар Дмитрий:

    Через поиск порыл и нашел два файла product_form.tpl.
    Один в system\storage\modification\admin\view\template\catalog — он реагирует на изменения.
    А второй как у Вас написано \admin\view\template\catalog — и вот он как раз ни на что не влияет.

    Вот как то так)

    1. Аватар ripa:

      верно у меня модификация тут находится /system/modification/admin/view/template/catalog

  7. Аватар Дмитрий:

    Кстати с моделью тоже можно бороться скрыв таким же образом и подставив в value=»&nbsp»
    И соответственно скрыть модель в товаре, корзине, в сравнении, в закладках и по хорошему из формы письма (кстати какой файл за это отвечает?) и может еще где.

    Или за место «&nbsp» ставим прочерк «-» и тогда во все полях он и будет.

    Поверхностно посмотрел ошибок ни каких нет, да и не будет думаю.

    У меня сторонний шаблон. На дефолтном не проверял.

  8. Илья Илья:

    system\storage\modification\admin\view\template\catalog — да, дело в модификациях было.
    Подставляя значения по-умолчанию и скрывая поле, можно выкинуть почти всё, не залазия в контроллеры и модели. Но всё же именно модель лучше заполнять. Например яндекс- маркете это поле обязательное.

    Удачи!

  9. Аватар Евгений:

    Спасибо за статью, очень пригодилась. У меня такой вопрос, а можно ли как-то скрыть вкладки в карточке товара (например «Атрибуты», «Бонусные баллы» и т.д.)? Спасибо.

    1. Илья Илья:

      Евгений, конечно. Все табы находятся внутри списка:

      Достаточно каждому ненужному табу добавить класс .hidden и он перестанет отображаться. Например, чтобы скрыть табы «бонусы» и «дизайн», замените:

    2. < ?php echo $tab_reward; ?>
    3. < ?php echo $tab_design; ?>
    4. На:

  10. Аватар Роман:

    Данные поля, в данном случае у меня OcStore 2.1.x, можно скрыть из админки стандартным методом. Система -> Настройки -> Редактировать -> вкладка Опции и там убираем не нужные нам поля. За статьи спасибо, мне не столько помогли решить задачи.

    1. Илья Илья:

      OcStore хоть и родственник, но всё-таки немного другая система. К сожалению, прям сейчас решения для Вашего вопроса у меня нет, но могу сказать что там ничего сложного нет, посмотрите внимательно стили кнопки и отключите/включите нужный класс. В будущем постараюсь осветить этот момент.

  11. Аватар Роман:

    Может у Вас есть решение такого случая. Я хочу, что бы текст кнопки Купить не пропадал при изменении размеров экрана. Если заходить на сайт с телефона то на кнопке отображается тележка без текста. Самостоятельно не могу решить это. Буду благодарен за помощь.

  12. Аватар Влад:

    Очень жаль, но не срабатывает вариант с hidden. OpenCart 2.2.0.0.
    Точно нахожу файл product_form.tpl по пути /admin/view/template/catalog/product_form.tpl
    Далее в блоке в первой строке прописал hidden, перезалил файл на хостинг
    1)
    <span data-toggle="tooltip" title="»>

    <input type="text" name="upc" value="» placeholder=»» id=»input-upc» class=»form-control» />

    Всё равно строка с UPC осталась (.

    1. Илья Илья:

      Если не сработал класс .hidden, то можно скрыть обычным стилем:

      style="display: none;"
      
  13. Аватар максим:

    А если нужно сделать что бы при нажатии вообще не переходило со списка товаров в карточку а просто быстрый заказ был на кнопку..Такое возможно ???

Оставить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *