Куда идем?

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

Начнем с того, что многое из описанного в этой статье, можно сделать с помощью компонента CSV Imprived, но есть несколько НО:

  • CSV Improved платный
  • Он требует даже большего изучения и подготовки, чем способ, описанный мной здесь
  • Он требует использования Excel-таблиц или аналогов
  • Он позволяет делать далеко не все действия, которые можно сделать напрямую через базу данных

Изначально CSV Imprived создан для экспорта/импорта товаров Virtuemart и с этим он отлично справляется, но перед нами сегодня стоит немного другая задачка, которую мы постараемся решить другими средствами.

Предупреждение(!)

(!) Прежде чем выполнять действия, описанные ниже, обязательно создайте резервную копию базы данных!

(!) Не проводите эксперименты на действующих проектах!

(!) Выполняйте запросы на действующих проектах только имея резервную копию базы данных и точно понимая, что вы делаете!

PhpMyAdmin – веб-интерфейс администрирования базы данных

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

Итак, несколько фактов о Virtuemart:

  • База данных Virtuemart представляет собой набор таблиц, в которых хранятся данные о товарах, производителях, заказах, а также обо всем остальном, что изменяется в магазине с течением времени.
  • База данных Virtuemart является составной частью базы данных Joomla. Это означает, что при установке Virtuemart добавляет свои таблицы к таблицам Joomla.
  • База данных Virtuemart имеет префикс vm_. О том, что это рассказывается ниже.

Для просмотра таблиц базы данных и управления ими нужен веб-интерфейс (все это, конечно, можно делать путем программирования, но для людей, малознакомых с ним, такая задачка окажется крайне сложной). Таким интерфейсом является PhpMyAdmin.

Что представляет из себя PhpMyAdmin? Это такой же скрипт, как и Joomla, т.е. набор php-файлов, позволяющий легко и удобно управлять базой данных.

Где найти и как запустить PhpMyAdmin? PhpMyAdmin есть на любом php-хостинге. Сегодня это стандарт. Найти его вы сможете в панели управления хостингом в разделе управления базами данных. Если вы работаете на Dender’е(локальном веб-сервере), то PhpMyAdmin доступен по адресу: http://localhost/Tools/phpmyadmin/ . Denwer при этом, естественно, должен быть запущен.

В зависимости от используемой версии внешний вид интерфейса PhpMyAdmin может немного меняться. Ниже на рисунках мы будем рассматривать версию 3.2.3, которая встроена в Denwer.

Вот главное окно PhpMyAdmin:

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.Слева мы видим доступный список баз данных. Если кликнуть по одной из баз, то откроется страница со следующим содержимым:

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.Теперь мы видим слева и справа список таблиц текущей базы данных. Кликнув по одной из таблиц слева, мы увидим следующее:

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.Здесь нас интересуют три вкладки, показанные вверху окна:

1) Browse:

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.На вкладке Browse можно увидеть часть содержимого таблицы. По умолчанию показывается 30 строк. Сверху можно увидеть названия колонок(полей) таблицы.

2) Structure:

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.Вкладка Structure показывает структуру выбрано таблицы, а именно поля, которые в ней содержатся, и конфигурацию этих полей.

3) SQL:

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.Вкладка SQL содержит форму ввода SQL-запроса к базе данных.

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

Создание резервной копии базы данных

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

Резервная копия делается легко и быстро:

1) Кликаем слева по базе, которую хотим сохранить:

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.2) На вкладках справа жмем ссылку Export

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.3) В открывшемся окне выделяем все таблицы(если они не выделены), ставим галочку Save as file и жмем кнопку Go.

Быстрая обработка и изменение данных Virtuemart с помощью SQL-запросов.После этого браузер выдаст запрос на сохранение файла, содержащего базу данных.

Просто, не правда ли?

Аналогичным способом происходит и восстановление резервной копии базы. Жмем ссылку Import, выбираем файл, жмем кнопку Go.

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

Если вы всё-таки не создали резервную копию и по каким-то причинам удалили файл с базой данных, то вам может помочь прога восстановление удаленных файлов.

Работа с SQL-запросами

После того, как мы сделали резервную копию базы данных и научились ее восстанавливать, можно перейти к работе с SQL-запросами. Базовые конструкции языка SQL достаточно просты и не должны вызвать затруднений.

Прежде всего нам нужно научиться выбирать данные. Я уже писал об этом. Приведу цитату из одной моей статьи:

