Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

 

Дополнительные поля к описанию продукта? Платные модули? Не обязательно,

Вашему вниманию способ, протестированный на магазине под управлением OpenCart версии 1.5.4.1.

P.S. Не забываем про backup оригинальных файлов :-)

Задача:

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

Шаг 1. База данных. Создание столбца таблицы "product"

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

....
На этом всё. Good luck!

 

 

Nazgulov огромное спасибо, все получилось и прекрасно работает.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

ну тогда на ваш страх и риск.... вот так у меня: версия CSV_Price_Pro-1.5-2.1.8c доп.поле в бд price_qnt тип decimal(15,4), поле в импорт/экспорт файле _PRICEQNT_

1 admin/controller/module/csvprice_pro.php строка 244

array('uid' => '_PRICEQNT_', 'name' => 'Price_qnt'),
2 admin/language/russian/module/csvprice_pro.php строка 33
$_['_PRICEQNT_'] = 'цена за шт.:';
3 самое сложное (повторюсь что делал по аналогии с _PRICE_, если внимательно посмотрите то перед моими вставками увидите подобный блок для поля _PRICE_): admin/model/tool/csvprice_pro.php строка 225:
if(isset($this->field_caption['_PRICEQNT_'])) { $price_qnt = (float)$data[$this->field_caption['_PRICEQNT_']]; if ( $this->setting['calc_mode'] == 1 ) { if($this->setting['calc_value'][0] != '' && $this->setting['calc_value'][0] > 0 ) { $price_qnt = $price_qnt * (float)$this->setting['calc_value'][0]; } if($this->setting['calc_value'][1] != '' && $this->setting['calc_value'][1] > 0 ) { $price_qnt = $price_qnt * (float)$this->setting['calc_value'][1]; } } elseif ( $this->setting['calc_mode'] == 2 ) { if($this->setting['calc_value'][0] != '' && $this->setting['calc_value'][0] > 0 ) { $price = $price_qnt + (float)$this->setting['calc_value'][0]; } if($this->setting['calc_value'][1] != '' && $this->setting['calc_value'][1] > 0 ) { $price = $price_qnt + (float)$this->setting['calc_value'][1]; } } $sql .= ' price_qnt = \'' . $price_qnt . '\','; }
строка 407:
price_qnt = 0, price_qnt_prefix = \'+\',
строка 503:
if(isset($this->field_caption['_PRICEQNT_'])) { $price_qnt = (float)$data[$this->field_caption['_PRICEQNT_']]; if ( $this->setting['calc_mode'] == 1 ) { if($this->setting['calc_value'][0] != '' && $this->setting['calc_value'][0] > 0 ) { $price_qnt = $price_qnt * (float)$this->setting['calc_value'][0]; } if($this->setting['calc_value'][1] != '' && $this->setting['calc_value'][1] > 0 ) { $price_qnt = $price_qnt * (float)$this->setting['calc_value'][1]; } } elseif ( $this->setting['calc_mode'] == 2 ) { if($this->setting['calc_value'][0] != '' && $this->setting['calc_value'][0] > 0 ) { $price_qnt = $price_qnt + (float)$this->setting['calc_value'][0]; } if($this->setting['calc_value'][1] != '' && $this->setting['calc_value'][1] > 0 ) { $price_qnt = $price_qnt + (float)$this->setting['calc_value'][1]; } } $sql .= ' price_qnt = \'' . $price_qnt . '\','; }
строка 702:
price_qnt = 0, price_qnt_prefix = \'+\',
строка 784:
if(isset($data['fields_set']['_PRICEQNT_'])) { $_fields[] = 'TRUNCATE(p.price_qnt, 2) AS price_qnt'; $ods_title[] = '_PRICEQNT_'; }
вроде ничего не забыл....

 

Код на строке 407 лишний, относится к другой таблице

Надіслати
Поділитися на інших сайтах


Здравствуйте, добавил дополнительное поле, по Вашему описанию, оно отображается на всех страничках товара, подскажите, как прописать, чтобы не заполненное не отображалось?

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...
  • 3 weeks later...
  • 1 month later...

 

Попробуйте так:

Отображение поля продукта в категории:

/catalog/controller/product/category.php

'thumb'       => $image,
'name'        => $result['name'],

'sellunit'         => (empty($result['sellunit'])) ? '' : $this->language->get('text_sellunit') .' '. $result['sellunit'],

/catalog/language/russian/product/category.php

Внести аналогичные изменения во все языковые файлы задействованных языков, например /catalog/language/ukrainian/product/category.php

$_['text_price']        = 'Цена:'; 
$_['text_tax']          = 'Без НДС:';

$_['text_sellunit']     = 'Стоимость за:'; 

/catalog/view/theme/%yourtheme%/template/product/category.tpl

Расширяем блок "name".

<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
<?php echo $product['sellunit']; ?></div>

