Форум русской поддержки Joomla!® CMS
05.12.2016, 02:23:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

[Решено] "Цена от:" на странице категорий

 (Прочитано 3751 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« : 20.05.2012, 22:06:26 »

Нужна помощь в следующем вопросе:
На форуме forum.virtuemart.net есть хак по добавлению на странице категорий товаров значения Цена от: для родительских товаров, имеющих подтовары (дочерние товары). Таким образом, эта доработка позволяет вывести минимальную цену дочерних товаров прямо на странице категорий! Считаю доработку очень полезной и нужной.
Но...
Пользователь, выложивший этот хак, не дает гарантий, что это решение будет работать, так как за его реализацию заплатили профессионалу.
Работу этого хака вы можете просмотреть/оценить следуя по ссылке http://www.quality-tuning.com/complete-exhaust-systems.html

Ниже оригинал хака (добавляемые файлы во вложении):
Показать текстовый блок
Цитировать
 
Re: Display child price range for parent product?
« Reply #8 on: June 09, 2011, 10:03:57 AM »

Dear All,

pls find here our solution for this problem for www.quality-tuning.com. It calculates and updates the price of all parent products' price in the database using the minimum price of all children. You can do this in the administration - we have added a new button for this (see attached). This hack adds also the text "From:" near the price of all parent products in browse and product_details pages. We believe a similar solution or same should be included in the standard VM version.

1. New files (See attached)
administrator\components\com_virtuemart\html\product.product_minprice.php
administrator\components\com_virtuemart\class\ps_calminprice.php
components\com_virtuemart\themes\YOUR_TEMPLATE\templates\common\minprice.tpl.php

2. Changed files

2.1 administrator\components\com_virtuemart\ header.php
After line 317: Add:
<hr />
<li class="item-smenu vmicon vmicon-16-editadd">
<a href="<?php $sess->purl($_SERVER['PHP_SELF']."?pshop_mode=admin&page=product.product_minprice")?>"><?php echo 'Calculate Min Price' ?></a>
</li>

2.2 administrator\components\com_virtuemart\ html\shop.browse.php
After line 31: Add:
require_once(CLASSPATH . 'ps_calminprice.php' );
$ps_calminprice = new ps_calminprice();
After line 443: Add:
$minpriceid = $ps_calminprice->getminprice($db_browse->f("product_id"));
      if($minpriceid!=''){
         $product_price = $ps_calminprice->show_price($minpriceid);
      }

2.3 administrator\components\com_virtuemart\ html\ shop.product_details.php
After line 418: Add:
require_once(CLASSPATH . 'ps_calminprice.php' );
$ps_calminprice = new ps_calminprice();
$minpriceid = $ps_calminprice->getminprice($product_id);
if($minpriceid!=''){
   $product_price = $ps_calminprice->show_price($minpriceid);
}

Regards,
Chris

Так выглядит страница категорий:


Так выглядит карточка товара:


В админке VirtueMart добавляется новая функция Calculate Min Price:


Решение предложено для версии VM 1.1.8. Я пробую на VM 1.1.9, при нажатии на кнопку Calculate в админке магазина ошибка:
Цитировать
Fatal error: Call to a member function bind() on a non-object in Z:\home\САЙТ.ru\www\administrator\components\com_virtuemart\html\product.product_minprice.php on line 56

Я так понимаю при нажатии на кнопку идет сканирование базы и запись в нее (могу ошибаться).

Нужна помощь от знающих и умеющих в реализации этого решения... нужного решения!

[вложение удалено Администратором]
« Последнее редактирование: 08.08.2012, 23:16:08 от kry » Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #1 : 21.05.2012, 20:55:07 »

Цитировать
Fatal error: Call to a member function bind() on a non-object in Z:\home\САЙТ.ru\www\administrator\components\com_virtuemart\html\product.product_minprice.php on line 56

Ошибка в этом куске кода:
Код
			// Bind the form fields to the hello table
if (!$row->bind($data)) {
return JError::raiseWarning( 500, $row->getError() );
return false;
}

По-моему, к этому хаку необходимо создать какую-то таблицу в базе данных и, возможно, не одну.

Может есть у кого идеи?

Посоветуйте, может и не стоит пытаться воскресить этот хак, и закрыть тему?
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #2 : 22.05.2012, 21:02:14 »

При поиске по тому же forum.virtuemart.net наткнулся на решение добавлять на странице категорий рядом с ценой родительского товара слово: "Цена от" (или "from", как в их варианте). Но это не выход для меня, так как в моем случае цена родительского товара равна нулю.
Если кому-то все же нужен хак, держите (оригинал):

Цитировать
Показать текстовый блок

Может у кого есть варианты по первому вопросу в теме? Приветствую л ю б ы е подсказки и догадки.
« Последнее редактирование: 22.05.2012, 21:08:14 от kry » Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #3 : 26.05.2012, 21:32:23 »

Жаль, что ответов нет Angry, хотя решенную тему и в FAQ можно было добавить.

Тогда задам вопрос по-другому:
- сколько ориентировочно будет стоить решение вопроса из первого топика, а именно воскрешение хака-полуфабриката? Лично у меня наберется только на разумное пожертвование. У кого есть желание давайте в складчину закажем...
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #4 : 30.05.2012, 21:48:14 »

Добавил тему в Коммерческие вопросы http://joomlaforum.ru/index.php/topic,217703.0.html. Присоединяйтесь!
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #5 : 14.06.2012, 20:58:19 »

Я решила этот вопрос вручную, своими модификациями:
1) создала новое поле в админке: Цена от ...
2) вывела заглушку в категории товара "Цена от ..."
3) обновила новое поле в CSV Improved VirtueMart (именно им я пользуюсь для импорта товара)
4) добавила это поле в шаблон импорта товара в CSV Improved Virtuemart
5) заполнила свой файл .csv и импортировала уже с Ценой от: (заполнила где это необходимо)