---------------------------------------------

Итак, наша цель – выбрать из базы данных определенные данные. Для того, чтобы сделать это, нужно ответить на 3 основных вопроса:

  • Что выбирать? (SELECT)
  • Из чего выбирать? (FROM)
  • Как выбирать? (WHERE)

В скобочках я написал основные операторы SQL, ответственные за каждый из вопросов.

Теперь подробнее.

1) Как известно, база данных Joomla – это набор таблиц. У каждой таблицы есть столбцы и строки, при этом в столбцах указывается переменная, а в строках – ее значения.

Вот пример:

Таблица: birthday

ФИО

Год рождения

Иванов Иван Иванович

1977

Петров Петр Петрович

1988

Сидоров Сидр Сидорович

1999

Чтобы выбрать конкретную запись, нам нужно выбрать правильный столбик и задать условие выбора строки. Т.е., например, сказать: «Выбери ФИО того человека, который родился в 1988 году».

В SQL за «выбери» отвечает SELECT, а за «который родился» – WHERE. Кроме того, т.к. в Joomla таблица не одна, а много, нам нужно указать в запросе название таблицы( за это отвечает оператор FROM).

Таким образом, наш SQL-запрос будет иметь следующий вид:

1
SELECT ФИО FROM birthday WHERE Год рождения = '1988'

Результатом выполнения этого запроса будет «Петров Петр Петрович»

---------------------------------------------

Если требуется не просто выбрать данные, а еще и совершить над ними какие-то действия, можно использовать оператор UPDATE. Вообще, по языку SQL в Интернете очень много учебников и руководств. Не думаю, что его изучение в контексте данной статьи, хорошая идея. Здесь мы говорим про Virtuemart и пора бы уже поговорить непосредственно о нем.

Как я упоминал выше, все таблицы, относящиеся к Virtuemart, имеют префикс vm_. Префикс таблиц Virtuemart идет после префикса таблиц Joomla и если префикс таблиц Joomla стандартный, то перед названием таблицы Virtuemart вы будете видеть следующее:

jos_vm_. Что-то я увлекся умным словом «префикс» и совсем забыл напомнить для чего он, собственно, нужен. Расширения для Joomla разрабатывают программисты всего мира. Многие из этих расширений имеют свои таблицы базы данных, которые при установке добавляются к таблицам Joomla. Если бы не префикс, то наверняка нашлись бы разработчики, назвавшие таблицы своих баз одинаково. При установке двух таких расширений, естественно, ничего хорошего бы не получилось. Для того, чтобы не было таких «накладок», используется префикс базы данных и расширений. Вероятность совпадения  названий таблиц префикс не исключает(ведь в мире могут найтись разработчики, которые назовут одинаково не только таблицы, но и префиксы), но значительно ее уменьшает.

Зная префикс Virtuemart, вы легко сможете увидеть в базе данных все таблицы, которые к нему относятся. Именно с ними нам и предстоит работать. Названия таблиц, а также столбцов в таблицах созданы так, чтобы каждый, прочитав их, смог догадаться какие данные в них содержаться. Например очевидно, что таблица jos_vm_product содержит данные о товарах магазина. А столбец product_name этой таблицы содержит названия товаров. Немного знаний английского языка и вы легко сможете ориентироваться в таблицах. Если же с английским совсем плохо, то просто посмотрите обзор таблиц. По данным, содержащимся в ячейках, обычно легко понять, что храниться в таблице/столбце таблицы.

Примеры некоторых SQL-запросов

Для того, чтобы освоиться было проще, ниже я привожу SQL-запросы, решающие некоторые задачи по работе с Virtuemart.

Примечание

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

Теперь непосредственно запросы:

1. Массовое обновление данных о товарах

Иногда требуется изменить какое-то постоянное значение, которое имеется у всех товаров. Например, очень частая проблема – неверное указание единицы измерения веса товара. Как известно, способы доставки работают только если единица веса задана, как kg, но не кг. Если вы узнаете об этом уже после того, как наполнили магазин тысячей товаров, то открывать каждый из них и вручную исправлять вес совсем не хочется. В этом случае поможет заклинание запрос:

1
2
UPDATE `jos_vm_product`
SET `product_weight_uom`='kg'

После выполнения запроса вы можете увидеть, что все значения колонки product_weight_uom таблицы jos_vm_product  стали равны kg.

