Переделка карточки товаров в админке 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>

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

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


Сообщество: AWS

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


ID: #449   Создан:
Автор: Дмитрий

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

ID: #450   Создан:
Автор: Дмитрий

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

ID: #451   Создан:
Автор: ololoev

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

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

ID: #453   Создан:
Автор: Дмитрий

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

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

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

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

ID: #455   Создан:
Автор: Александр

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

ID: #454   Создан:
Автор: ololoev
>>453

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

ID: #456   Создан:
Автор: Дмитрий

Через поиск порыл и нашел два файла product_form.tpl. Один в systemstoragemodificationadminview emplatecatalog - он реагирует на изменения. А второй как у Вас написано adminview emplatecatalog - и вот он как раз ни на что не влияет.

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

ID: #458   Создан:
Автор: Дмитрий

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

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

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

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

ID: #459   Создан:
Автор: ololoev

systemstoragemodificationadminview emplatecatalog - да, дело в модификациях было. Подставляя значения по-умолчанию и скрывая поле, можно выкинуть почти всё, не залазия в контроллеры и модели. Но всё же именно модель лучше заполнять. Например яндекс- маркете это поле обязательное.

Удачи!

ID: #460   Создан:
Автор: Евгений

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

ID: #461   Создан:
Автор: ololoev
>>460

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


<ul class="nav nav-tabs">

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


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

На:


<li><a href="#tab-reward" class="hidden" data-toggle="tab"><?php echo $tab_reward; ?></a></li>
<li><a href="#tab-design" class="hidden" data-toggle="tab"><?php echo $tab_design; ?></a></li>
ID: #462   Создан:
Автор: Роман

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

ID: #464   Создан:
Автор: Роман

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

ID: #463   Создан:
Автор: ololoev
>>462

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

ID: #465   Создан:
Автор: Влад

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

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

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

ID: #466   Создан:
Автор: ololoev
>>465

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


style="display: none;"
ID: #457   Создан:
Автор: ripa
>>456

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

ID: #452   Создан:
Автор: Влад
>>451

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

ID: #467   Создан:
Автор: максим

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

Всего: 19 комментариев на 1 страницах

Ваш комментарий будет анонимным. Чтобы оставить не анонимный комментарий, пожалуйста, зарегистрируйтесь



Сообщества