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

skyscraper

  • Давно я тут
  • 252
  • 45
Всем привет, чёт не нашёл на форуме как так сделать, пришлось по логике... php и sql знаю не много, но расскажу, мож пригодится таким же как я...
в общем заходим в phpMyAdmin, выбираем нашу базу, потом заходим в SQL и пишем запрос:
Код
UPDATE jos_vm_product_price SET product_price = product_price+100
запускаем и имеем увеличение цены на 100 ед.
« Последнее редактирование: 11.07.2010, 17:00:47 от skyscraper »
*

skyscraper

  • Давно я тут
  • 252
  • 45
если надо только для товаров дешевле 1000
Код
UPDATE `jos_vm_product_price` SET product_price = product_price+100 WHERE (product_price <1000)
*

xTMx

  • Осваиваюсь на форуме
  • 146
  • 4
по хорошему  была уже мысль написать типовые запросы в базе, чтоб неопытные сразу смотрели то что их интересует
типа
"разом изменить шаблоны категорий товаров\флайпэйджев и тд"
и прочие подобные фичечки)
но никак руки не дойдут)
*

skyscraper

  • Давно я тут
  • 252
  • 45
переименовал тему, пиши что знаешь, все команды будут полезны =)
*

Naima

  • Осваиваюсь на форуме
  • 28
  • 2
Ой! Какая полезная тема и какой замечательный команд!! Спасибо за тему. Буду следить. Может, от себя со временем чего-нить подкину.
*

adjuster

  • Завсегдатай
  • 786
  • 53
Устанавливает ярлычок NEW для всего товара ( в теме http://joomlaforum.ru/index.php/topic,119541.0.html)
UPDATE jos_vm_product SET product_is_new = 1

Ноль, соответственно, убирает ярлычок.

Также можно управлять всеми другими полями - цена, краткое описание и т.д.

Прошу помощи - необходимо в запросе выбрать конкретную категорию - то есть управлять полями товара только в определенной категории.

- ниже уже есть ответ.
« Последнее редактирование: 12.09.2010, 21:54:20 от adjuster »
*

igoryk

  • Осваиваюсь на форуме
  • 199
  • 11
Когдато сам долго искал - может кому сгодиться...
запрос БД на регионы Украини, тобиш области... Открываем phpMyAdmin, переходим в базу даных и в вкладке SQL делаем SQL-запрос

Код
DELETE FROM `jos_vm_state` WHERE `country_id` = 220;
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Автономна Республіка Крим', 'AK', '01');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Вінницька область', 'VN', '02');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Волинська область', 'VL', '03');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Дніпропетровська область', 'DN', '04');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Донецька область', 'DO', '05');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Житомирська область', 'GT', '06');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Закарпатська область', 'ZK', '07');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Запорізька область', 'ZP', '08');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Івано-Франківська область', 'IF', '09');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Київська область', 'KY', '10');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Кіровоградська область', 'KR', '11');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Луганська область', 'LY', '12');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Львівська область', 'LV', '13');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Миколаївська область', 'MK', '14');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Одеська область', 'OD', '15');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Полтавська область', 'PL', '16');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Рівненська область', 'RV', '17');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Сумська область', 'SM', '18');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Тернопільська область', 'TR', '19');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Харківська область', 'HK', '20');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Херсонська область', 'HS', '21');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Хмельницька область', 'HM', '22');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Черкаська область', 'CHK', '23');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Чернівецька область', 'CHN', '24');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'Чернігівська область', 'CHH', '25');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'м Київ', 'KYEV', '26');
INSERT INTO `jos_vm_state` VALUES ('', 220, 'м Севастополь', 'SEV', '27');

нажимаем ОК и и меем все области Украины
*

Soil

  • Осваиваюсь на форуме
  • 51
  • 10
  • это я
Хорошую тему создал. Некоторые вещи я бы хотел реализовать у себя в программе: http://joomlaforum.ru/index.php/topic,101686.0.html
*

xTMx

  • Осваиваюсь на форуме
  • 146
  • 4
Вот еще держите
Код
update  jos_vm_category set products_per_row=4;
Делает так,чтобы во всех категориях изменился параметр "показать товаров на строке" ( стоит 4, но можно поставить нужное кол-во)
и вот еще. если вы поставили на сайте новую тему VirtueMart и хотите выбрать флайпейдж сразу везде
Код
update  jos_vm_category set category_flypage="flypage.tpl";
( вместо flypage.tpl пишем нужное название файла)
*

adjuster

  • Завсегдатай
  • 786
  • 53
xTMx
Красавчег!!
*

adjuster

  • Завсегдатай
  • 786
  • 53
