0 Пользователей и 1 Гость просматривают эту тему.
  • 28 Ответов
  • 16312 Просмотров
*

Stechkin

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

Шаг 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

  • Осваиваюсь на форуме
  • 37
  • 1 / 0
В целом спасибо. Давно пользуюсь данным способом.
Но есть замечание:

Шаг 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

  • Захожу иногда
  • 63
  • 0 / 0
подскажите пожалуйта, а как выводить это поле в списке товаров в админке? спасибо
с этим разобрался, нужно добавить в 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

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

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

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

ШАГ 5

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

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

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

« Последнее редактирование: 21.10.2012, 01:31:58 от Dianis »
*

veNick

  • Захожу иногда
  • 63
  • 0 / 0
и все-таки, по новому полю в списке товаров поиск не осуществляется, как поправить?
« Последнее редактирование: 08.11.2012, 11:14:41 от veNick »
*

ssn

  • Новичок
  • 1
  • 0 / 0
Поддерживаю вопрос.
*

Dianis

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

ШАГ 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

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

foxig

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

Код: php
<?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

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

Larisa

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

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
 А сложно будет реализовать новое поле для закачки файлов, фотографий в данном случае?  Покупатель оформляя заказ должен закачать свое фото.
*

rafaello9

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

leonard-251977

  • Новичок
  • 5
  • 2 / 0
как вывести дополнительное поле ввиде "выпадающий список select"  ?
*

leonard-251977

  • Новичок
  • 5
  • 2 / 0
есть у кого-то есть идея как это реализовать?
*

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0
есть у кого-то есть идея как это реализовать?
Попробуйте custom fields там можно с допилом организовать выпадающий список
*

dan_klassik

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

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Можете попробовать организовать связку: ZOO+ZOOvirtue+VirtueMart, каталог организовываете на ZOO, а с помощью ZOOvirtue делаете из него магазин. Как известно в ZOO можете насоздавать множество полей, которіе нужно.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Могу также предложить эти пользовательские расширения:
1. VirtueMart textarea custom field от Daycounts
2. VirtueMart 2 textarea product custom field от MC Web Design
*

Tolik51

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

    product_sku2
    product_sku3
    product_sku4
Information    COM_CSVI_Внимание    Эти поля не поддерживаются.
*

Максим Пишняк

  • Давно я тут
  • 837
  • 35 / 0
Tolik51, нет проблем вам помочь, но не могли бы вы создать СВОЮ тему для СВОЕГО отдельного вопроса?
*

crazycat2000

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Господа и дамы, может кто то подскажет как сделать что бы сохранялось форматирование текста. т.е. если мы добавляем не  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);
      }

Вся, счастье есть... :)
« Последнее редактирование: 30.11.2013, 02:02:33 от crazycat2000 »
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 0
Подскажите возможно вывести в списке заказов дополнительное поле "Желаемая дата доставки"


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

подскажите можно осуществить это все на VirtueMart 2
*

lustoff

  • Захожу иногда
  • 137
  • 4 / 1
Здравствуйте!
Помогите, пожалуйста. Направьте в нужную сторону.
Использую ВМ версии 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

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

crazycat2000

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

strongest

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

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

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

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

lakshmi

  • Захожу иногда
  • 188
  • 5 / 0

В карточке товара вижу поле "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

  • Захожу иногда
  • 170
  • 14 / 0
А вот у меня в 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, 09:53:13 от Eholov »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сортировка По наличию товара - сначала По убыванию в VirtueMart

Автор rsn

Ответов: 6
Просмотров: 2165
Последний ответ 02.10.2022, 19:22:56
от SolopoV
Открытие карточки товара VirtueMart3 в новом окне из категории

Автор djed9

Ответов: 2
Просмотров: 1375
Последний ответ 16.07.2021, 09:06:35
от djed9
Как в RSS ленту VirtueMart 3 добавить дополнительные изображения товара?

Автор Slava77

Ответов: 2
Просмотров: 1512
Последний ответ 06.06.2021, 01:12:01
от Slava77
Дробное количество товара в VM3

Автор alikon1

Ответов: 5
Просмотров: 2129
Последний ответ 12.03.2020, 14:16:42
от erbsen
Продублировать фото товара после описания

Автор djed9

Ответов: 3
Просмотров: 616
Последний ответ 11.02.2020, 13:16:46
от djed9