Jump to content
Sign in to follow this  
zcity

Как добавить дополнительные поля продукта?

Recommended Posts

Как расширить поля с стандартных 3

 

Производитель: HP

Модель: hp-lj-49a
Наличие: Есть в наличии

 

А  сделать

 

 

Принтеры:

HP LASERJET 4MV
HP LASERJET 4V

Модель картриджа:

C3900A
Ресурс картриджа (страниц): 8100
Производитель: Hewlett-Packard
Тип печати: Оригинальный
Цвет картриджа: Черный
Тип картриджа: Лазерный
Артикул: HP000355
Наличие: В наличии

А ЗНАЧЕНИЯ Принтеры СДЕЛАТЬ ССЫЛКАМИ 
HP LASERJET 4MV
HP LASERJET 4V

 

 
 
 
 

Share this post


Link to post
Share on other sites

Не проще ли атрибуты задействовать?

Share this post


Link to post
Share on other sites

А разве их можно вывести с ссылками?
И поместить в верх карточки?
Вот как тут plabis.ru/hp/hp-laser/hp-c3900a.html.

Edited by afwollis
unlinked, сторонняя сборка

Share this post


Link to post
Share on other sites

Атрибуты можно вывести вверх.

В файле catalog/view/theme/default/template/product/product.tpl (вместо default папка с вашей темой)

После строки: <span><?php echo $text_stock; ?></span>  <?php echo $stock; ?>

 

Вставить код:

        <?php if ($attribute_groups) { ?>
        <table>
          <?php foreach ($attribute_groups as $attribute_group) { ?>
          <tbody>
            <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
              <tr>
                 <td><span><?php echo $attribute['name']; ?>:</span></td>
                 <td><?php echo $attribute['text']; ?></td>
              </tr>
            <?php } ?>
          </tbody>
          <?php } ?>
        </table>
        <?php } ?>

Это выведет вверх атрибуты.

Внизу страницы их можно убрать.

Share this post