Аналогичным образом можно задать единицы измерения длины, ширины, высоты товара, и другие однотипные данные.

2. Обновление цен

Еще одна частая задачка. Предположим, что необходимо увеличить все цены товара на определенный коэффициент, например, в соответствии с инфляцией. Предположим, что нужно поднять цены на 10%. Используем следующий запрос:

1 
2 
UPDATE `jos_vm_product_price` 

SET `product_price`= `product_price`*1.1

После выполнения этого запроса все цены увеличатся на 10%.

3. Смена категории

Задача заключается в том, чтобы перенести все товары одной категории в другую. Для того, чтобы сделать это нам нужно знать две вещи:

  • Из какой категории переносить товары
  • В какую категорию переносить товары

Каждая категория в Virtuemart имеет уникальный идентификатор(id). Каждый товар Virtuemart также имеет идентификатор. Каждый идентификатор товара связан с идентификатором категории, в которой этот товар находится.

Предположим, что нам нужно перенести все товары из категории с id=9 в категорию с id=12. Узнать ID соответствующей категории можно в админке Virtuemart. В списке категорий, в последней колонке указан как раз этот ID. Запрос будет следующий:

1
2
3
UPDATE `jos_vm_product_category_xref`
SET `category_id`= '12'
WHERE
`category_id`='9'

Здесь мы не только выбрали колонку для обновления, но также взяли из нее только те значения, которые равны 9.

4. Скидка определенной категории товаров

Иногда нужно сделать скидку на товары определенной категории. Чтобы не назначать скидку для каждого товара категории отдельно, мы используем SQL-запрос. Для его создания нужно посмотреть каким образом в Virtuemart хранятся скидки. Для скидок в базе данных существует отдельная таблица jos_vm_product_discount. Также каждой скидке при создании присваивается уникальный идентификатор(id). Алгоритм наших действий следующий:

  1. Переходим в Virtuemart –> Товары –> Список скидок на товары.
  2. Создаем нужную нам скидку.
  3. Открывает таблицу jos_vm_product_discount, находим в ней нашу скидку и запоминаем ее id(пусть это будет 1).
  4. Находим категорию товаров, в которой будет применяться скидка, в списке категорий и запоминаем ее id(пусть это будет 9).
  5. Выполняем следующий SQL-запрос:
1
2
3
UPDATE `jos_vm_product`
SET `product_discount_id`= '1'
WHERE `product_id` IN (SELECT `product_id` FROM `jos_vm_product_category_xref` WHERE `category_id` = '9')

После выполнения этого запроса всем товарам категории c id=9 будет задана скидка с id=1.

5. Изменить валюту для всех товаров

Если требуется изменить валюту сразу для всех товаров магазина на рубли, выполняем запрос:

1
2
UPDATE `jos_vm_product_price`
SET `product_currency`= 'RUB'

6. Изменить шаблон страницы категории

Если у вас сотня категорий и вам требуется изменить у каждой из них шаблон browse_1 на, например, browse_2, то вручную вам придется открывать каждую из категорий и делать это. SQL-запрос же сделает это за доли секунд:

1
2
UPDATE `jos_vm_category`
SET ` category_browsepage`= 'browse_2'

7. Изменить шаблон flypage категории

Случай аналогичен предыдущему, только требуется изменить шаблон страницы товара flypage.tpl на flypage_images.tpl:

1
2
UPDATE `jos_vm_category`
SET ` category_flypage`= ' flypage_images.tpl'

На этом остановлюсь. Понимая язык SQL даже на базовом уровне, вы можете делать за минуту работу, которая  при использовании админки заняла бы у вас час.  Если вы написали SQL-запрос для решения еще какой-нибудь задачи, пожалуйста, поделитесь им в комментариях(для вставки запроса используйте тег [CODE][/CODE]).

------------

В связи с 6-летием хостинг-компания Inferno Solutions предлагает администрируемый сервер в Германии Core2Quad Q9550 4x2.83 Ghz + 8GB RAM + 2x500GB HDD + 5000Gb bw + 100Mbit - по СУПЕР цене 99$! Помощь в переезде прилагается.

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.

Похожие статьи

Добавить комментарий