Меняем цену на всем товаре в выбранной категории (строим более сложные запросы):

Цитировать
update `jos_vm_product_price`
set `product_price` = 490
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)

Вставим цену 490 у всего товара из категории 35.
*

skyscraper

  • Давно я тут
  • 252
  • 45
У меня была такая задача, в одной категории было 1000 товаров с детьми, запрос очень долгий, поэтому решил оставить только подкатегории и удалил товары из категории id=21...

Цитировать
DELETE FROM jos_vm_product_category_xref WHERE category_id=21

можно ещё условие вставить where ((category_id>5) AND (category_id<20))
« Последнее редактирование: 10.11.2010, 18:41:35 от skyscraper »
*

andx

  • Осваиваюсь на форуме
  • 111
  • 6
Подскажите пожалуйста команду, которая выставила бы определенную цену на определенный артикул.
Начало Света 2012!
*

adjuster

  • Завсегдатай
  • 786
  • 53
Подскажите пожалуйста команду, которая выставила бы определенную цену на определенный артикул.
Обычно такие вещи делаются проще - через администрирование магазина, но ответ вот:
Код
update `jos_vm_product_price` 
set `product_price` = 490 where `product_id` in (SELECT `product_id` FROM `jos_vm_product` WHERE `product_sku` = 4850)

Где 490  - это цена, 4850 - Актикул товара.
« Последнее редактирование: 13.12.2010, 10:18:28 от adjuster »
*

tom1501

  • Захожу иногда
  • 22
  • 1
а как реализовать запросом скидку 10% на весь товар?
*

adjuster

  • Завсегдатай
  • 786
  • 53
а как реализовать запросом скидку 10% на весь товар?
Наверно так:
Точно так:
UPDATE jos_vm_product_price SET product_price = product_price*0.9

Соотственно, скидка на весь товар в определенной категории:

Цитировать
update `jos_vm_product_price`
set `product_price` = product_price*0.9
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)
« Последнее редактирование: 14.12.2010, 11:32:13 от adjuster »
*

andx

  • Осваиваюсь на форуме
  • 111
  • 6
adjuster
большое спасибо, заплюсовал! Через админку это понятно как белый день.. Мне это нужно для bash скрипта, я с помощью него теперь могу сделать большой список из запросов, где каждая строка будет с индивидуальным артикулом и ценой. Предназначенный для этого CSVimproved работает неадекватно - после изменения цен сбивает производителя у товаров.
Начало Света 2012!
*

tom1501

  • Захожу иногда
  • 22
  • 1
Наверно так:
Точно так:
UPDATE jos_vm_product_price SET product_price = product_price*0.9

Соотственно, скидка на весь товар в определенной категории:


спасибо, но немного не это требуется ))

нужно, чтобы именно скидка на фронте присутствовала (типа старая цена, новая цены, экономия 10%), а не уменьшение цены всех товаров на -10%.
*

flyingspook

  • Moderator
  • 3620
  • 236
Цитировать
нужно, чтобы именно скидка на фронте присутствовала (типа старая цена, новая цены, экономия 10%), а не уменьшение цены всех товаров на -10%.
это в админке выставляется
-цена
и
-цена со скидкой

*

andx

  • Осваиваюсь на форуме
  • 111
  • 6
у кого линукс, держите скрипт для составления списка запросов для изменения цен. Делаете текстовый файл input.txt, в котором каждая строка это артикул и через пробел цена. И этот файл подсовываете в этот скрипт:
Код
cat input.txt | awk '{print "update `jos_vm_product_price` set `product_price` =",$2,"where `product_id` in (SELECT `product_id` FROM `jos_vm_product` WHERE `product_sku` =",dq $1 dq");"}' dq='"' >sql.txt

на выходе получаете файл sql.txt, из которого копируете список запросов и далее употребляете их по назначению :)
Начало Света 2012!
*

adjuster

  • Завсегдатай
  • 786
  • 53
Добавляем товары в категории пачками:

В моем случае по куску имени товара:
Цитировать
update `jos_vm_product_category_xref`
set `category_id` = 143
where `product_id` in (
                       SELECT `product_id`
                       FROM `jos_vm_product`
                       WHERE `product_name` LIKE '%арген%')

Где ID категории = 143
А кусок имени арген (аргентинская шесть)

Цитировать
update `jos_vm_product_mf_xref`
set `manufacturer_id` = 2
where `product_id` in (
                       SELECT `product_id`
                       FROM `jos_vm_product`
                       WHERE `product_name` LIKE '%арген%')
А здесь меняем у этого товара производителя
« Последнее редактирование: 27.01.2011, 12:06:46 от adjuster »
*