Спасибо тебе мой дорогой друг, хороший ты человек! Спасибо тебе большое БОЛЬШОЕ !!!!! ПОЛУЧИЛОСЬ ПОЛУЧИЛОСЬ!!! НА ФОРУМЕ ЗАПРЕЩЕН МАТ? В данном случае мат был бы благим! Спасибо большое!)))!!! СПА-СИ-БО ДРУГ!

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Подскажите пожалуйста, как вывести дополнительное поле в этому месте. Просто выводить, без возможности редактировать и тд.

 

-dIAMBjLRg8.jpg

Буду очень благодарен за помощь! 

Надіслати
Поділитися на інших сайтах


  • 2 months later...

Супер способ спасибо!

 

Подскажите, а можно ли:

 

1. Задать это поле как TextArea, что бы можно было много текста туда вписать;

2. Вводить в это поле html-код, что бы на странице товара он корректно обрабатывался?

Надіслати
Поділитися на інших сайтах


С дополнительнительными полями все понятно. На ocStore-1.5.5.1.2 аботает отлично. Но возникает такой вопрос.

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

Если просто вставить в ваш шаблон/template/product/compare.tpl

              <tr>
                <td><b><?php echo $text_field1; ?></b></td>
                <td><?php echo $field1; ?></td>
              </tr>
              <tr>
                <td><b><?php echo $text_field2; ?></b></td>
                <td><?php echo $field2; ?></td>
              </tr>
              <tr>
                <td><b><?php echo $text_field2; ?></b></td>
                <td><?php echo $field2; ?></td>
              </tr>
              <tr>
                <td><b><?php echo $text_field3; ?></b></td>
                <td><?php echo $field3; ?></td>
              </tr>
              <tr>
                <td><b><?php echo $text_field4; ?></b></td>
                <td><?php echo $field4; ?></td>
              </tr>
              <tr>
                <td><b><?php echo $text_field5; ?></b></td>
                <td><?php echo $field5; ?></td>
              </tr>

То получится что у нас не определен индефикатор соответственно field1-5.

Где их надо прописать чтоб они отображались в сравнении?

Надіслати
Поділитися на інших сайтах


доброго времени суток!!

 

opencart 1.5.5.1.1 дополнительное поле в админке создал и вывел в карточке товара product.tpl

 

теперь хочу вывести это дополнительное поле в корзине

 

в контроллере корзины подгружаю модель 

$this->load->model('catalog/product');

затем делаю вызов функции

 $this->data['products'][] = array(

                    'key'      => $product['key'],
                    'thumb'    => $image,
                    'name'     => $product['name'],
                    'sku'      => $product['sku'],
                    'colorattr' => $this->model_catalog_product->getProduct($result['product_id']),
                    'option'   => $option_data,
                    'quantity' => $product['quantity'],
                    'stock'    => $product['stock'],
                    'reward'   => ($product['reward'] ? sprintf($this->language->get('text_reward'), $product['reward']) : ''),
                    'price'    => $price,
                    'total'    => $total,
                    'href'     => $this->url->link('product/product', 'product_id=' . $product['product_id'])
                );

в шаблоне вставляю в нужное место

<div class="colorattr"> 
	 Цвет:<b><?php echo $colorattr; ?></b>	  
 </div>

ничего не выходит....может я что то упустил? подскажите пожалуйста

Надіслати
Поділитися на інших сайтах


Доброго времени суток!

Кто нить сталкивался с такой проблемой:

есть сайт car-nstrument.ru, на котором до меня что-то делали, в т.ч. поставили модуль Mega Filter (OcStore 1.5.4.1) и добавили в админке что бы подгружались картинки, вроде бы все. Так вот сайт как бы работает, фильтр выпадает все ОК, но в админке пошли траблы: заходишь в товары и белый экран, в модулях Рекомендуемые - таже история. Меняю всю папку Vqmod сайта на оригинал, все работает но отрубается фильтр.

Самое иинтересное, что иногда проскакивет и все работает, видать из-за кэша, потом очистишь кэш и все не работает

Может сумбурно, но если что задавайте вопросы, постараюсь рассказать

Надіслати
Поділитися на інших сайтах


Доброго времени суток!

Кто нить сталкивался с такой проблемой:

есть сайт car-nstrument.ru, на котором до меня что-то делали, в т.ч. поставили модуль Mega Filter (OcStore 1.5.4.1) и добавили в админке что бы подгружались картинки, вроде бы все. Так вот сайт как бы работает, фильтр выпадает все ОК, но в админке пошли траблы: заходишь в товары и белый экран, в модулях Рекомендуемые - таже история. Меняю всю папку Vqmod сайта на оригинал, все работает но отрубается фильтр.

Самое иинтересное, что иногда проскакивет и все работает, видать из-за кэша, потом очистишь кэш и все не работает

Может сумбурно, но если что задавайте вопросы, постараюсь рассказать

Не могу отредактировать пост

добавляю где ошибку выдает

Cannot redeclare ModelCatalogProduct::getProductMainCategoryId() in /vqmod/vqcache/vq2-admin_model_catalog_product.php on line 666

Надіслати
Поділитися на інших сайтах


  • 2 months later...

