Фон сайта

+7 (343) 221-30-69

Декабря
10
2018

Установка одинаковых свойств товаров в Virtuemart

Рейтинг:   / 1
ПлохоОтлично 

Задача: Нужно было для каждой из групп товаров проставить разные свойства.

Решение: Само собой делать это "вручную" не дело.

Поэтому нашёл такой простой способ, как обновление данных через SQL-запрос.

Запрос выглядит примерно так: 

 update `jos_vm_product` set `attribute` = 'Размер,15,16,17;Вставка,Аметист,Гранат,Жемчуг,Изумруд,Топаз,Раух топаз,Хризолит,Цитрин'; 

jos_vm_product - таблица в которой редактируем

attribute - поле, в которое вносим изменения

Данный запрос заполнит свойства всех товаров одинаково. В нашем случае заполнит у всех одинаковый размер и вставку.

Добавив к запросу следующее условие:

where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 6);

заполнятся только товары из категории с category_id=6 (из таблицы jos_vm_product_category_xref выбираются ID товара, у которых ID категории равен шести)

Свойства можно записать в следующем виде:

`свойство1,позиция1.1[+100],позиция1.2[=300];свойство2,позиция2.1[-200],позиция2.2[=350]`

В квадратных скобках указывается изменение цены от выбранного параметра.

Недостаточно прав для комментирования

Комментарии   

 
Delik
0 #13 Delik 25.12.2012 20:03
То что доктор прописал, спасибо! 8)
Сообщить модератору
 
 
Kumigy
0 #12 Kumigy 12.11.2012 17:17
В общем самый примитивный запрос будет выглядеть так:

update `jos_vm_product ` set `attribute` = concat(`attribu te`,';Вкус,Слад кий,Горький') where `attribute`!='';

этот запрос склеит строки, если в ячейке attribute что-то уже есть.
Сообщить модератору
 
 
zzer
0 #11 zzer 12.11.2012 15:27
Kumigy, суть я понимаю, но с запросами и их написанием у меня сложно. Можете помочь составить правильный запрос?
Сообщить модератору
 
 
Kumigy
0 #10 Kumigy 12.11.2012 11:27
Ну тут всё просто, сделай проверку на пустой атрибут.
Если строка пустая, тогда выполняй запрос без конката.
Если в строке что-то есть тогда склеивай строки)
Сообщить модератору
 
 
zzer
0 #9 zzer 10.11.2012 17:20
Запрос:
update `jos_vm_product ` set `attribute` = concat(`attribute`,'Вкус,Сладкий,Горький');

если поставить точку с запятой перед Вкус, то есть:
update `jos_vm_product ` set `attribute` = concat(`attribute`,';Вкус,Сладкий,Горький');

то столбец attribute, где есть свойства и позиции, выглядит как надо. Если у какого-то товара нет свойств и позиций, то столбец attribute заполнен как ;Вкус,Сладкий,Горький
т.е. точка с запятой потом отображается в карточке товара. Есть выход?
Сообщить модератору
 
 
Kumigy
0 #8 Kumigy 06.11.2012 00:39
Ты кинь сюда запрос свой, скорее всего упустил точко с запятой.
Сообщить модератору
 
 
zzer
0 #7 zzer 05.11.2012 20:45
Нет, с таким запросом получается вот что, пример:

вместо вот этого >

Цвет:
-Зеленый (+100 руб.)
-Красный

Вкус:
-Сладкий
-Горький

получается это >

Цвет:
-Зеленый (+100 руб.)
-КрасныйВкус
-Сладкий
-Горький
Сообщить модератору
 
 
Kumigy
0 #6 Kumigy 05.11.2012 20:07
update `jos_vm_product ` set `attribute` = concat(`attribu te`,'новый параметр');

На вскидку как-то так должно получится.
функция concat объединяет строки.
Сообщить модератору
 
 
Kumigy
0 #5 Kumigy 05.11.2012 19:36
Если до завтра потерпит, попробую написать тебе запрос.
Сообщить модератору
 
 
zzer
0 #4 zzer 05.11.2012 16:00
Мне нужно не заменить свойство, а добавить к существующим еще одно. Напишите как должен выглядеть запрос?
Сообщить модератору
 

Копилка знаний


Сайтостроение