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

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Есть товары с одинаковым названием, но в разных категориях.
Как в confirmation_email.tpl.php прописать перед названием категорию подскажите.
Вобщем то там вроде все ясно.
в
Код
<td><?php $dboi->p("product_name")?> <?php echo ($dboi->f("product_attribute")? ' ('.$dboi->f("product_attribute").')' : ''); ?></td>
перед <?php $dboi->p("product_name")?> нужно прописать что то типа такого <?php $dboi->p("category_name")?>
В PHP не особо силен, подсобите пожалуйста :)
« Последнее редактирование: 14.05.2012, 16:46:48 от niggatub »
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Чет не все так просто оказалось.
Кто нибудь реализовывал?:)
*

niggatub

  • Захожу иногда
  • 205
  • 2 / 3
Сделал сам. За основу взял решение от Beagler'a с его (как я понял) блога. Да украсится его путь лепестками лотоса :)
Итак. В файле  \administrator\components\com_virtuemart\classes\ps_checkout.php ищем следующий код:
Код
$q_oi = "SELECT * FROM #__{vm}_product, #__{vm}_order_item, #__{vm}_orders ";
$q_oi .= "WHERE #__{vm}_product.product_id=#__{vm}_order_item.product_id ";
$q_oi .= "AND #__{vm}_order_item.order_id='$order_id' ";
$q_oi .= "AND #__{vm}_orders.order_id=#__{vm}_order_item.order_id ";
Меняем его на этот:
Код
$q_oi = "SELECT * FROM #__{vm}_product, #__{vm}_order_item, #__{vm}_orders, #__{vm}_category, #__{vm}_product_category_xref ";
$q_oi .= "WHERE #__{vm}_product.product_id=#__{vm}_order_item.product_id ";
$q_oi .= "AND #__{vm}_order_item.order_id='$order_id' ";
$q_oi .= "AND #__{vm}_orders.order_id=#__{vm}_order_item.order_id ";
$q_oi .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q_oi .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
Сохраняем. Закрываем.
Далее берем шаблон письма с уведомлением. Лежит тут - \components\com_virtuemart\themes\ВАША_ТЕМА\templates\order_emails\confirmation_email.tpl.php
Насчет номера строки ориентировочно сказать не могу, мой уже перелопачен от и до, а дефолтный влом смотреть. Вобщем ищем строку
Код
<td><?php $dboi->p("product_name")?> <?php echo ($dboi->f("product_attribute")? ' ('.$dboi->f("product_attribute").')' : ''); ?></td>
И заменяем ее на:
Код
<td><?php $dboi->p("product_name")?> <?php echo ($dboi->f("product_attribute")? ' ('.$dboi->f("product_attribute").')' : ''); ?><br/><?php $dboi->p("category_name")?> </td>
Сохраняем. Закрываем.
Вот и все:)
По поводу изменения шаблона письма - дело вкуса. в этом варианте категория будет выводиться сразу под названием товара. Можете сделать ее в отдельном <td> с заголовком "Категория" - с этим я думаю проблем не возникнет, нужно просто немного поправить табличку :)
*

FlahsAxel

  • Захожу иногда
  • 210
  • 0 / 0
Доброе время суток всем.

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

FlahsAxel

  • Захожу иногда
  • 210
  • 0 / 0
Доброе время суток всем.

Уважаемый beagler, подскажите пожалуйста конкретнее, как это сделать?
Не хватает знаний.

LEFT JOIN.
Суть понял, не знаю - как правильно код встроить в ps_checkout.php
SELECT ProductName, CategoryName FROM Products LEFT JOIN Categories ON Products.CategoryID = Categories.CategoryID
Код
SELECT t1.key1, 
       t1.field1 as Name,
       t1.key2 as T1Key,
       t2.key2 as T2Key,
       t2.field1 as City
  FROM Table1 t1 LEFT JOIN Table2 t2 ON t1.key2 = t2.key2 ;

Обязательно нужно получить (перечислить) все Категории товара, в которых он присутствует.
На англоязычном forum.virtuemart.net форуме, решения то же нет, к сожалению.

Сейчас получаем:
- Товар 1                                             Цена
     Категория А
- Товар 1                                             Цена
     Категория В

Нужно получить:
- Товар 1                                             Цена
     Категория А
     Категория В
« Последнее редактирование: 14.07.2015, 02:44:46 от FlahsAxel »
*

FlahsAxel

  • Захожу иногда
  • 210
  • 0 / 0
Доброе время суток всем.
если Вам нужны ВСЕ категории товара - то только отдельным запросом по каждому товару.
Я это понимаю, только не могу правильно написать код.
beagler
Подскажите, как сделать? Сам код, и где его вставить?
Полезная опция - категория в заказе. Странно, что мало интересующихся.

Хотя бы, просто убрать дубли, получить в заказе ту Категорию, в которой выбран товар:
- Товар 1                                             Цена
     Категория А
ИЛИ
- Товар 1                                             Цена
     Категория В

если сложно сделать:
- Товар 1                                             Цена
     Категория А
     Категория В
« Последнее редактирование: 14.07.2015, 11:39:23 от FlahsAxel »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Уведомление на 2 почтовых ящика при заказе товара.

Автор M.Imperator

Ответов: 35
Просмотров: 20122
Последний ответ 10.07.2019, 17:43:33
от hmr
При заказе не отправляются письма на электронную почту

Автор vsokol

Ответов: 5
Просмотров: 1235
Последний ответ 29.05.2016, 07:17:31
от vsokol
Прикрепить файлы в письмо с уведомлением о заказе

Автор sashgera

Ответов: 0
Просмотров: 927
Последний ответ 16.05.2016, 14:18:32
от sashgera
[Решено] Изображение и ссылка на товар в теле письма о заказе

Автор zmancer

Ответов: 18
Просмотров: 8304
Последний ответ 11.03.2016, 22:28:28
от Pustota
Пакетное управление товарными позициями в заказе

Автор sleshiy

Ответов: 0
Просмотров: 1068
Последний ответ 21.10.2014, 15:37:37
от sleshiy