Форум русской поддержки Joomla!® CMS
09.12.2016, 13:47:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Дополнительное поле для товара в админ панели

 (Прочитано 9650 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stechkin
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 8


« : 04.10.2012, 14:03:18 »

Всем привет!
Иногда нам может потребоваться добавить дополнительное поле для товара в админ панели и выводить его где нибудь в магазине. Для удобства, возьмем поле Артикул и на его основе добавим еще одно.

Шаг 1.
Добавим поле в файле: administrator\components\com_virtuemart\views\product\tmpl\product_edit_information.php строка ~ 44
Код:
<td width="21%" >
  <div style="text-align:right;font-weight:bold;"><?php echo JText::_('COM_VIRTUEMART_PRODUCT_FORM_SKU')?></div>
</td>
<td width="79%" height="2">
  <input type="text" class="inputbox" name="product_sku" id="product_sku" value="<?php echo $this->product->product_sku; ?>" size="32" maxlength="64" />
</td>
//=========наш код для нового поля===
<td width="21%" >
<div style="text-align:right;font-weight:bold;"><?php echo "Артикул2" ?></div>
</td>
<td width="79%" height="2">
<input type="text" class="inputbox" name="product_sku2" id="product_sku2" value="<?php echo $this->product->product_sku2; ?>" size="32" maxlength="64" />
</td>
//================================
теперь у нас есть еще одно поле:


Шаг 2.
На этом шаге сразу добавим поле в БД:
табл. virtuemart_products, добавляем поле с аналогичными атрибутам как у product_sku

Шаг 3.
в файле shopfunction.php 1233 строка:
Код:
$filterArray = array('product_name', 'created_on' ....
добавляем в массив наше поле

Шаг 4.
Выводить так: echo $product->product_sku2;

ШАГ 5 (примечание Dianis)

В файле /administrator/components/com_virtuemart/tables/products.php

Нужно дописать свои дополнительные поля после
Код:
var $product_sku= '';
« Последнее редактирование: 22.10.2012, 20:02:02 от Stechkin » Записан
 
magic7tyle
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 37



« Ответ #1 : 04.10.2012, 15:46:31 »

В целом спасибо. Давно пользуюсь данным способом.
Но есть замечание:

Шаг 3.
в файле shopfunction.php 1233 строка:
Код:
$filterArray = array('product_name', 'created_on' ....
добавляем в массив наше поле
1. Когда перепечатываете, будьте внимательнее, файл называется "shopfunctions.php".
2. В VirtueMart 2.0.10 данные нужно добавлять в строке 1403 вышеуказаного файла, которая вот как выглядит:
Код:
$filterArray = array('product_name', '`p`.created_on', '`p`.product_sku',
Записан
veNick
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 63


« Ответ #2 : 05.10.2012, 15:01:57 »

подскажите пожалуйта, а как выводить это поле в списке товаров в админке? спасибо
с этим разобрался, нужно добавить в administrator\components\com_virtuemart\views\product\tmpl\default.php
после:
Код:
<th ><?php echo $this->sort('product_sku')?></th>
добавить
Код:
<th ><?php echo $this->sort('product_sku2')?></th>

и в этом же файле ~строка 150, после:
Код:
<td><?php echo $product->product_sku; ?></td>
добавить
Код:
<td><?php echo $product->product_sku2; ?></td>

в языковом файле прописать значение для COM_VIRTUEMART_PRODUCT_SKU2

теперь подскажите, как осуществлять поиск по новому полю?
« Последнее редактирование: 08.11.2012, 10:58:57 от veNick » Записан
Dianis
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 36


« Ответ #3 : 19.10.2012, 12:26:56 »

Все это хорошо, но только походу еще что нужно добавить, так как получается работает функция на апдейт дополнительных полей только уже существующего товара. При создании нового товара если заполнить дополнительные поля то значения не сохраняются, нужно повторно заходить в созданный товар и вводить значения в дополнительные поля, только тогда значения сохраняются.

Решение я нашел.

Допишите в первый пост

ШАГ 5

В файле /administrator/components/com_virtuemart/tables/products.php

Нужно дописать свои дополнительные поля после
Код:
var $product_sku= '';

Тода все будет работь как надо.

« Последнее редактирование: 21.10.2012, 01:31:58 от Dianis » Записан
veNick
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 63


« Ответ #4 : 08.11.2012, 11:00:41 »

и все-таки, по новому полю в списке товаров поиск не осуществляется, как поправить?
« Последнее редактирование: 08.11.2012, 11:14:41 от veNick » Записан
ssn
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #5 : 08.11.2012, 11:08:56 »

Поддерживаю вопрос.
Записан
Dianis
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 36


« Ответ #6 : 20.01.2013, 23:30:00 »

Нашел решение что бы по дополнительному полю можно было производить поиск и сортировать.

ШАГ 6
Делаем поиск и сортировку по нашему полю.
Все продолжаем на примере с (product_sku2)

1.  В файле admin/com_virtuemart/models/invertory.php  добавляем  наш product_sku2

Было
Код:
$this->addvalidOrderingFieldName(array('product_name','product_sku','product_in_stock','product_price','product_weight','published'));

Стало
Код:
$this->addvalidOrderingFieldName(array('product_name','product_sku','product_sku2','product_in_stock','product_price','product_weight','published'));

Далее в этом же файле чуть ниже

Было
Код:
$select = ' `#__virtuemart_products`.`virtuemart_product_id`,
     `#__virtuemart_products`.`product_parent_id`,
     `product_name`,
     `product_sku`,
     `product_in_stock`,
     `product_weight`,
     `published`,
     `product_price`';

Стало
Код:
$select = ' `#__virtuemart_products`.`virtuemart_product_id`,
     `#__virtuemart_products`.`product_parent_id`,
     `product_name`,
     `product_sku`,
                                `product_sku2`,
     `product_in_stock`,
     `product_weight`,
     `published`,
     `product_price`';

2. В файле admin/com_virtuemart/models/product.php так же добавляем наш product_sku2

Было

Код:
var $valid_BE_search_fields = array('product_name', 'product_sku', 'product_s_desc', '`l`.`metadesc`');

Стало

Код:
var $valid_BE_search_fields = array('product_name', 'product_sku', 'product_sku2', 'product_s_desc', '`l`.`metadesc`');

3. Не забываем в языковых файлах ru-RU.com_virtuemart.ini (для админки VirtueMart и самого магазина) прописать значения у меня это VIN (делал каталог запчастей)

COM_VIRTUEMART_PRODUCT_SKU2="VIN"
COM_VIRTUEMART_SEARCH_ORDER_PRODUCT_SKU2="VIN"

4. И последнее, в настройках VirtueMart в закладке "Настройка сортировки" нужно включить наше дополнительное поле для поиска и сортировки.

« Последнее редактирование: 20.01.2013, 23:35:44 от Dianis » Записан
Nikoz
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Сообщений: 115


« Ответ #7 : 25.01.2013, 01:50:31 »

Как сделать из этого доп.поля textarea которая будет сохранятся в БД? Сейчас все ок, но вот форматирование не сохраняется..
Записан
foxig
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 9


« Ответ #8 : 06.02.2013, 00:41:44 »

Возник вопрос как вывести дополнительное поле ввиде ссылки на материал...
Сделал его без дополнительного поля в админ панели а так что бы оно автоматически подставлялось.
Идея в том что бы в каждом товаре отображалась строка с ссылкой на информацию о производителе,
в файле com_virtuemart>producdetails>default.php(либо ваш файл шаблона),  (в моем случае после 99 строки) добавил такой код:

Код
<?php if ($this->product->virtuemart_manufacturer_id == 9 )
           echo '<a href="http://uomodom.ru/index.php/component/content/article/118-1">Информация о бренде 1</a>';
      elseif ($this->product->virtuemart_manufacturer_id == 17)
            echo '<a href="/index.php/component/content/article/119-2">Информация о бренде 2</a>';
      elseif ($this->product->virtuemart_manufacturer_id == 16)
           echo '<a href="/index.php/component/content/article/120-3">Информация о бренде 3</a>';
      elseif ($this->product->virtuemart_manufacturer_id == 10)
            echo '<a href="/index.php/component/content/article/121-4">Информация о бренде 4</a>';
      elseif ($this->product->virtuemart_manufacturer_id == 13)
            echo '<a href="/index.php/component/content/article/122-5">Информация о бренде 5</a>';
 ?>

Где $this->product->virtuemart_manufacturer_id == 9 - это id производителя, и получается что у всех товаров с таким производителем будет появляться нужная ссылка на материал с информацией об этом бренде. Так же условие и оператора можно изменить на что угодно, файл, ссылка, или же функция и т.п. и т.д.

Код не особо коммуникабелен, т.к. при добавлении нового производителя придется ручками дописывать код, но для быстрого решения подойдет =))
« Последнее редактирование: 06.02.2013, 00:44:57 от foxig » Записан
niggatub
Давно я тут
****

Репутация: +2/-3
Offline Offline

Сообщений: 205


« Ответ #9 : 11.02.2013, 16:21:59 »

В карточке товара (флайпейдж) поле выводится. все отлично работает. Не выводится на странице списка категории, не пойму в чем затык. В views/category/tmpl/default.php переменную прописал, но ничего не выводит.
update.
Все, разобрался.
« Последнее редактирование: 11.02.2013, 16:33:17 от niggatub » Записан
Larisa
Давно я тут
****

Репутация: +40/-26
Offline Offline

Пол: Женский
Сообщений: 261


je te promets...


« Ответ #10 : 05.03.2013, 14:03:32 »

не выводится новое поле.
Все сделала по пунктам вроде правильно, но на п.4 не получается - в файле /components/com_virtuemart/views/productdetails/tmpl/default.php пишу в нужное мне место echo <? $product->product_sku2; ?> и ничего не меняется... Я что-то напутала?
« Последнее редактирование: 05.03.2013, 14:20:33 от Larisa » Записан
rafaello9
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 141



« Ответ #11 : 22.04.2013, 20:07:45 »

 А сложно будет реализовать новое поле для закачки файлов, фотографий в данном случае?  Покупатель оформляя заказ должен закачать свое фото.
Записан
rafaello9
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 141



« Ответ #12 : 22.04.2013, 20:22:48 »

Одно из решений - это стандартный плагин Joomla для загрузки файлов, но тогда возникает вопрос, как этот плагин впилить или в "настраиваемые поля" или в "поля, заполняемые пользователем". При создании "настраиваемых полей" есть выпадающий список, где присутствуют плагины.
« Последнее редактирование: 22.04.2013, 20:29:45 от rafaello9 » Записан
leonard-251977
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #13 : 27.04.2013, 11:55:51 »

как вывести дополнительное поле ввиде "выпадающий список select"  ?
Записан
leonard-251977
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #14 : 27.04.2013, 11:59:32 »

есть у кого-то есть идея как это реализовать?
Записан
lakshmi
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 177



« Ответ #15 : 12.07.2013, 02:51:47 »

есть у кого-то есть идея как это реализовать?
Попробуйте custom fields там можно с допилом организовать выпадающий список
Записан
dan_klassik
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #16 : 10.08.2013, 03:16:49 »

Присоединяюсь к вопросу. Как сделать из этого доп.поля textarea которая будет сохранятся в БД? Сейчас все ок, но вот форматирование не сохраняется...
Записан
MetaSpirit
Живу я здесь
******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 1383


R.A.S.Lab[.org]


« Ответ #17 : 11.08.2013, 13:36:28 »

Можете попробовать организовать связку: ZOO+ZOOvirtue+VirtueMart, каталог организовываете на ZOO, а с помощью ZOOvirtue делаете из него магазин. Как известно в ZOO можете насоздавать множество полей, которіе нужно.
Записан
Максим Пишняк
Живу я здесь
******

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 848


Подразделение Virtuemart Украина


« Ответ #18 : 18.08.2013, 16:50:27 »

Могу также предложить эти пользовательские расширения:
1. VirtueMart textarea custom field от Daycounts
2. VirtueMart 2 textarea product custom field от MC Web Design
Записан
Tolik51
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #19 : 26.08.2013, 06:55:37 »

 В компоненте CSVi обновляю таблицы и добавляю их в импорт
кто знает как связать с CSVi?
При импорте выдается сообщение: Unsupported COM_CSVI_ОшибкаЭти поля не поддерживаются CSVI VirtueMart

    product_sku2
    product_sku3
    product_sku4
Information    COM_CSVI_Внимание    Эти поля не поддерживаются.
Записан
Максим Пишняк
Живу я здесь
******

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 848


Подразделение Virtuemart Украина


« Ответ #20 : 28.08.2013, 23:47:47 »

Tolik51, нет проблем вам помочь, но не могли бы вы создать СВОЮ тему для СВОЕГО отдельного вопроса?
Записан
crazycat2000
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 13


« Ответ #21 : 30.11.2013, 01:24:34 »

Господа и дамы, может кто то подскажет как сделать что бы сохранялось форматирование текста. т.е. если мы добавляем не  sku, а дополнительное описание например. Я так понимаю что при описанном выше подходе плагин TinyMCE, не передает в БД HTML теги. А как сделать что бы передавал?
Спасибо.

Отвечу сам себе:
в файле administrator\components\com_virtuemart\controllers\product.php

находим строчки:
$data = JRequest::get('post');

      if(!class_exists('Permissions')) require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'permissions.php');
      if(Permissions::getInstance()->check('admin')){
         $data['product_desc'] = JRequest::getVar('product_desc','','post','STRING',2);
         $data['product_s_desc'] = JRequest::getVar('product_s_desc','','post','STRING',2);
      }

и вписываем туда свое поле:

$data = JRequest::get('post');

      if(!class_exists('Permissions')) require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'permissions.php');
      if(Permissions::getInstance()->check('admin')){
         $data['dop_pole'] = JRequest::getVar('dop_pole','','post','STRING',2);
         $data['product_desc'] = JRequest::getVar('product_desc','','post','STRING',2);
         $data['product_s_desc'] = JRequest::getVar('product_s_desc','','post','STRING',2);
      }

