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

25.02.2016 09:41

Большинство интернет-магазинов не использует все возможности 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>

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

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


Удаление кнопок "В закладки" и "В сравнение" В Opencart 2.x

Если Вы хотите удалить кнопки "В закладки" и "В сравнение" со всех модулей во всём магазине, откройте файл стилей и разместите в конце

Использование категории товаров в качестве статьи

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


(19) Комментариев

Дмитрий - 25.02.2016 12:51:41
- 0    + 0
Отличная статейка!
А как убрать обязательной заполнение модели?
И есть отличия применения style="display:none;" и класса .hidden?
Дмитрий - 25.02.2016 13:01:48
- 0    + 0
Поправка, этот способ для второго опенкарта не подходит? Что то у меня не скрываются. В нем конечно эти элементы скрываются под спойлер но все же.
Илья - 25.02.2016 14:01:00
- 0    + 0
Обязательные поля надо заполнять обязательно, и от этого никуда не денешься. В противном случае тянется множество ошибок: работа с поиском, фильтрацией, фидами итд.

Отличий .hidden от display:none никаких. Используйте то, что привычнее. Этот способ подходит для опенкарт любой версии, но есть отличия в структуре инпутов. Конкретно этот пример делался на основе Opencart 2.1.0.1
Влад - 21.06.2016 11:44:40
- 0    + 0
В OpenCart 2.2. правка product_form.tpl срабатывает по пути
ваш сайт/system/storage/modification/admin/view/template/catalog
а не в ветке /admin/view/template/
Дмитрий - 25.02.2016 17:27:16
- 0    + 0
OpenCart 2.1.0.2 - Не работает метод, перепробовал по всякому.
Стоит сторонний шаблон, но он вроде не подменял этот файл.

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

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

Что то в общем не так.
Илья - 26.02.2016 01:14:53
- 0    + 0
Дмитрий, Вы редактируете не тот шаблон. Других вариантов нет.
Александр - 25.02.2016 21:49:25
- 0    + 0
Спасибо за оперативность (вчера задал вопрос, сегодня готово) и отличное решение, всё работает!
Дмитрий - 26.02.2016 11:26:23
- 0    + 0
Через поиск порыл и нашел два файла product_form.tpl.
Один в systemstoragemodificationadminview emplatecatalog - он реагирует на изменения.
А второй как у Вас написано adminview emplatecatalog - и вот он как раз ни на что не влияет.

Вот как то так)
ripa - 09.06.2016 12:01:37
- 0    + 0
верно у меня модификация тут находится /system/modification/admin/view/template/catalog
Дмитрий - 26.02.2016 11:58:38
- 0    + 0
Кстати с моделью тоже можно бороться скрыв таким же образом и подставив в value="&nbsp"
И соответственно скрыть модель в товаре, корзине, в сравнении, в закладках и по хорошему из формы письма (кстати какой файл за это отвечает?) и может еще где.

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

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

У меня сторонний шаблон. На дефолтном не проверял.
Илья - 26.02.2016 13:15:32
- 0    + 0
systemstoragemodificationadminview emplatecatalog - да, дело в модификациях было.
Подставляя значения по-умолчанию и скрывая поле, можно выкинуть почти всё, не залазия в контроллеры и модели. Но всё же именно модель лучше заполнять. Например яндекс- маркете это поле обязательное.

Удачи!
Евгений - 15.03.2016 19:32:00
- 0    + 0
Спасибо за статью, очень пригодилась. У меня такой вопрос, а можно ли как-то скрыть вкладки в карточке товара (например "Атрибуты", "Бонусные баллы" и т.д.)? Спасибо.
Илья - 16.03.2016 10:05:00
- 0    + 0
Евгений, конечно. Все табы находятся внутри списка:





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






  • На:




  • Роман - 19.03.2016 20:42:32
    - 0    + 0
    Данные поля, в данном случае у меня OcStore 2.1.x, можно скрыть из админки стандартным методом. Система -> Настройки -> Редактировать -> вкладка Опции и там убираем не нужные нам поля. За статьи спасибо, мне не столько помогли решить задачи.
    Илья - 20.03.2016 01:28:07
    - 0    + 0
    OcStore хоть и родственник, но всё-таки немного другая система. К сожалению, прям сейчас решения для Вашего вопроса у меня нет, но могу сказать что там ничего сложного нет, посмотрите внимательно стили кнопки и отключите/включите нужный класс. В будущем постараюсь осветить этот момент.
    Роман - 19.03.2016 20:47:13
    - 0    + 0
    Может у Вас есть решение такого случая. Я хочу, что бы текст кнопки Купить не пропадал при изменении размеров экрана. Если заходить на сайт с телефона то на кнопке отображается тележка без текста. Самостоятельно не могу решить это. Буду благодарен за помощь.
    Влад - 15.05.2016 13:15:46
    - 0    + 0
    Очень жаль, но не срабатывает вариант с 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 осталась (.
    Илья - 18.05.2016 01:04:31
    - 0    + 0
    Если не сработал класс .hidden, то можно скрыть обычным стилем:

    style="display: none;"
    максим - 22.12.2016 09:49:46
    - 0    + 0
    А если нужно сделать что бы при нажатии вообще не переходило со списка товаров в карточку а просто быстрый заказ был на кнопку..Такое возможно ???