Вот мой пример: http://www.deepvvater.com/internet-magazin/category/143.html?root=142
« Последнее редактирование: 14.06.2012, 23:14:09 от kreolka_8 » Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #6 : 14.06.2012, 22:54:25 »

kreolka_8, интересное решение. Я думал о похожем, но через MyImport (бесплатный компонент импорта-экспорта от dinox). А CSV Improved VirtueMart платный, не подскажите его стоимость?
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #7 : 14.06.2012, 22:57:38 »

CSV Improved VirtueMart так же бесплатен, я изначально разобралась в нём, так и пользуюсь.
Думаю процесс у всех похож, главное что бы была функция "Обновить новое поле", а потом уж импортировать.

Думаю вам нет смысла тратить деньги на хак, все реализуемо, я потратила немного времени!
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #8 : 14.06.2012, 23:09:20 »

Ок! Подумаю над этим.

В вашем решении мне все понятно до:
Цитировать
1) создала новое поле в админке: Цена от ...

...остальные пункты еще не совсем. Будут вопросы - обращусь. Хорошо?
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #9 : 14.06.2012, 23:12:46 »

CSV Improved VirtueMart  для VM 1.1.9 есть бесплатная версия: 1.9

Обращайтесь, сброшу ссылки по "Создание нового поля, вывода заглушки и т.д."

Т.Ж. возникнет вопрос по скрытию в карточке товара вывода надписи "Цена:  " без цены, т.к. цифры в мультикорзине выводятся!
Это тоже решаемо!
« Последнее редактирование: 14.06.2012, 23:20:14 от kreolka_8 » Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #10 : 14.06.2012, 23:25:46 »

kreolka_8, я так понимаю, что у вас категория "Алюминиевые радиаторы" строится на одном шаблоне вывода товаров browse, а, например, подкатегория смесители "ELGHANSA" на другом шаблоне browse? Иначе, если в одной категории будут выводится единичные товары и товары с дочерними подтоварами, то у последних будет 2 цены - с добавленным новым текстовым полем и цена родительского товара.
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #11 : 14.06.2012, 23:40:17 »

CSV Improved VirtueMart  для VM 1.1.9 есть бесплатная версия: 1.9