Вся, счастье есть... Azn
« Последнее редактирование: 30.11.2013, 02:02:33 от crazycat2000 » Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #22 : 24.02.2014, 13:15:48 »

Подскажите возможно вывести в списке заказов дополнительное поле "Желаемая дата доставки"


Нашел такую тему
http://beagler.ru/virtuemart/dobavlyaem-v-oformlenie-zakaza-datu-i-vremya-dostavki.html
но там под первый VirtueMart

подскажите можно осуществить это все на VirtueMart 2
Записан
lustoff
Осваиваюсь на форуме
***

Репутация: +4/-1
Offline Offline

Сообщений: 89


« Ответ #23 : 08.05.2014, 12:51:14 »

Здравствуйте!
Помогите, пожалуйста. Направьте в нужную сторону.
Использую ВМ версии 2.6.0
Делаю магазин автозапчастей. Нужно выводить каталожный номер и нужна возможность поиска по нему.
Для импорта хочу использовать CSVI Free 5.15
Сначала думал использовать под каталожный номер поле "Product SKU", но не у всех наименований он прописан (и теоретически может повторяться).
Поэтому "Product SKU" будет артикулом (1,2,3,...9999)

В карточке товара вижу поле "GTIN (EAN,UPC)". Хорошо - не нужно добавлять новое поле. Пусть будет каталожным номером.
В настройках магазина "Настройки - Настройки - Настройки сортировки" нет этого поля, чтоб можно его было активировать для поиска (и не ищет его при поиске на Фронтэнде).
Думал сделать так, как описано тут http://joomlaforum.ru/index.php/topic,230522.msg1265830.html#msg1265830 , но не нашел даже файла "invertory.php"

