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

  • 27 Ответов
  • 4212 Просмотров

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

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Нужна помощь в следующем вопросе:
На форуме 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

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

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

[вложение удалено Администратором]
« Последнее редактирование: 09.08.2012, 01:16:08 от kry »

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #1 : 21.05.2012, 22: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

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

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

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

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

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #2 : 22.05.2012, 23:02:14 »
При поиске по тому же forum.virtuemart.net наткнулся на решение добавлять на странице категорий рядом с ценой родительского товара слово: "Цена от" (или "from", как в их варианте). Но это не выход для меня, так как в моем случае цена родительского товара равна нулю.
Если кому-то все же нужен хак, держите (оригинал):

Цитировать
Спойлер
[свернуть]

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

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #3 : 26.05.2012, 23:32:23 »
Жаль, что ответов нет >:(, хотя решенную тему и в FAQ можно было добавить.

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

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #4 : 30.05.2012, 23:48:14 »
Добавил тему в Коммерческие вопросы http://joomlaforum.ru/index.php/topic,217703.0.html. Присоединяйтесь!

*

kreolka_8

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #5 : 14.06.2012, 22: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
« Последнее редактирование: 15.06.2012, 01:14:09 от kreolka_8 »

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #6 : 15.06.2012, 00:54:25 »
kreolka_8, интересное решение. Я думал о похожем, но через MyImport (бесплатный компонент импорта-экспорта от dinox). А CSV Improved VirtueMart платный, не подскажите его стоимость?

*

kreolka_8

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #7 : 15.06.2012, 00:57:38 »
CSV Improved VirtueMart так же бесплатен, я изначально разобралась в нём, так и пользуюсь.
Думаю процесс у всех похож, главное что бы была функция "Обновить новое поле", а потом уж импортировать.

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

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #8 : 15.06.2012, 01:09:20 »
Ок! Подумаю над этим.

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

...остальные пункты еще не совсем. Будут вопросы - обращусь. Хорошо?

*

kreolka_8

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #9 : 15.06.2012, 01:12:46 »
CSV Improved VirtueMart  для VM 1.1.9 есть бесплатная версия: 1.9

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

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

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #10 : 15.06.2012, 01:25:46 »
kreolka_8, я так понимаю, что у вас категория "Алюминиевые радиаторы" строится на одном шаблоне вывода товаров browse, а, например, подкатегория смесители "ELGHANSA" на другом шаблоне browse? Иначе, если в одной категории будут выводится единичные товары и товары с дочерними подтоварами, то у последних будет 2 цены - с добавленным новым текстовым полем и цена родительского товара.

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #11 : 15.06.2012, 01: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

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #12 : 15.06.2012, 01:42:31 »
Нет, нет. У меня все категории по одним шаблоном browse 3. Просто у меня для импорта товара через CSV Improved два шаблона: 1-ый - есть дополнительное поле "Цена от", 2-ой без этого поля. И я по отдельности импортировала. А вообще можно все разом, я после дорабатывала и для меня было удобнее импортировать товары по отдельности: Смесители, радиаторы и т.д.

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

*

kreolka_8

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #13 : 15.06.2012, 01:44:38 »
На офсайте есть com_csvi_1.9.2
Это то, о чем вы говорите?

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

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

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #14 : 15.06.2012, 01:59:19 »
Цитировать
Две цены никак выводится не могут. Если товар идёт с дочерними, то цена не выводится в принципе в категориях
Хм, у меня цена родительского товара = 0 (использую хак "Автопереход на первый зависимый товар, если цена род-кого товара равна нулю", дочерние выводятся не списком, как у вас, а выпадающим drop_down). Когда я вывожу цену на странице вывода товаров, то вижу Цена: 0 руб. Буду разбираться.
А компонент вышлите - сравню.

*

kreolka_8

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #15 : 15.06.2012, 02:08:01 »
Я когда импортировала товар, у которого есть дочерние, то цены прописывала только для дочерних, а в родительском даже "0" не вписывала- пустой оставила. Может в этом разница.
У меня в админке прописался "0" у родит. товара автоматом, а в карточке товара пусто, только выводилось "Цена: ". Тогда задала условие в карточке товара, что если Цена больше 10 р., то выводится полноценная "Цена: 20 р.", иначе пусто.

*

kreolka_8

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #16 : 15.06.2012, 02:09:48 »
А компонент вышлите - сравню.
Куда слать?

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #17 : 02.07.2012, 15:38:18 »
У меня в админке прописался "0" у родит. товара автоматом, а в карточке товара пусто, только выводилось "Цена: ". Тогда задала условие в карточке товара, что если Цена больше 10 р., то выводится полноценная "Цена: 20 р.", иначе пусто.
kreolka_8, покажите код, которым условие задавали.

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #18 : 02.07.2012, 15:43:43 »
Полагаю ответ здесь http://joomlaforum.ru/index.php/topic,103957.0.html

*

kreolka_8

  • Осваиваюсь на форуме
  • ***
  • 153
  • 2
Re: "Цена от:" на странице категорий
« Ответ #19 : 02.07.2012, 15: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

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #20 : 02.07.2012, 15:50:50 »
Спасибо, начну решать свой вопрос

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
Re: "Цена от:" на странице категорий
« Ответ #21 : 09.08.2012, 01:05:41 »
Вопрос разжёван и решен в этой ветке http://joomlaforum.ru/index.php/topic,103957.msg1163259.html#msg1163259!
Спасибо mis_tery за базовый код и artlux за его доработку!!
Показ цены "от" и "до" на странице категорий в зависимости от цены дочерних товаров. Если дочерних нет просто вывод цены.
В вашем файле browse_X.php (X - ваше число), например, вместо
Код: php-brief
<?php echo $product_price ?>
,
который выводит цену товара на странице категорий, вставляем:
Код: php-brief
<?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, 14:06:11 от kry »

*

mis_tery

  • Захожу иногда
  • **
  • 10
  • 1
Замечено не работает, елси артикул не цифровой.

*

kry

  • Осваиваюсь на форуме
  • ***
  • 125
  • 2
mis_tery, у меня все в порядке, пробовал с разными артикулами - символы, русские, eng, цыфры...

*

faraon_x

  • Давно я тут
  • ****
  • 363
  • 26
  • Чем смогу, тем помогу )))
Но как быть если дочерние позиции сняты с публикации, хотелось бы, чтобы тогда выводилась надпись: задать вопрос по товару.
Подскажите как дополнить?
Вопросы по JFORMS, можно ещё попробовать задать здесь
Российский 3d сканер от разработчиков и производителей

*

kry

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

Ищем помощи...

*

morda77

  • Новичок
  • *
  • 6
  • 0
RE: "Цена от:" на странице категорий
« Ответ #26 : 23.04.2016, 02:16:49 »
Кто-нибудь может выложить подробное пошаговое решение данной проблемы, а не мутное описание?
Спасибо.

*

morda77

  • Новичок
  • *
  • 6
  • 0
RE: "Цена от:" на странице категорий
« Ответ #27 : 23.04.2016, 02: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



Можете подробно написать, что и как Вы сделали?
Спасибо.