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

bgg87

  • Захожу иногда
  • 164
  • 2 / 0
  • Истина где-то рядом...
Всем привет!
Уже сутки пытаюсь вывести кнопку "Купить" (добавить в корзину) в "Сопутствующие товары" (похожие товары), но ничего не выходит, где только не искал и что только не делал.
VirtueMart 3.0.6.4

Методом тыка выяснил что шаблон находится тут:
/components/com_virtuemart/sublayouts/related.php
Код
<?php defined('_JEXEC') or die('Restricted access');
$related = $viewData['related'];
$customfield = $viewData['customfield'];
$thumb = $viewData['thumb'];
//juri::root() For whatever reason, we used this here, maybe it was for the mails
echo JHtml::link (JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $related->virtuemart_product_id . '&virtuemart_category_id=' . $related->virtuemart_category_id), $thumb   . $related->product_name, array('title' => $related->product_name,'target'=>'_blank'));
if($customfield->wPrice){
$currency = calculationHelper::getInstance()->_currencyDisplay;
echo $currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $related->prices);
}
if($customfield->wDescr){
echo '<p class="product_s_desc">'.$related->product_s_desc.'</p>';
}

очень прошу подскажите пожалуйста что делать.
Да и в PHP я ноль! :)
*

neogeek

  • Захожу иногда
  • 203
  • 21 / 2
Должно помочь -
Код
<?php echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$product,'row'=>0)); ?>
*

neogeek

  • Захожу иногда
  • 203
  • 21 / 2
Хотя немного не так, там другая переменная же вместо product должно быть related
вот так точно выведет кнопку купить:
Код
<?php echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$related,'row'=>0)); ?>
*

bgg87

  • Захожу иногда
  • 164
  • 2 / 0
  • Истина где-то рядом...
Огромное человеческое спасибо!
Ваша помощь неоценима - вопрос решен!  :D

P.S. оказывается в PHP я не полный ноль. При добавлении вашего кода показал белый экран, немного подумав и сравнив с PHP товаров увидел что нет закрывающего тега ?>
В итоге код выглядит так
Код
<?php defined('_JEXEC') or die('Restricted access');

$related = $viewData['related'];
$customfield = $viewData['customfield'];
$thumb = $viewData['thumb'];

//juri::root() For whatever reason, we used this here, maybe it was for the mails
echo JHtml::link (JRoute::_ ('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $related->virtuemart_product_id . '&virtuemart_category_id=' . $related->virtuemart_category_id), $thumb   . $related->product_name, array('title' => $related->product_name,'target'=>'_blank'));
if($customfield->wPrice){
$currency = calculationHelper::getInstance()->_currencyDisplay;
echo $currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $related->prices);
}
if($customfield->wDescr){
echo '<p class="product_s_desc">'.$related->product_s_desc.'</p>';

}
?>
<?php echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$related,'row'=>0)); ?>
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru
Должно помочь -
Код
<?php echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$product,'row'=>0)); ?>
А почему сейчас в версии 3.0.13.4 сопутствующие товары выводит customfields.php, при этом шаблон related.php существует.
В шаблоне товара идет такой код
Цитировать
echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'related_products','class'=> 'product-related-products','customTitle' => true ));
Как же тогда заюзать related.php? В вызове функции шаблон менять пробовал, просто переставало выводить.
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru
Извиняюсь. все выводит, не доглядел.
Может знаете как вывести еще настраиваемые поля у сопутствующих, т.к. они на цену влияют.
« Последнее редактирование: 29.02.2016, 23:33:33 от stydent »
*

gartes

  • Завсегдатай
  • 1643
  • 128 / 5
  • Е = mс²
Цитировать
Может знаете как вывести еще настраиваемые поля у сопутствующих, т.к. они на цену влияют.

Ну так так и выводите...
Код: php
<?= shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'related_products','class'=> 'product-related-products','customTitle' => true )); ?>
Тут есть несколько моментов :
1.  'customfields'= это название шаблона для вывода настраиваемых полей. этот шаблон находится в /components/com_virtuemart/sublayouts/customfields.php

2. 'product'=>$this->product, тет передается объект продукта.. в разных местах VirtueMart он может быть в разных переменных.
к примеру в related он так записан $related.
Соответственно что бы из related вызвать customfields то строка
'product'=>$this->product, -
должна быть записана как
'product'=> $related,