Подскажите, пожалуйста, куда копать
Записан
lustoff
Осваиваюсь на форуме
***

Репутация: +4/-1
Offline Offline

Сообщений: 89


« Ответ #24 : 09.05.2014, 11:11:33 »

Похоже, что нужно было выполнить только шаг 3 http://joomlaforum.ru/index.php/topic,230522.msg1206182.html#msg1206182 для версии 2.6.0
После этого поле сразу появилось в админке. По нему можно теперь искать и сортировать.
Записан
crazycat2000
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 13


« Ответ #25 : 30.07.2014, 00:08:30 »

Доброго времени суток.
Проблема с полями. На этот раз VM версия 2.0.26d  + Joomla 2.5
Добавил поля как обычно. но при попытке сохранить товар с заполненными полями ругаеться что не находит поле в таблице lvfro_virtuemart_products_ru_ru нет нужного поля. Добавил. Сохраняет теперь туда, а читает из lvfro_virtuemart_products. Удалил скопировав содержимое доп. поля из lvfro_virtuemart_products. С товарами теперь все ок, но вот незадача. При попытке менять настройки магазина, любые. Он присваивает моим полям тип char длинной 255 символов.
Вопрос один как лечить?
Спасибо.
Записан
strongest
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #26 : 03.10.2014, 12:56:34 »