Здравствуйте, добавил дополнительное поле, по Вашему описанию, оно отображается на всех страничках товара, подскажите, как прописать, чтобы не заполненное не отображалось?

Всем доброго времени суток!!!!!

подскажите, как же все таки это можно реализовать????

Надіслати
Поділитися на інших сайтах


  • 2 months later...

Добрый день. OC 1.5.6. Все сделал по инструкции. Поле "Стоимость за" появилась в карточке товара, но:

1. Выдается  ошибка - Notice: Undefined index: sellunit in /home/users/b/balin-m/domains/pack-store.ru/vqmod/vqcache/vq2-catalog_controller_product_product.php on line 284

2. Значение присвоенное в админке не показывается.

В чем может быть проблема?

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

Добрый день. OC 1.5.6. Все сделал по инструкции. Поле "Стоимость за" появилась в карточке товара, но:

1. Выдается  ошибка - Notice: Undefined index: sellunit in /home/users/b/balin-m/domains/pack-store.ru/vqmod/vqcache/vq2-catalog_controller_product_product.php on line 284

2. Значение присвоенное в админке не показывается.

В чем может быть проблема?

 

Такая же проблема... 

Надіслати
Поділитися на інших сайтах

  • 2 months later...

дополнительное поле это по примеру поля для цены в админке? например можно добавить поле - количество цветов и заполнить только значение поля?

Надіслати
Поділитися на інших сайтах


  • 3 months later...

С special.php все получилось, а вот с featured.php беда. Ни ошибки, ничего... просто нет поля. Даже с bestseller.php работает, но не с featured.php. Есть ли у кого аналог модуля рекомендуемые? Главное иметь возможность добавлять товары самому

у меня тоже самое было ... но потом заметил что общая переменная в этом файле отличается не $result а $product_info

т.е. в файле /catalog/controller/module/featured.php нужно писать не:

'sellunit' => (empty($result['sellunit'])) ? '' : $this->language->get('text_sellunit') .' '. $result['sellunit'],

а

 

'sellunit'         => (empty($product_info['sellunit'])) ? '' : $this->language->get('text_sellunit') .' '. $product_info['sellunit'],

Надіслати
Поділитися на інших сайтах


  • 1 month later...

подскажите пж opencart 2.1.0.2.1 

 

Notice: Undefined variable: text_sellunit in /www/catalog/view/theme/unishop/template/product/product.tpl on line 58

 

<div class="row">
<?php if ($manufacturer) { ?><div class="col-sm-6 col-md-6" itemprop="brand"><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></div><?php } ?>
<div class="col-sm-6 col-md-6" itemprop="model"><?php echo $text_model; ?> <?php echo $model; ?></div>
<?php if ($reward) { ?><div class="col-sm-6 col-md-6"><?php echo $text_reward; ?> <?php echo $reward; ?></div><?php } ?>
<div class="col-sm-6 col-md-6"><?php echo $text_stock; ?> <?php echo $stock; ?></div>
                    <br />
58 <div class="col-sm-6 col-md-6"><?php echo $text_sellunit; ?> <?php echo $sellunit; ?></div>
<?php if ($points) { ?><div class="col-sm-6 col-md-6"><?php echo $text_points; ?> <?php echo $points; ?></div><?php } ?>
<?php if ($sku) { ?><div class="col-sm-6 col-md-6"><?php echo $sku_text; ?>: <?php echo $sku; ?></div><?php } ?>
<?php if ($upc && !isset($upc_disabled)) { ?><div class="col-sm-6 col-md-6"><?php echo $upc_text; ?>: <?php echo $upc; ?></div><?php } ?>
<?php if ($ean && !isset($ean_disabled)) { ?><div class="col-sm-6 col-md-6"><?php echo $ean_text; ?>: <?php echo $ean; ?></div><?php } ?>
<?php if ($jan && !isset($jan_disabled)) { ?><div class="col-sm-6 col-md-6"><?php echo $jan_text; ?>: <?php echo $jan; ?></div><?php } ?>
<?php if ($isbn && !isset($isbn_disabled)) { ?><div class="col-sm-6 col-md-6"><?php echo $isbn_text; ?>: <?php echo $isbn; ?></div><?php } ?>
<?php if ($mpn && !isset($mpn_disabled)) { ?><div class="col-sm-6 col-md-6"><?php echo $mpn_text; ?>: <?php echo $mpn; ?></div><?php } ?>
<?php if ($location) { ?><div class="col-sm-6 col-md-6"><?php echo $location_text; ?>: <?php echo $location; ?></div><?php } ?>
</div>
Надіслати
Поділитися на інших сайтах


  • 2 months later...
  • 1 year later...
  • 3 weeks later...

Всем привет!

Мужики, почитал всё, в голове каша!

Помогите или ткните пальцем на чёткую инструкцию.

У меня ocStore 2.3 шаблон NewStore, товар разный, нужны метры, кило, граммы, литры и минимальный объем (партия). + цена от объема.

Может кто помочь???

СПАСИБО!

 

 

Надіслати
Поділитися на інших сайтах


  • 6 months later...
  • 2 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.