Комментарии  
0
Виталий, здравствуйте, спасибо, за статью! Вопрос, как по вашему мнению интересно ли было бы пользователям обновлять данные Марта напрямую из Excel выгружать, обновлять, удалять?
0
Алексей, не понял вас. Зачем пользователям обновлять данные? Вы имеете ввиду администраторов?
0
Виталий, имею ввиду пользователей, которые занимаются массовым обновлением данных в магазине, можно назвать их администраторами! Я для себя сделал программу. Она выгружает данные Марта из SQL прям в Excel. В Excel изменяешь, нарпимер, цены или описания или фото (любую информацию), затем нажимаешь на кнопку и Март обновляется. Очень удобно, быстро и легко обновлять, добавлять и удалять информацию в магазине. Виталий, ищу партнёра для продвижения этой темы. Программа для обновления есть, нужен профессианольный взляд. Вам интересно?
0
Алексей, а в чем отличие от того же CSV Improved? Только в том, что программа десктопная?
0
Главное отличие - простота, 2 гнопки выгрузить и загрузить - Минимум времени на обучение и начало работы с ней. Работа с неограниченным количеством магазинов.
0
Алексей, если дадите посмотреть,что-нибудь скажу вам. Так или иначе, свяжитесь со мной через форму обратной связи.
0
Ох как хочется посмотреть, что же это такое. Алексей, можно ли где-нибудь скачать эту программу?
0
Похоже, программа не удалась?
0
Aлексей,я заинтересовался!Пожалуйста,свяжитесь со мной
0
Спасибо хорошая статья по запросам, не очень понил 4 запрос но это пара минут дополнительно изучения SQL
0
Здравстуйте! Подскажите, пожалуйста, в чем причина. При импорте сохр. копии мне выдается такая ошибка: "Ошибка
SQL-запрос:

-- -- Дамп данных таблицы Ошибка


Ответ MySQL:

#1062 - Duplicate entry '1' for key 'PRIMARY' "

В чем причина?
0
А вот SQL на публикацию товаров есть?
Чтобы можно было автоматически опубликовать все товары? А то иногда это очень важно
0
Елизавета,

UPDATE `jos_vm_product`
SET `product_publish`= 'Y'
0
:) Замечательно. Спасибо огромное!
1
подскажите как составить запрос для изменения цены товаров одного производителя из категории товаров?
Например: имеем товар - холодильники. Производители - Самсунг, Норд, Снайге и т.д.
Нужно изменить цену холодильников производителя Норд не зацепив остальных производителей.
я пробовал составить такой запрос на основе изменения цены категории товара, указывая id категории и id производителя, но не получилось. На форумах тоже не нашел подсказки.
0
Здравствуйте. Помогите пожалуйста. Возможно ли продублировать изображения категорий, в товарах с помощью запроса?
0
UPDATE jos_vm_product
SET product_thumb_image =(
SELECT DISTINCT
jos_vm_category.category_thumb_image
FROM
jos_vm_category ,
jos_vm_product_category_xref
WHERE
jos_vm_product_category_xref.category_id = jos_vm_category.category_id
AND jos_vm_product_category_xref.product_id=jos_vm_product.product_id
AND jos_vm_product.product_thumb_image is NULL
)
0
А не подскажите как написать sql запрос в VirtueMart что бы во все описание товаров после например слова "прочие" добавить некоторый HTML код?
1
Sasha, как по мне, здесь проще сделать экспорт БД, открыть ее продвинутым редактором, сделать поиск с заменой, выполнить импорт базы данных.
0
Разобрался. Примерно так:
UPDATE ИМЯ_ТАБЛИЦЫ SET ИМЯ_ПОЛЯ = REPLACE(ИМЯ_ПОЛЯ, "строка для замены", "чем заменяем")
0
Поставил английский шаблон с заполеннными демо-данными и всё работает на ура, потом накатил рускую версию джумлы + VM2 рус. В итоге пустая база. Но как только переключаю на английский основной язык - всё опять появляется...

Попробовал заменить все содержимое текста с ru-RU.com_virtuemart.ini скопировал и вставил в en-GB.com_virtuemart.ini - теперь товары и категории на месте!
Но проблема с установленными модулями - их надписи отображаются на сайте очень коряво (как-бы просто англ. название модулей отображает на сайте с нижними черточками,типа "_ _").
Как с помощью SQL-запросов перенести все категории и товары в русскую версию или чтоб они появились при переключении на русский язык??? Спасибо!
0
Ребя помогите в запросе. У VirtueMart поменять у всех товаров артикул. В артикуле есть как буквы так и цифры. А нужно старые артикулы удалить и добавить новые рендомные начиная от 300 до 5000.. Таблица jos_vm_product а сам артикул product_sku. Помогите ...
0
Edik, это нельзя сделать запросом. Артикулы должны быть уникальными, а потому не могу быть случайными(случайные числа могут повторяться). Здесь лучше всего использовать импорт из CSV.
0