Подскажите как можно создать форму с ассоциативным массивом? Хочу создать форму с авто заполнением наименования на основе выбранной категории, подкатегории и статического названия товара.

К примеру выбрать:
категорию запчасти->вывести список статических наименований в категории и чекбоксом выбрать нужную запчасть. Запчасти для каждой категории свои должны быть заранее быть в базе.
Затем выбрать Марку авто, Модель авто. Все это скомпонировать в поле наименование.

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

Кто знает, отпишитесь. очень полезная штука была бы и не только для автомобильной тематики но и для других направлений где требуется постоянное наполнение почти одинаковых товаров.
Записан
lakshmi
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 177



« Ответ #27 : 14.01.2015, 12:21:10 »


В карточке товара вижу поле "GTIN (EAN,UPC)". Хорошо - не нужно добавлять новое поле. Пусть будет каталожным номером.
В настройках магазина "Настройки - Настройки - Настройки сортировки" нет этого поля, чтоб можно его было активировать для поиска (и не ищет его при поиске на Фронтэнде).
Думал сделать так, как описано тут http://joomlaforum.ru/index.php/topic,230522.msg1265830.html#msg1265830 , но не нашел даже файла "invertory.php"

Подскажите, пожалуйста, куда копать
Я недавно все процедуры повторил для VirtueMart 2.6.14 и все работает и отображаются в админке нужные поля, возможно что файл invertory.php остался у меня с прошлой версии так я ставил не сразу 2.6.14 а обновлялся до 2.6.14 с более старой. Попробуйте либо игнорировать либо добавить с последней где он присутствует версии.
Либо могу дать свой если он поможет.
Записан
Eholov
Осваиваюсь на форуме
***

Репутация: +13/-0
Offline Offline

Сообщений: 146



« Ответ #28 : 08.02.2016, 21:46:07 »

А вот у меня в VirtueMart 2.6.6  нет этого файла. Нашел его в установочном файле VirtueMart 2.0.24, в VirtueMart 2.0.26 его уже нет, закинул, изменил по инструкции. Не помогает. Подскажите, может кто знает где добавляются поля в поиск? мне надо добавить стандартное поле metakey в поиск.

Нашел решение. В файле administrator\components\com_virtuemart\helpers\shopfunctions.php в строку $filterArray = array('product_name', 'created_on' .... добавляем название нужного поля. Если поле находится в таблице virtuemart_products_ru_ru, то название поля без p. Если поле находится в таблице  virtuemart_products то только название поля. У меня это 'metakey' И все. В VirtueMart - Настройки - Доступные поля для поиска - появляется ваше поле, которое надо отметить.
« Последнее редактирование: 09.02.2016, 10:53:13 от Eholov » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet