1) Файл product_list.tpl (/admin/view/template/catalog/product_list.tpl)
В product_list.tpl формируется таблица со списком товаров. Начинаем с заголовка таблицы (thead). Пусть новый столбец будет выводиться после столбца "Статус", находим этот фрагмент кода:
<td class="text-left"><?php if ($sort == 'p.status') { ?> <a href="<?php echo $sort_status; ?>" class="<?php echo strtolower($order); ?>"><?php echo $column_status; ?></a> <?php } else { ?> <a href="<?php echo $sort_status; ?>"><?php echo $column_status; ?></a> <?php } ?></td>
Добавляем после него:
<td class="text-left"><?php if ($sort == 'p.upc') { ?> <a href="<?php echo $sort_upc; ?>" class="<?php echo strtolower($order); ?>"><?php echo 'UPC'; ?></a> <?php } else { ?> <a href="<?php echo $sort_upc; ?>"><?php echo 'UPC'; ?></a> <?php } ?></td>
То есть мы скопировали код вывода столбца "Статус" в шапке таблицы и вставили ниже, изменив p.upc вместо p.status, $sort_upc вместо $sort_status, а вместо "echo $column_status" написали 'echo UPC', иначе пришлось бы вносить изменения еще в языковой файл.
Теперь тело таблицы (tbody). Находим:
<td class="text-left"><?php echo $product['status']; ?></td>
Добавляем строку ниже:
<td class="text-left"><?php echo $product['upc']; ?></td>
Последнее мелкое изменение:
<td class="text-center" colspan="8"><?php echo $text_no_results; ?></td>
Изменяем colspan на 9, чтобы таблица не "ломалась", если товары не найдены.
Смотрим, что получилось:
Столбец добавился, но внутри пока ничего не выводится. Если на сервере включено отображение предупреждений может быть так: "Notice: Undefined index: upc in [путь]/public_html/admin/view/template/catalog/product_list.tpl on line 255".
2) Файл product.php (/admin/controller/catalog/product.php)
Этот файл отвечает за вызов "model", обработку и подготовку полученных данных для вывода в "view".
Делаем поиск по sort_status, будет всего одна строчка. Дублируем и меняем на sort_upc, должно получиться так:
$data['sort_status'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&amp;sort=p.status' . $url, 'SSL'); $data['sort_upc'] = $this->url->link('catalog/product', 'token=' . $this->session->data['token'] . '&amp;sort=p.upc' . $url, 'SSL');
Затем находим массив $data['products'][] и после строки:
'status' => ($result['status']) ? $this->language->get('text_enabled') : $this->language->get('text_disabled'),
добавляем:
'upc' => $result['upc'],
3) Файл product.php (/admin/model/catalog/product.php)
В этом файле формируются запросы к базе данных, которые затем используются в "controller". Нужно внести только одну изменение: находим массив $sort_data и добавляем p.upc, получится так:
$sort_data = array( 'pd.name', 'p.model', 'p.price', 'p.quantity', 'p.status', 'p.upc', 'p.sort_order' );
Все работает:
Если после этих действий ничего не заработало:
- попробуйте очистить кэш на странице "Расширения"-"Модификаторы" (если магазин уже функционирует советую перед этим сделать резервную копию файлов и БД)
- возможно, вы допустили ошибки в коде, проверьте логи в админ-панели или в файле /system/logs/error.log