3. 'position'=>'related_products',
Это позиция в которой выводится кастомарное поле. Эту позицию мы указываем при создании самого поля.
Но по скольку Вы говорите что настраиваемые поля влияют на стоимость товара то скорее всего это позиция addtocart
И для того что бы выбор этого поля влиял на цену товара то вы должны выводить его в форме в которой находится кнопка КУПИТЬ.

В итоге получаем
Код: php
<?= shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$related,'position'=>'addtocart')); ?>

но еще раз напомню. Позиция 'addtocart' для того что бы менялась цена в зависимости от выбора этого поля должна быть внутри блока
Код
<form method="post" class="product js-recalculate" action="#">
...
  <div class="addtocart-bar">
       <input type="submit" name="addtocart" class="addtocart-button" value="Купить" title="Купить">
  </div>
...
<?= shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$related,'position'=>'addtocart')); ?>
</form>


ps Если кого то смущает такой значок то это сокращенное написание функции echo. Срабатывает в начале кода.
т.е. <?= 'текст' ?> и <?php echo 'текст' ?> равнозначны. Очень удобно когда нужно вывести значение только одной переменной.)
 
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru
Ну так так и выводите...
Код: php
<?= shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'related_products','class'=> 'product-related-products','customTitle' => true )); ?>

так то я пробовал.
в
Код
<?php echo shopFunctionsF::renderVmSubLayout('addtocart',array('product'=>$related,'row'=>0)); ?>
уже есть вывод полей. но почему то $related их не имеет. Хотя если перейти прям в товар, они будут выводиться
*

gartes

  • Завсегдатай
  • 1643
  • 128 / 5
  • Е = mс²
Цитировать
но почему то $related их не имеет
по тому наверное что в $related не подключена модель кастомарных полей..

Как подключить модель кастомарных полей можно посмотреть в модели продуктов, в папке admin/components/com_virtuemart/models/product.php

Щас метод не скажу..)))

Но тут вот что может получится ... Что если  у вас полей будет много для каждого запроса... то когда страница категорий сработает или рекомендуемых продуктов.. И там товаров будет много... то может сервак начать краснеть понемногу... )))

Так что лучше все таки  это отделенный файл шаблона за бацать. и там запросом по id товара и названию кастомарного поля как то искать...
 
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru

Но тут вот что может получится ... Что если  у вас полей будет много для каждого запроса... то когда страница категорий сработает или рекомендуемых продуктов.. И там товаров будет много... то может сервак начать краснеть понемногу... )))
 

задумано что будет только в карточке товара так.
т.е реализовать хочу вот это https://yadi.sk/i/ehh6d8OmpjdqP
Как это в один товар запихать не знаю. поэтому предложу клиенту на сопутствующих товарах делать, т.е. кнопка купить будет у каждого размера. Один размер - один товар.
*

gartes

  • Завсегдатай
  • 1643
  • 128 / 5
  • Е = mс²
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru
Если так то нечего голову морочить плагин есть такой
Пакетной продажи.
Вот так выглядит...


а тут в работе

спасибо
*

gartes

  • Завсегдатай
  • 1643
  • 128 / 5
  • Е = mс²
*

stydent

  • Захожу иногда
  • 150
  • 1 / 0
  • vlad-link.ru
так может и плагин дать )))) тоже не вопрос..
уже нашел catproduct
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести товары из подкатегории в категорию

Автор xlite

Ответов: 78
Просмотров: 23763
Последний ответ 08.03.2021, 10:06:58
от kisBoss
Добавить ссылку на товар вместо 'Выбрать Вариант' на странице категории

Автор Akeksandr

Ответов: 0
Просмотров: 32
Последний ответ 21.02.2021, 19:18:44
от Akeksandr
Приоритетный Itemid для формирования ссылок на товары/категории

Автор rsn

Ответов: 2
Просмотров: 190
Последний ответ 10.03.2020, 08:21:45
от rsn
Отключение всплывающего окна и перехода в корзину при добавлении товара

Автор calashnikov

Ответов: 15
Просмотров: 11906
Последний ответ 03.02.2020, 16:07:06
от zrkyuseo
Ссылка добавить в корзину?

Автор warlocksp

Ответов: 0
Просмотров: 1113
Последний ответ 25.09.2019, 13:44:20
от warlocksp