Цитирую Wedal:

Edik, это нельзя сделать запросом. Артикулы должны быть уникальными, а потому не могу быть случайными(случайные числа могут повторяться). Здесь лучше всего использовать импорт из CSV.



Так всетаки придется все вручную вбивать? А не подскажите как это сделать ?
0

Цитирую Edik:


Цитирую Wedal:

Edik, это нельзя сделать запросом. Артикулы должны быть уникальными, а потому не могу быть случайными(случайные числа могут повторяться). Здесь лучше всего использовать импорт из CSV.



Так всетаки придется все вручную вбивать? А не подскажите как это сделать ?




csv improved + Open оffice всем в помощь
0
Подскажите, у меня такая проблема.

1) не могу найти выход, как убрать на этой странице "http://www.mebel-interio.com/furniture" надписи: "Joomla Fashion Store

We offer a full range of services from interior design to the build and management projects."

уже все перерыл, но безуспешно.
0
Тут одно из двух - или поиск в файлах с текстом с помощью Totalcmd или же поиск в базе данных..
0
Edik, в базе данных колупался.
ща попробую через Ttlcmd
0
В Totalcmd в первую очереди нужно колупатся..
0
Вот что написано там при нажатии CTRL+U ::





Joomla Fashion Store
We offer a full range of services from interior design to the build and management projects.
 
0
В Totalcmd пользуйся поиском Alt + F7
0
Подскажите, как сделать следующее: есть действующий интернет магазин. Понадобилось добавить "сопутствующий товар" сразу к нескольким тысячам товаров на сайте (но не ко всем товарам), делать это вручную нереально, должен же быть какой-то вариант когда можно сделать это для группы товаров. Подскажите пожалуйста, как это сделать?
0
DJ_Alexx,
1) эти несколько тысяч товаров должны иметь одинаковый сопутствующий товар?
2) эти несколько тысяч товаров объединяет какой-то общий признак(например, общая категория)?
0
Подскажите, пожалуйста, относительно примера 3: как из категории с id=9 в категорию с id=12 перенести не все товары, а только имеющие определенный общий атрибут? В моем случае, общие свойства содержатся в полях Product_name, product_scu, custom_value. Можно выбрать по любому из этих атрибутов.
1
Madforit, добавить в конце запроса:
WHERE product_scu='общий атрибут'. В этом случае будут затронуты только строки, для которых выполняется это условие
0
Здравствуйте!

Будьте любезны - помогите с составлением запроса для изменения наличия всех товаров в виртуемарт.
Поле - product_in_stock
Сейчас в наличии - 0. А нужно - 1000.
0
Андрей, какая таблица БД содержит это поле?
0
в таблице: virtuemart_products
0
Андрей,

Код:

UPDATE `virtuemart_products` SET `product_in_stock` = 1000

0
Спасибо! Все получилось!
0
Помогите одноразово поменять во всех товарах валюту в поле цена.
0
АндрейV, если речь идет о VM2, то:
1) В админке, в менеджере валют, найдите валюту, которую необходимо установить и запишите ее ID.
2) Сделайте резервную копию базы данных.
3) В PHPMyAdmin выполните SQL-запрос:


Код:


UPDATE `g4vem_virtuemart_product_prices` SET `product_currency`= ID_требуемой_валюты

0
Спасибо за помощь!
А подскажите как составить запрос на VM2 правильно, чтобы изменить валюту в поле цена только в отдельных категориях товаров, а не везде?

Вот так?:

WHERE `category_id`='id категории где нужно изменить валюту в поле цена'
UPDATE `g4vem_virtuemart_product_prices`
SET `product_currency`= ID_требуемой_валюты
0
Adrian, теоретически - да, только WHERE будет последней строчкой. Это сработает, только если в таблице g4vem_virtuemart_product_prices есть столбец category_id (в чем я сильно сомневаюсь). Если его нет, то запрос усложнится.
0
ДА, нету там этого столбца.
0
Adrian, это логично и печально. Тогда вам нужно присоединить к выборке id категории, в которой находится товар, для которого используется текущая цена. Запрос получится очень сложный. Попробуйте погуглить SQL UPDATE и SQL JOIN. В теории, вы должны осуществить выборку по таблице товаров, к которой присоединить значение валют и ID категории для каждого товара. После создания такой временной таблицы можно будет написать простой запрос.
0
А можно составить запрос на VM2 таким образом, чтобы изменить валюту в поле цена только для товаров определенного производителя в категории?
1
Madforit, да можно. Нужно использовать WHERE после основной конструкции, которое будет объединять логическим И(AND) ваши условия, т.е. примерно:

