В CMS OpenCart 4 очень удобное заполнение товаров в админке (панели администрирования), но вкладка Данные отличается очень большой длинной страницы, для полного заполнения приходится очень много работать колесом прокрутки мыши, мне это очень не нравится и поэтому я её редактирую.
Открываем файл ../public_html/***/view/template/catalog/product_form.twig (вместо *** ваш адрес админки) и вместо этих строк:
<div class="row mb-3 required"> <label for="input-model" class="col-sm-2 col-form-label">{{ entry_model }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="model" value="{{ model }}" placeholder="{{ entry_model }}" id="input-model" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[model]" value="1" id="input-variant-model" data-oc-toggle="switch" data-oc-target="#input-model" class="form-check-input"{% if override.model %} checked{% endif %}/> <label for="input-variant-model" class="form-check-label"></label> </div> </div> {% endif %} </div> <div id="error-model" class="invalid-feedback"></div> </div> </div> <div class="row mb-3"> <label for="input-sku" class="col-sm-2 col-form-label">{{ entry_sku }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="sku" value="{{ sku }}" placeholder="{{ entry_sku }}" id="input-sku" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[sku]" value="1" id="input-variant-sku" data-oc-toggle="switch" data-oc-target="#input-sku" class="form-check-input"{% if override.sku %} checked{% endif %}/> <label for="input-variant-sku" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_sku }}</div> </div> </div>
вставим эти:
<div class="row mb-3 required"> <div class="col-sm-6"> <div class="row"> <label for="input-model" class="col-sm-2 col-form-label">{{ entry_model }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="model" value="{{ model }}" placeholder="{{ entry_model }}" id="input-model" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[model]" value="1" id="input-variant-model" data-oc-toggle="switch" data-oc-target="#input-model" class="form-check-input"{% if override.model %} checked{% endif %}/> <label for="input-variant-model" class="form-check-label"></label> </div> </div> {% endif %} </div> <div id="error-model" class="invalid-feedback"></div> </div> </div> </div> <div class="col-sm-6"> <div class="row"> <label for="input-sku" class="col-sm-2 col-form-label">{{ entry_sku }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="sku" value="{{ sku }}" placeholder="{{ entry_sku }}" id="input-sku" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[sku]" value="1" id="input-variant-sku" data-oc-toggle="switch" data-oc-target="#input-sku" class="form-check-input"{% if override.sku %} checked{% endif %}/> <label for="input-variant-sku" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_sku }}</div> </div> </div> </div> </div>
А вместо этих строк:
<div class="row mb-3"> <label for="input-upc" class="col-sm-2 col-form-label">{{ entry_upc }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="upc" value="{{ upc }}" placeholder="{{ entry_upc }}" id="input-upc" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[upc]" value="1" id="input-variant-upc" data-oc-toggle="switch" data-oc-target="#input-upc" class="form-check-input"{% if override.upc %} checked{% endif %}/> <label for="input-variant-upc" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_upc }}</div> </div> </div> <div class="row mb-3"> <label for="input-ean" class="col-sm-2 col-form-label">{{ entry_ean }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="ean" value="{{ ean }}" placeholder="{{ entry_ean }}" id="input-ean" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[ean]" value="1" id="input-variant-ean" data-oc-toggle="switch" data-oc-target="#input-ean" class="form-check-input"{% if override.ean %} checked{% endif %}/> <label for="input-variant-ean" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_ean }}</div> </div> </div> <div class="row mb-3"> <label for="input-jan" class="col-sm-2 col-form-label">{{ entry_jan }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="jan" value="{{ jan }}" placeholder="{{ entry_jan }}" id="input-jan" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[jan]" value="1" id="input-variant-jan" data-oc-toggle="switch" data-oc-target="#input-jan" class="form-check-input"{% if override.jan %} checked{% endif %}/> <label for="input-variant-jan" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_jan }}</div> </div> </div> <div class="row mb-3"> <label for="input-isbn" class="col-sm-2 col-form-label">{{ entry_isbn }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="isbn" value="{{ isbn }}" placeholder="{{ entry_isbn }}" id="input-isbn" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[isbn]" value="1" id="input-variant-isbn" data-oc-toggle="switch" data-oc-target="#input-isbn" class="form-check-input"{% if override.isbn %} checked{% endif %}/> <label for="input-variant-isbn" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_isbn }}</div> </div> </div> <div class="row mb-3"> <label for="input-mpn" class="col-sm-2 col-form-label">{{ entry_mpn }}</label> <div class="col-sm-10"> <div class="input-group"> <input type="text" name="mpn" value="{{ mpn }}" placeholder="{{ entry_mpn }}" id="input-mpn" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[mpn]" value="1" id="input-variant-mpn" data-oc-toggle="switch" data-oc-target="#input-mpn" class="form-check-input"{% if override.mpn %} checked{% endif %}/> <label for="input-variant-mpn" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_mpn }}</div> </div> </div>
вставляем эти:
<div class="accordion "> <div class="accordion-item"> <h2 class="accordion-header"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#panelsStayOpen" aria-expanded="true" aria-controls="panelsStayOpen"> {{ entry_othercodes }} </button> </h2> <div id="panelsStayOpen" class="accordion-collapse collapse"> <div class="accordion-body"> <div class="row mb-3"> <div class="col"> <div class="row"> <label for="input-upc" class="col-sm-3 col-form-label">{{ entry_upc }}</label> <div class="col-sm-9"> <div class="input-group"> <input type="text" name="upc" value="{{ upc }}" placeholder="{{ entry_upc }}" id="input-upc" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[upc]" value="1" id="input-variant-upc" data-oc-toggle="switch" data-oc-target="#input-upc" class="form-check-input"{% if override.upc %} checked{% endif %}/> <label for="input-variant-upc" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_upc }}</div> </div> </div> </div> <div class="col"> <div class="row"> <label for="input-ean" class="col-sm-3 col-form-label">{{ entry_ean }}</label> <div class="col-sm-9"> <div class="input-group"> <input type="text" name="ean" value="{{ ean }}" placeholder="{{ entry_ean }}" id="input-ean" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[ean]" value="1" id="input-variant-ean" data-oc-toggle="switch" data-oc-target="#input-ean" class="form-check-input"{% if override.ean %} checked{% endif %}/> <label for="input-variant-ean" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_ean }}</div> </div> </div> </div> <div class="col"> <div class="row"> <label for="input-jan" class="col-sm-3 col-form-label">{{ entry_jan }}</label> <div class="col-sm-9"> <div class="input-group"> <input type="text" name="jan" value="{{ jan }}" placeholder="{{ entry_jan }}" id="input-jan" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[jan]" value="1" id="input-variant-jan" data-oc-toggle="switch" data-oc-target="#input-jan" class="form-check-input"{% if override.jan %} checked{% endif %}/> <label for="input-variant-jan" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_jan }}</div> </div> </div> </div> <div class="col"> <div class="row"> <label for="input-isbn" class="col-sm-3 col-form-label">{{ entry_isbn }}</label> <div class="col-sm-9"> <div class="input-group"> <input type="text" name="isbn" value="{{ isbn }}" placeholder="{{ entry_isbn }}" id="input-isbn" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[isbn]" value="1" id="input-variant-isbn" data-oc-toggle="switch" data-oc-target="#input-isbn" class="form-check-input"{% if override.isbn %} checked{% endif %}/> <label for="input-variant-isbn" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_isbn }}</div> </div> </div> </div> <div class="col"> <div class="row"> <label for="input-mpn" class="col-sm-3 col-form-label">{{ entry_mpn }}</label> <div class="col-sm-9"> <div class="input-group"> <input type="text" name="mpn" value="{{ mpn }}" placeholder="{{ entry_mpn }}" id="input-mpn" class="form-control"/> {% if master_id %} <div class="input-group-text"> <div class="form-check form-switch"> <input type="checkbox" name="override[mpn]" value="1" id="input-variant-mpn" data-oc-toggle="switch" data-oc-target="#input-mpn" class="form-check-input"{% if override.mpn %} checked{% endif %}/> <label for="input-variant-mpn" class="form-check-label"></label> </div> </div> {% endif %} </div> <div class="form-text">{{ help_mpn }}</div> </div> </div> </div> </div> </div> </div> </div> </div> <hr>
Теперь откроем файл: ../public_html/***/language/ru-ru/catalog/product.php и после этой строки:
$_['entry_sku'] = 'Артикул';
вставим эту:
$_['entry_othercodes'] = 'Другие коды';
Теперь откроем файл: ../public_html/***/language/en-gb/catalog/product.php и после этой строки:
$_['entry_sku'] = 'SKU';
вставим эту:
$_['entry_othercodes'] = 'Other Codes';
Смотрим результат нашей работы:
Теперь нажмём на выпадающий список Другие коды и смотрим что получилось:
Вообще можно было их оставить как было (каждый пункт с новой строки), но я люблю компактность, при желании эти пункты можно было вовсе удалить, но вдруг они кому то нужны для работы, поэтому мы их оставили, но сделали менее заметными.
При желании можно скомпоновать и другие блоки (цену, количество, спецификации), если вам это нужно — оставляйте комментарии к этой статье и в одной из следующих статей мы с вами рассмотрим и этот вопрос.
На этом всё, встретимся в следующей статье.