На офсайте есть com_csvi_1.9.2
Цитировать
CSV Improved the ultimate import/export tool for VirtueMart. This component features many import and export options for your VirtueMart data. Import your products in minutes and export your orders in seconds. It can all be done with CSV Improved. Upgrade instruction To upgrade from CSV Improved 0.9 to 1.x, download and install the converter first before installing the component.

This version does NOT work with VirtueMart 2. Download version CSVI 4 to use with VirtueMart 2.

Это то, о чем вы говорите?
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #12 : 14.06.2012, 23:42:31 »

Нет, нет. У меня все категории по одним шаблоном browse 3. Просто у меня для импорта товара через CSV Improved два шаблона: 1-ый - есть дополнительное поле "Цена от", 2-ой без этого поля. И я по отдельности импортировала. А вообще можно все разом, я после дорабатывала и для меня было удобнее импортировать товары по отдельности: Смесители, радиаторы и т.д.

Две цены никак выводится не могут. Если товар идёт с дочерними, то цена не выводится в принципе в категориях и вот тогда прописываешь дополнительное поле. В обычном товаре все традиционно выводится. у меня есть категории с выводом одновременно единичного товара и с дочерними, загружала одновременно и все сработало!
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #13 : 14.06.2012, 23:44:38 »

На офсайте есть com_csvi_1.9.2
Это то, о чем вы говорите?

Я регистрировалась на сайте, скачивала версию 1.9, в админке мигало, что версия пробная, но эту надпись можно убрать и никаких ограничений не накладывается. Могу вам выслать!

На момент скачивания была версия 1.9, наверное обновили , но не думаю, что кардинально обновился. Меня вполне устраивает моя версия.
« Последнее редактирование: 14.06.2012, 23:48:23 от kreolka_8 » Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #14 : 14.06.2012, 23:59:19 »

Цитировать
Две цены никак выводится не могут. Если товар идёт с дочерними, то цена не выводится в принципе в категориях
Хм, у меня цена родительского товара = 0 (использую хак "Автопереход на первый зависимый товар, если цена род-кого товара равна нулю", дочерние выводятся не списком, как у вас, а выпадающим drop_down). Когда я вывожу цену на странице вывода товаров, то вижу Цена: 0 руб. Буду разбираться.
А компонент вышлите - сравню.
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #15 : 15.06.2012, 00:08:01 »

Я когда импортировала товар, у которого есть дочерние, то цены прописывала только для дочерних, а в родительском даже "0" не вписывала- пустой оставила. Может в этом разница.
У меня в админке прописался "0" у родит. товара автоматом, а в карточке товара пусто, только выводилось "Цена: ". Тогда задала условие в карточке товара, что если Цена больше 10 р., то выводится полноценная "Цена: 20 р.", иначе пусто.
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #16 : 15.06.2012, 00:09:48 »

А компонент вышлите - сравню.
Куда слать?
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #17 : 02.07.2012, 13:38:18 »

У меня в админке прописался "0" у родит. товара автоматом, а в карточке товара пусто, только выводилось "Цена: ". Тогда задала условие в карточке товара, что если Цена больше 10 р., то выводится полноценная "Цена: 20 р.", иначе пусто.
kreolka_8, покажите код, которым условие задавали.
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #18 : 02.07.2012, 13:43:43 »

Полагаю ответ здесь http://joomlaforum.ru/index.php/topic,103957.0.html
Записан
kreolka_8
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Женский
Сообщений: 157



« Ответ #19 : 02.07.2012, 13:46:43 »

kry,
Цитировать
<?php if(strlen($product_price) >= 10){
      echo $product_price_lbl;
      echo $product_price; }
            else {};?>
вместо
Цитировать
<?php echo $product_price_lbl ?>

         <?php echo $product_price ?>
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #20 : 02.07.2012, 13:50:50 »

Спасибо, начну решать свой вопрос
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #21 : 08.08.2012, 23:05:41 »

