Перейти к содержимому


Фотография
- - - - -

вопрос по корзине 2.2.0


  • Закрытая тема Тема закрыта
Сообщений в теме: 19

#1 jeyhunm

jeyhunm

Отправлено 13 May 2015 - 18:49

День добрый,

нужна помощь ,

не как не могу подобрать в новой корзине, чтобы в каких то случаях кнопка "в корзину"  и "стоимость товара"  не были видны в тизере и фуль

в старом варианте достаточно было отключить эти опции:

Показать при нулевой цене
Показать при нулевом балансе
 
например, для модели Мазерати Мистраль-Купе1
остаток установил "под заказ" и стоимость 0 рублей,
в роде то что нужно, но не как не убирается сама кнопка "в корзину"
2015-05-13 20-43-16 Скриншот экрана.png
 
в общем история такая,
нужно чтобы на  модели которые стоимость более 3000 рублей, было возможность только отправить запрос на этот модель, при этом кнопка "в корзину" не было видно 

Сообщение отредактировал jeyhunm: 13 May 2015 - 18:51

  • 0

#2 tapakan

tapakan

Отправлено 14 May 2015 - 10:22

Скрывать элемент цены, если нет остатка или итоговая цена нулевая.

 

Файл 

media\zoo\applications\jbuniversal\elements\jbprice\jbprice.php

метод hasValue замените на

public function hasValue($params = array())
{
    $params = new AppData($params);
    $config = $this->setTemplate($params->get('template', 'default'))->getParameters();
    $total = $this->getList()->getTotal();
    $inStock = $this->getList()->current()->inStock(1);

    return !empty($config) && !$total->isEmpty() && $inStock;
}

Скрывать элемент цены "Кнопки", если итоговая стоимость >= 3000 рублей.

 

Файл 

media\zoo\applications\jbuniversal\cart-elements\price\buttons\buttons.php

метод hasValue замените на

public function hasValue($params = array())
{
    $list = $this->getJBPrice()->getList();

    return $list->getTotal()->compare(3000, '>=');
}

Сообщение отредактировал tapakan: 14 May 2015 - 10:24

  • 3

#3 jeyhunm

jeyhunm

Отправлено 14 May 2015 - 16:25

спасибо, попробую , опять приходится изменять файлы в ручную, 

я думаю это важная вещь для интернет магазина. может внедрить такую функцию в настройки?

 

вообще можно было еще сделать таким образом,

имеется ввиду с помощью настроек в админке.

если товара нет на складе, то кнопка корзина сменился бы на кнопку уведомить о поставке, при клике открывается поле, 

как на скриншоте

2015-05-14 18-23-38 Скриншот экрана.png

 

вот эта страница 

http://aptekagmc.ru/...hebnaya?page=10


  • 0

#4 jeyhunm

jeyhunm

Отправлено 14 May 2015 - 22:30

Что получается по этим двум изменениям.
1. если использовать первый вариант, то убирается полностью элемент цены (кнопка в корзину, цена элемента и тд.)
лично для меня подошло бы этот вариант,
но после изменений этого кода,  те элементы которые имеются в наличии и итоговая сумма у них не нулевые для них  кнопка в корзину вообще не работает.
 
2. если использовать второй вариант, то убирается только кнопка в корзину, остальное остается (цена элемента, остаток на складе и пр.)
главное нужно учесть,  если потребуется Скрывать Кнопку "в корзину" когда итоговая стоимость элемента  >= 3000 рублей.
в коде нужно указать этот знак '>='  таким образом '<='
этот вариант '>='  работает когда стоимость элемента '<=' 3000 рублей.
 
подобрал вариант если нужно убрать кнопку "в корзину" при этом оставить инфо об остатке на складе.
для этого в настройках элемента цены нужно отключить - Показать при нулевом значении.
еще , выше указанном коде заменить
(3000, '>=')
на это 
(0, '>')
 
таким образом, если цена элемента равно нулю, то кнопка корзина не будет видно,
  • 0

#5 jeyhunm

jeyhunm

Отправлено 07 June 2015 - 17:19

День добрый ,
срочно нужна помощь 
после последнего обновления, JBZoo 220v для подписчиков с "плюсом" RC #2 rev2715, не как не убирается кнопка корзина у товара ,
все варианты перепробовал, не как.
 
до обновления помогал замена в этом файле 
media\zoo\applications\jbuniversal\cart-elements\price\buttons\buttons.php
метод hasValue 
на 
 public function hasValue($params = array())
{
    $list = $this->getJBPrice()->getList();
 
    return $list->getTotal()->compare(0, '>');
}
 
 
 
в общем нужно убрать кнопку корзина если стоимость товара равно нулю??
спасибо ,
  • 0

#6 SmetDenis

SmetDenis

Отправлено 07 June 2015 - 18:41

Попробуйте заменить условие на следующий вариант
public function hasValue($params = array()) {
    $prices = $this->getPrices();
    return !$prices['total']->isEmpty();
}

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 jeyhunm

jeyhunm

Отправлено 07 June 2015 - 18:50

нет , не помогло, 

кнопка корзина остается 


  • 0

#8 jeyhunm

jeyhunm

Отправлено 08 June 2015 - 09:36

будут какие либо еще предложения ? 

условия можно изменить,

убрать кнопку в корзину!, при нулевом остатке товара (это тоже самое что нет на складе)

 

сейчас подправил код как в первом варианте 

Файл 
 
media\zoo\applications\jbuniversal\elements\jbprice\jbprice.php

 

 

метод hasValue замените на

public function hasValue($params = array())
{
    $params = new AppData($params);
    $config = $this->setTemplate($params->get('template', 'default'))->getParameters();
    $total = $this->getList()->getTotal();
    $inStock = $this->getList()->current()->inStock(1);
 
    return !empty($config) && !$total->isEmpty() && $inStock;
}

 

 

в роде сработал, удаляется кнопка в корзину! у товаров остатки которые равно нулю, этот вариант меня больше бы устроил,

но появляется не удобства, 

когда кладешь товар в корзину не появляется кнопка "перейти в корзину" ??

2015-06-08 11-54-30 Скриншот экрана.png


Сообщение отредактировал jeyhunm: 08 June 2015 - 09:56

  • 0

#9 tapakan

tapakan

Отправлено 08 June 2015 - 12:43

Переопределите метод render у кнопок.

/**
* @param array $params
* @return mixed|string
*/
public function render($params = array())
{
if(!$this->hasValue($params)) {
    return $this->renderWrapper();
}

    return parent::render($params);
}

Это сделано для того, чтобы задать разметку шаблона цены. К примеру, когда у варианта по умолчанию(Выводится по загрузке страницы) элемент не имеет значения(Не выводится на странице), а после смены варианта знаение есть. Виджет должен понимать в какой контейнер добавлять данные полученные из аякса, для этого выводится системная обертка.

Это лишь временное решение, пока не придумали чего-нибудь "по умнее".


  • 0

#10 jeyhunm

jeyhunm

Отправлено 08 June 2015 - 13:29

так укажите что куда добавить или удалить , если можно ?  :)


  • 0




Click to return to top of page in style!