Код:

 WHERE (id_производителя = `2` AND id_категории = `3`) 

0
Чтобы не углубляться в изучение SQL, решил вопрос через ID товаров. Примитивно, но работает -) Через CSVI получаем ID товаров со значением валюты, которую нужно заменить. Копируем столбик, вставляем в запрос:
UPDATE `имя БД_virtuemart_product_prices`
SET `product_currency`= ID_валюты
WHERE `virtuemart_product_id`IN(IDтовара1, IDтовара2,...)

Лимита значений для одновременной замены не знаю, у меня было ок 200
0
В MySQL есть product_price - это фактическая цена, а как добавить окончательную цену из VirtueMart
0
Sergeys, не понял вашего вопроса. Напишите подробнее.
0
В MySQL в таблице ***_virtuemart_product_prices есть строка product_price - это фактическая цена в разных валютах, но нет основной и окончательной цены преобразованных в рубли, как их добавить в базу
0
Sergeys, никак. Они не хранятся в базе а каждый раз создаются автоматически путем пересчета базовой цены с учетом текущего курса и налогов и правил расчета, которые вы создали.
0
Есть же файл в virtuemart который создает в базе запись о фактической цене, если в него внести информацию об основной цене.
0
Sergeys, не совсем понимаю, что такое основная и фактическая цена. В Virtuemart заносится одна цена, остальные рассчитываются на ее основе. Вот если вы добавляете товар через админку, вы указываете какую-то одну цену, а остальные появляются автоматически после сохранения.
Что именно вам требуется? Опишите подробно. Я предложу вариант.
0
Уважаемый Wedal, подскажите, что означают символы #__{vm} в именах таблиц?
#__{vm}_product

Код:

#__{vm}_product


Спасибо
0

Код:

#__


это префикс таблиц БД Joomla, который вы указываете при установке Joomla. Для каждого сайта он будет свой, потому в запросах указывается так. Если делаете запрос напрямую в базу не через Joomla, то нужно указывать ваш уникальный префикс.

Код:

{vm}_


тоже самое, но для таблиц VM.
0
Уважаемый Wedal, спасибо! Не сомневался, что ответите!
Не могли бы Вы подсказать - как добавить категорию товара в уведомлении о заказе?
Вопрос решен, если каждый товат - только в своей категории.
Однако... Если товар указан в нескольких категориях - он дублируется в заказе, столько раз, в скольких категориях этот товар присутствует. Кратно повторяется количество и цена!
- Товар 1 Цена
Категория А
- Товар 1 Цена
Категория В
Цена вычисляется дважды:
Промежуточный итог - складывает все повторы.
Итого: правильная сумма, без дублей повторов.
Как оставить в заказе обе категории, но без дублирования товара, а категории - просто перечислением?
Или, просто убрать дубли, получить в заказе ту Категорию, в которой выбран товар.

Решение - в запросе нужно использовать left join на категории. Как правильно прописать код?
Подробнее - на дружественном форуме.
http://joomlaforum.ru/index.php/topic,216036.0.html
Ссылку можете удалить, она только для Вас.
0
Я поменял домен сайта, что мне набрать в Joomla в БД - чтобы везде, и в статьях, вообще на всем сайте изменить адрес сайта на новый?
0
Виктор, сама Joomla не хранит абсолютный адрес сайта нигде, кроме файла configuration.php (переменная $live_site)в корне. Да и в этом файле домен не всегда прописывают.

В базе данных также ничего менять не нужно, но это с тем условием, что все ссылки, которые у вас добавлены в статьях(в том числе и на картинки), имеют относительные адреса.
Если в базе все-таки есть абсолютные адреса, то экспортируйте дамп базы данных, откройте его через Notepad++ или другой продвинутый редактор и поиском/заменой по файлу замените все вхождения старого домена на новый. После этого импортируйте дамп обратно.