Link to post
Share on other sites

  Там если оставить разметку таблицы, будет вылазить. Что бы все было ровненько таблицу лучше убрать. Что бы стиль текста был такой же как у $text_manufacturer можно добавить тег <a>. Примерно так:

 

 <?php if ($attribute_groups) { ?>
              <?php foreach ($attribute_groups as $attribute_group) { ?>
                    <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
                       <span><?php echo $attribute['name']; ?>:</span>
                       <a><?php echo $attribute['text']; ?></a><br>
                       <?php } ?>
              <?php } ?>
        <?php } ?>

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By vadimpanicherski
      Здравствуйте! У меня проблема, у меня есть интернет магазин, продавать я буду по партнерской программе, проблема в том, что мне нужно что бы пользователь когда нажимает на кнопку купить выбранного товара, его перекидывало по партнерской ссылке на форму оформления заказа выбранного им товара, то есть мне нужно что бы при добавлении товара в магазине была ячейка для ссылки, которая будет вставлена в кнопку купить товара, и пользователь нажимая на кнопку купить его направляло на сайт с оформлением заказа. Пожалуйста помогите мне. Как это сделать? Версия OpenCart 2.3.0.2
    • By Nazgulov
      Дополнительные поля к описанию продукта? Платные модули? Не обязательно,
      Вашему вниманию способ, протестированный на магазине под управлением OpenCart версии 1.5.4.1.
      P.S. Не забываем про backup оригинальных файлов :-)

      Задача:
      Создание дополнительного текстового поля к описанию товара. В моем случае это будет поле "Стоимость за". Например: "Стоимость за: 1 килограмм" или "Стоимость за: 1 метр квадратный".

      Шаг 1. База данных. Создание столбца таблицы "product"
      Административная панель хостера --> управление базами данных --> выбор базы --> таблица "product" --> SQL запрос:

      ALTER TABLE `product` ADD `sellunit` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `shipping`ИЛИ выбор базы --> таблица "product" --> "Структура" --> "Добавить столбец" (под таблицей).
      В моем случае новосозданный столбец под названием 'sellunit' следует сразу после столбца 'shipping' и имеет символьный тип данных varchar с ограничением длины в 32 символа.

      Шаг 2. Административная часть
      /admin/controller/catalog/product.php
      Пример необходимого кода будет приводиться в окружении неизмененного кода (для удобства навигации по файлу), выделяясь отступами.
      Строка 563
      $this->data['entry_quantity'] = $this->language->get('entry_quantity'); $this->data['entry_stock_status'] = $this->language->get('entry_stock_status'); $this->data['entry_sellunit'] = $this->language->get('entry_sellunit'); $this->data['entry_price'] = $this->language->get('entry_price'); $this->data['entry_tax_class'] = $this->language->get('entry_tax_class');Строка 849
      if (isset($this->request->post['shipping'])) { $this->data['shipping'] = $this->request->post['shipping']; } elseif (!empty($product_info)) { $this->data['shipping'] = $product_info['shipping']; } else { $this->data['shipping'] = 1; } if (isset($this->request->post['sellunit'])) { $this->data['sellunit'] = $this->request->post['sellunit']; } elseif (!empty($product_info)) { $this->data['sellunit'] = $product_info['sellunit']; } else { $this->data['sellunit'] = ''; } if (isset($this->request->post['price'])) { $this->data['price'] = $this->request->post['price']; } elseif (!empty($product_info)) { $this->data['price'] = $product_info['price']; } else { $this->data['price'] = '';
      /admin/model/catalog/product.php
      В данном файле запросы к базе данных представлены в виде сплошной строки. Вынос каждого запроса в новую строку в представленном ниже коде сделан для наочности; менять структуру вовсе необязательно.
      Строка 4
      manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', sellunit = '" . $this->db->escape($data['sellunit']) . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "',Строка 120
      manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', sellunit = '" . $this->db->escape($data['sellunit']) . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "',
      /admin/language/russian/catalog/product.php
      Внести аналогичные изменения во все использующиеся языковые файлы административной панели, например /admin/language/ukrainian/catalog/product.php
      Строка 48
      $_['entry_minimum'] = 'Минимальное количество:<br/><span class="help">Указание минимально количества в заказе</span>'; $_['entry_stock_status'] = 'Остутствие на складе:<br /><span class="help">Статус, показываемый, когда товара нет на складе</span>'; $_['entry_sellunit'] = 'Стоимость за:'; $_['entry_price'] = 'Цена:'; $_['entry_tax_class'] = 'Налог:';
      /admin/view/template/catalog/product_form.tpl
      Строка 100
      <tr> <td><?php echo $entry_location; ?></td> <td><input type="text" name="location" value="<?php echo $location; ?>" /></td> </tr> <tr> <td><?php echo $entry_sellunit; ?></td> <td><input type="text" name="sellunit" value="<?php echo $sellunit; ?>" /></td> </tr> <tr> <td><?php echo $entry_price; ?></td> <td><input type="text" name="price" value="<?php echo $price; ?>" /></td> </tr>
      Шаг 3. Клиентская часть
      /catalog/controller/product/product.php
      Строка 150
      $this->data['text_discount'] = $this->language->get('text_discount'); $this->data['text_stock'] = $this->language->get('text_stock'); $this->data['text_sellunit'] = $this->language->get('text_sellunit'); $this->data['text_price'] = $this->language->get('text_price'); $this->data['text_tax'] = $this->language->get('text_tax'); Строка 190
      $this->data['reward'] = $product_info['reward']; $this->data['points'] = $product_info['points']; $this->data['sellunit'] = $product_info['sellunit']; if ($product_info['quantity'] <= 0) { $this->data['stock'] = $product_info['stock_status']; } elseif ($this->config->get('config_stock_display')) { $this->data['stock'] = $product_info['quantity']; } else { $this->data['stock'] = $this->language->get('text_instock'); }
      /catalog/model/catalog/product.php
      Строка 39
      'manufacturer_id' => $query->row['manufacturer_id'], 'manufacturer' => $query->row['manufacturer'], 'sellunit' => $query->row['sellunit'], 'price' => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']), 'special' => $query->row['special'],
      /catalog/language/russian/product/product.php
      Внести аналогичные изменения во все языковые файлы задействованных языков, например /catalog/language/ukrainian/product/product.php
      Строка 11
      $_['text_stock'] = 'Наличие:'; $_['text_instock'] = 'Есть в наличии'; $_['text_sellunit'] = 'Стоимость за:'; $_['text_price'] = 'Цена:'; $_['text_tax'] = 'Без НДС:';
      /catalog/view/theme/%yourtheme%/template/product/product.tpl
      Строка 34
      <div class="description"> <?php if ($manufacturer) { ?> <span><?php echo $text_manufacturer; ?></span> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a><br /> <?php } ?> <span><?php echo $text_model; ?></span> <?php echo $model; ?><br /> <?php if ($reward) { ?> <span><?php echo $text_reward; ?></span> <?php echo $reward; ?><br /> <?php } ?> <span><?php echo $text_stock; ?></span> <?php echo $stock; ?> <br /> <span><?php echo $text_sellunit; ?></span> <?php echo $sellunit; ?></div> <?php if ($price) { ?> <div class="price"><?php echo $text_price; ?> <?php if (!$special) { ?> <?php echo $price; ?> <?php } else { ?> <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span> <?php } ?>
      На этом всё. Good luck!
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.