Разработка

Добавляем опции товаров на страницу категории сайта на OpenCart 2.3

Краткое руководство

Добавить опции товаров на страницу категории сайта на базе OpenCart 2.3 не так уж и сложно

Итак начнем...

1. Открываем в кодовом редакторе файлы catalog/controller/product/product.php и catalog/controller/product/category.php

Находим в файле контроллера товара (product.php) строку (примерно 327 строка)

$data['discounts'] = array();

выделяем код, начиная с этой строки и по строку (примерно 368) включительно
$data['options'][] = array(
'product_option_id'    => $option['product_option_id'],
'product_option_value' => $product_option_value_data,
'option_id'            => $option['option_id'],
'name'                 => $option['name'],
'type'                 => $option['type'],
'value'                => $option['value'],
'required'             => $option['required']
);

Копируем данный код. И вставляем его в файл контроллера категории (category.php) перед строкой (примерно 213):

$data['products'][] = array(

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

$data['products'][] = array(

на код:
$result['product_id']

а также переменную $product_info на $result.

Далее меняем первый код

$data['options'] = array(); на $options = array();

Второй код

$data['options'][] = array( меняем на $options[] = array(

И вставляем в выводе переменных для товара в блоке

$data['products'][] = array(
перед
'thumb'       => $image,
следующий код:
'options' 	  => $options,

Контроллер готов! Теперь займемся шаблоном.

2. В шаблоне товара (product.tpl) код (примерно 166 строка):

<?php if ($options) { ?>
выделяем код, начиная с этого, и по строку (примерно 277 строка):

<?php } ?>
<?php } ?>
<?php } ?>
, естественно, надо обернуть в код для вставки php-кода в html.

Копируем и вставляем код в файл шаблона категории (category.tpl) перед строкой (примерно 130 строка), т.е. перед div-ом с классом button-group.

Во вставленном коде меняем код

 <?php if ($options) { ?>
<hr>
<?php foreach ($options as $option) { ?>
на следующий код
 <?php if ($product['options']) { ?>
 <hr>
<div class="options">
<?php foreach ($product['options'] as $option) {?>

Теперь можно менять внешний вид и стили как вам угодно.

Итак, мы вставили опции товаров на страницу категории в opencart 2.3.


Поделиться

А теперь поговорим о вашем проекте!