bestvinyl

  • Осваиваюсь на форуме
  • 27
  • 2
В своё время форум мне очень помог, но недавно возник вопрос, на который не мог нигде найти ответ: Как не тыкать на каждый товар чтобы установить новую цену или новые свойства, а сделать это "одним щелчком мыши". У меня общее кол-во товаров приближается к 3000, внутри каждой категории 50-200 товаров и иногда возникает желание превратить два дня работы в один час:)
Про цену нашел информацию в интернете:
Заходите в phpmyadmin и пишите запрос к БД:
update `jos_vm_product_price`
set `product_price` = 490
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)
490- новая цена, 35- id категории, товары в которой приобретают эту новую цену

Изменение свойств:
update `jos_vm_product` set `attribute` = 'Добавить в комплект защитную пленку на экран,Прозрачная защитная пленка[+99],Без защитной пленки'
where `product_id` in (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = 35)
'....'- новые свойства в виде 'свойство1,позиция1.1[+200],позиция1.2[=456];свойство2,позиция2.1[-200],позиция2.2[=4056]', 35- id категории, товары в которой приобретают установленные свойства

Пример, как можно использовать возможности свойств: http://www.bestvinyl.ru/shop/details/2894/24/vinil-dlya-noutbukov/11-156-dyuymov/vinilovaya-nakleyka-dlya-noutbuka-11-156-dyuymov-43.html Старался долго ;D
« Последнее редактирование: 03.02.2011, 17:06:15 от bestvinyl »
*

adjuster

  • Завсегдатай
  • 786
  • 53
bestvinyl
Вот теперь держи плюс.
*

fedorkit

  • Захожу иногда
  • 17
  • 1
если у кого какой вопрос по SQL-запросам созреет - спрашивайте, попробую помочь
*

skyscraper

  • Давно я тут
  • 252
  • 45
а у меня следующая проблема, х3 как, но в базе 2 цены на 1 товар и при этом часто показывает неправильную цену....
думаю надо сделать запрос и очистить jos_vm_product_price от лишних цен если удлалить строчку с одинаковым product_id, но меньшим cdate...


поправьте кто знает:
Цитировать
DELETE DISTINCT product_id FROM jos_vm_product_price where cdate < cdate
« Последнее редактирование: 16.02.2011, 11:09:31 от skyscraper »
*

adjuster

  • Завсегдатай
  • 786
  • 53
а у меня следующая проблема, х3 как, но в базе 2 цены на 1 товар и при этом часто показывает неправильную цену....
думаю надо сделать запрос и очистить jos_vm_product_price от лишних цен если удлалить строчку с одинаковым product_id, но меньшим cdate...


поправьте кто знает:

Цитировать
delete from vm_product v1
where v1.cdate <> (select max(v2.cdate)
                   from vm_product v2
                   where v2.product_sku = v1.product_sku
                  )
Проверь так )
*

skyscraper

  • Давно я тут
  • 252
  • 45
adjuster, попробовал как ты и так
Цитировать
DELETE FROM jos_vm_product_price v1 WHERE v1.cdate <> ( SELECT max( v2.cdate )
FROM jos_vm_product_price v2
WHERE v2.product_id = v1.product_id )

но везде ошибка
Цитировать
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where v1.cdate <> (select max(v2.cdate)
                   from jos_vm_product_' at line 2
*

adjuster

  • Завсегдатай
  • 786
  • 53
Цитировать
select *
FROM jos_vm_product_price v1 WHERE v1.cdate <> ( SELECT MAX( v2.cdate )FROM jos_vm_product_price v2 WHERE v2.product_id = v1.product_id )
А так работает? - если да, то нет разрешения удалить при таком запросе.
*

skyscraper

  • Давно я тут
  • 252
  • 45
пасиб, запрос выбрал все товары по дате, потом выделил и удалил в ручную.. +
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Настройка магазина

Автор Wargoth

Ответов: 0
Просмотров: 329
Последний ответ 25.06.2013, 12:45:11
от Wargoth
Меню товаров для магазина

Автор vantal

Ответов: 0
Просмотров: 461
Последний ответ 05.05.2012, 01:59:23
от vantal
Удалить из базы все неопубликованные товары. Как?

Автор qazaq1

Ответов: 0
Просмотров: 526
Последний ответ 10.01.2012, 15:28:12
от qazaq1
Как удалить товары из магазина?

Автор Russkiy

Ответов: 3
Просмотров: 2287
Последний ответ 08.10.2010, 14:36:11
от valagoff
Как реализовать комиссию магазина?

Автор GrayHunter

Ответов: 2
Просмотров: 705
Последний ответ 10.08.2010, 00:44:09
от GrayHunter