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

Большинство интернет-магазинов не использует все возможности 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=&quot;display:none;&quot; и класса .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=&quot;&amp;nbsp&quot;
И соответственно скрыть модель в товаре, корзине, в сравнении, в закладках и по хорошему из формы письма (кстати какой файл за это отвечает?) и может еще где.

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

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

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

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


<ul class=&quot;nav nav-tabs&quot;>


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


<li><a href=&quot;#tab-reward&quot; data-toggle=&quot;tab&quot;><?php echo $tab_reward; ?></a></li>
<li><a href=&quot;#tab-design&quot; data-toggle=&quot;tab&quot;><?php echo $tab_design; ?></a></li>


На:


<li><a href=&quot;#tab-reward&quot; class=&quot;hidden&quot; data-toggle=&quot;tab&quot;><?php echo $tab_reward; ?></a></li>
<li><a href=&quot;#tab-design&quot; class=&quot;hidden&quot; data-toggle=&quot;tab&quot;><?php echo $tab_design; ?></a></li>
Роман - 19.03.2016 20:42:32
- 0    + 0
Данные поля, в данном случае у меня OcStore 2.1.x, можно скрыть из админки стандартным методом. Система -&gt; Настройки -&gt; Редактировать -&gt; вкладка Опции и там убираем не нужные нам поля. За статьи спасибо, мне не столько помогли решить задачи.
Илья - 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)
&lt;span data-toggle=&quot;tooltip&quot; title=&quot;&quot;&gt;</span>

&lt;input type=&quot;text&quot; name=&quot;upc&quot; value=&quot;&quot; placeholder=&quot;&quot; id=&quot;input-upc&quot; class=&quot;form-control&quot; /&gt;


Всё равно строка с UPC осталась (.
Илья - 18.05.2016 01:04:31
- 0    + 0
Если не сработал класс .hidden, то можно скрыть обычным стилем:

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