Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Рекомендованные сообещёния

 

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

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

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

Задача:

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

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

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

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

 

 

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

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

ну тогда на ваш страх и риск.... вот ик у меня: версия 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 негдели спустя...

Спасипотому что, за столь полезный мануал!

 

Вот бы ещё подобный по Опциям.

Пыиюсь по аналогии, но пока не выходит.

Ссылка на комменирий
Погделиться на других сайих


  • 3 негдели спустя...

Не создавал новое, а взял поле ean и сгделал его textarea, всё в норме только редактор не получаеться к нему прикрутить,  кто подскажет может кто гделал?

Ссылка на комменирий
Погделиться на других сайих


  • 1 месяц спустя...

 

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

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

/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 месяц спустя...

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

 

-dIAMBjLRg8.jpg

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

Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...

Супер способ спасипотому что!

 

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

 

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 месяца спустя...

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

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

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

Ссылка на комменирий
Погделиться на других сайих


  • 2 месяца спустя...

Добрый гдень. 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 негдели спустя...

Добрый гдень. 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 месяца спустя...

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

Ссылка на комменирий
Погделиться на других сайих


  • 3 месяца спустя...

С 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 месяц спустя...

подскажите пж 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 месяца спустя...

Подскажите пожалуйси, как сгделать дополнительное текстовое поле возле каждого дополнительного изображения товара?

Ссылка на комменирий
Погделиться на других сайих


  • 1 год спустя...
  • 3 негдели спустя...

Всем привет!

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

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

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

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

СПАСИБО!

 

 

Ссылка на комменирий
Погделиться на других сайих


  • 6 месяэтов спустя...
  • 2 месяца спустя...
В 16.11.2018 в 18:35, splka сказал:

Для 2.3 надо добавить ещё в $data['products'][]

 А можно чуть поконкретнее, пожааалуйси :?

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.