Opencart — Как Добавить Вес, Размеры И Артикул В Карточку Товара

Тема в разделе "Шаблоны, дизайн и оформление магазина", создана пользователем admin, 16 июн 2016.

  1. TopicStarter Overlay
    Online

    admin Команда форума Администратор

    Сообщения:
    2.377
    Симпатии:
    81.570
    Репутация:
    175
    По умолчанию в магазине OpenCart в карточке товара выводится следующая информация: модель, налоги, наличие и цена.

    tovar.jpg

    Можно добавлять различные опции, но иногда необходимо отобразить те же, к примеру, вес и размеры, не в опциях, а непосредственно в карте товара. И хотя для этих характеристик в админ-панели отведены соответствующие поля, все же они в магазине не отображаются.

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

    Версия OpenCart 1.5.3.1., тема по умолчанию.

    1. Открываем файл, который отвечает за карточку товара, — catalog/view/theme/default/template/product/product.tpl и ищем строки вывода модели товара

    Код:
    <?php}?><span><?phpecho$text_model;?></span><?phpecho$model;?><br/>

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

    Код:
    <?phpif($weight>0){?><span><?phpecho$text_weight;?></span><?phpechoround($weight,2);?>
    <?phpif($weight){?>
    <?php}?>
    Где ?php if ($weight>0) { ? отвечает за то, чтобы вес на странице товара отображался лишь в том случае, если он больше «0». Если в данных товара поле «вес» будет не заполнено, то информация о весе на странице товара не отобразится.


    2. Переходим к файлу catalog/controller/product/product.php и ищем строку

    Код:
    $this->data['text_model']=$this->language->get('text_model');
    после нее добавляем

    Код:
    $this->data['text_weight']=$this->language->get('text_weight');
    Немного ниже находим следующую строку

    Код:
    $this->data['model']=$product_info['model'];
    и опять после нее добавляем код, который относится к весу

    Код:
    $this->data['weight']=$product_info['weight'];
    3. Теперь переходим к файлу, отвечающему за русский язык — catalog/language/russian/product/product.php, и после

    Код:
    $_['text_model']='Модель:';
    добавляем

    Код:
    $_['text_weight']='Вес:';
    4. Для того, чтобы после цифр выводились «граммы» или «килограммы», сразу же, за тем кодом, что мы добавили в самом начале, в файле catalog/view/theme/default/template/product/product.tpl, добавляем следующие строки:

    Код:
    <?phpif($weight_class_id==2){?>
    <?phpecho" гр<br />";?>
    <?php}?>
    <?phpif($weight_class_id==1){?>
    <?phpecho' кг';?>
    <?php}?><?php}?>
    В файле catalog/controller/product/product.php, после строк добавленных нами

    Код:
    $this->data['weight']=$product_info['weight'];
    добавляем следующий код:

    Код:
    $this->data['weight_class_id']=$product_info['weight_class_id'];
    И теперь, заполняя поле вес в админ-панели, мы будем видеть на странице товара указанный нами вес:

    weight.jpg
    Аналогичным образом можно вывести в карту товара артикул и размеры (длина, ширина, высота) товара. Переменные для этих значений:

    • length — длина
    • width — ширина
    • height — высота
    • sku — артикул

    Учитывая частые просьбы о помощи в добавлении размеров в карту товара, дополним пост и рассмотрим этот момент подробнее.

    Итак, нам необходимо вывести размеры товара: длину, ширину и высоту. Действовать мы будем точно также, как и при добавлении веса в карту товара.

    Открываем файл catalog/view/theme/default/template/product/product.tpl

    и в необходимом месте, например, после вывода веса, добавляем следующий код:

    Код:
    <?phpif($length>0){?><span><?phpecho$text_length;?></span><?phpechoround($length,2);?>
    <?phpecho" см<br/>";?>
    <?phpif($length_class_id==1){?>
    <?php}?><?php}?>
    <?phpif($length){?>
    <?php}?>
    
    <?phpif($width>0){?><span><?phpecho$text_width;?></span><?phpechoround($width,2);?>
    <?phpecho" см<br/>";?>
    <?phpif($width_class_id==1){?>
    <?php}?><?php}?>
    <?phpif($width){?>
    <?php}?>
    
    <?phpif($height>0){?><span><?phpecho$text_height;?></span><?phpechoround($height,2);?>
    <?phpecho" см<br/>";?>
    <?phpif($height_class_id==1){?>
    <?php}?><?php}?>
    <?phpif($height){?>
    <?php}?>
    Теперь, открываем второй файл, с которым мы работаем — catalog/controller/product/product.php, и после строки, отвечающий за вывод веса,

    Код:
    $this->data['text_weight']=$this->language->get('text_weight');
    добавляем следующие строки:

    Код:
    $this->data['text_length']=$this->language->get('text_length');
    $this->data['text_width']=$this->language->get('text_width');
    $this->data['text_height']=$this->language->get('text_height');
    Спускаемся немного ниже и, опять таки, ищем строки с весом,

    Код:
    $this->data['weight']=$product_info['weight'];
    после которых добавим аналогичные строки, но только с необходимыми для нас высотой, длиной и шириной:

    Код:
    $this->data['length']=$product_info['length'];
    $this->data['width']=$product_info['width'];
    $this->data['height']=$product_info['height'];
    Всем удачной правки и красивых карт товара!)

    Дополнение.

    Для того, чтобы размеры в карточке товара отображались в строку:
    opencart-razmery.jpg

    В product.tpl добавляем:

    Код:
    <span><?phpecho$text_dimension;?></span>
    <?phpif($length>0){?><?phpechoround($length,2);?>
    <?phpecho" см х ";?><?php}?>
    <?phpif($length){?><?php}?>
    <?phpif($width>0){?><?phpechoround($width,2);?>
    <?phpecho" см х";?><?php}?>
    <?phpif($width){?><?php}?>
    <?phpif($height>0){?><?phpechoround($height,2);?>
    <?phpecho" см";?><?php}?>
    <?phpif($height){?><?php}?>
    <br>
    В product.php:

    Код:
    $this->data['text_length']=$this->language->get('text_length');
    $this->data['text_width']=$this->language->get('text_width');
    $this->data['text_height']=$this->language->get('text_height');
    и

    Код:
    $this->data['length']=$product_info['length'];
    $this->data['width']=$product_info['width'];
    $this->data['height']=$product_info['height'];
    В языковой файл product.php добавьте строку

    PHP

    Код:
    $_['text_dimension']='Размеры:';
     
    Последнее редактирование: 17 июн 2016
  2. Offline

    sveta Пользователь

    Сообщения:
    32
    Симпатии:
    3
    Репутация:
    0
    класс , а для opencart 2 версии как это сделать?
     
  3. TopicStarter Overlay
    Online

    admin Команда форума Администратор

    Сообщения:
    2.377
    Симпатии:
    81.570
    Репутация:
    175
    Все просто, например:

    Для вывода SKU и UPC в карточку товара, нужно в файл
    catalog\controller\product\product.php
    после строки
    $this->data['model'] = $product_info['model'];
    добавить
    $this->data['upc'] = $product_info['upc'];
    $this->data['sku'] = $product_info['sku'];

    в файл - catalog\view\theme\default\template\product\product.tpl

    добавить в месте вывода
    <span>UPC:</span> <?php echo $upc; ?><br />
    <span>Артикул:</span> <?php echo $sku; ?><br />
    <span>ID:</span> <?php echo $product_id; ?>