Вопрос разжёван и решен в этой ветке http://joomlaforum.ru/index.php/topic,103957.msg1163259.html#msg1163259!
Спасибо mis_tery за базовый код и artlux за его доработку!!
Показ цены "от" и "до" на странице категорий в зависимости от цены дочерних товаров. Если дочерних нет просто вывод цены.
В вашем файле browse_X.php (X - ваше число), например, вместо
Код
<?php echo $product_price ?>
,
который выводит цену товара на странице категорий, вставляем:
Код
<?php
 
$maximum=0;
$minimum=10000000;
        $getDesc = "SELECT DISTINCT product_id FROM jos_vm_product WHERE product_sku = '$product_sku'";
 
        $getDescCmd = mysql_query($getDesc);
        $getDescCmdRows = mysql_fetch_array($getDescCmd);
        $product_id = $getDescCmdRows['product_id'];
 
$test=mysql_query("SELECT product_id FROM jos_vm_product WHERE product_parent_id = '$product_id'") or die (mysql_error());
 
while ($line=mysql_fetch_array($test))
{
$product_id = $line['product_id'];
 
$test2=mysql_query("SELECT product_price FROM jos_vm_product_price WHERE product_id = '$product_id'") or die (mysql_error());
 
 
while ($line2=mysql_fetch_array($test2))
{
 
$product_pricec=$line2['product_price'];
 
 
if ($minimum>$product_pricec){$minimum=$product_pricec; }
 
if ($maximum<$product_pricec){$maximum=$product_pricec; }
 
}
 
}          
 
if ($maximum>$minimum):
echo 'От <b>'.(round($minimum * 100) / 100).' руб.</b>';
echo ' До <b>'.(round($maximum * 100) / 100).' руб.</b>';
 
else:
 
if ($maximum==$minimum){
echo '<b>'.(round($maximum * 100) / 100).' руб.</b>';
}else{
echo $product_price;
}
 
endif;
 
?>

jos_ меняем на суффикс вашей таблицы VirtueMart.
« Последнее редактирование: 09.08.2012, 12:06:11 от kry » Записан
mis_tery
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 10


« Ответ #22 : 21.10.2012, 18:31:43 »

Замечено не работает, елси артикул не цифровой.
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #23 : 27.10.2012, 10:19:09 »

mis_tery, у меня все в порядке, пробовал с разными артикулами - символы, русские, eng, цыфры...
Записан
faraon_x
Давно я тут
****

Репутация: +27/-1
Offline Offline

Сообщений: 363


Чем смогу, тем помогу )))


« Ответ #24 : 28.10.2012, 15:53:37 »

Но как быть если дочерние позиции сняты с публикации, хотелось бы, чтобы тогда выводилась надпись: задать вопрос по товару.
Подскажите как дополнить?
Записан
kry
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 125



« Ответ #25 : 01.11.2012, 20:05:27 »

Да, faraon_x, есть проблемка. Если, например, из двух дочерних товаров со стоимостью 1250 руб. и 8000 руб. снять с публикации один товар, предположим, который за 8000 руб., то на странице категорий все равно будет выводиться "от 1250 руб. до 8000 руб.".
Нужно как-то "научить" код выводить только стоимость оставшегося товара (или, если имеется несколько дочерних товаров, товара с min или max значением стоимости, следующего за/перед товаром, снятым с публикации).

Ищем помощи...
Записан
morda77
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #26 : 23.04.2016, 01:16:49 »

Кто-нибудь может выложить подробное пошаговое решение данной проблемы, а не мутное описание?
Спасибо.
Записан
morda77
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #27 : 23.04.2016, 01:18:32 »

Я решила этот вопрос вручную, своими модификациями:
1) создала новое поле в админке: Цена от ...
2) вывела заглушку в категории товара "Цена от ..."
3) обновила новое поле в CSV Improved VirtueMart (именно им я пользуюсь для импорта товара)
4) добавила это поле в шаблон импорта товара в CSV Improved VirtueMart
5) заполнила свой файл .csv и импортировала уже с Ценой от: (заполнила где это необходимо)

Вот мой пример: http://www.deepvvater.com/internet-magazin/category/143.html?root=142



Можете подробно написать, что и как Вы сделали?
Спасибо.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet