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


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

Убрать кнопку «В корзину» при нулевом остатке и можно ли контролировать остаток

корзина форма заказа

Лучший Ответ pholex315 , 27 March 2015 - 05:08

Нашел остаток, оказалось совсем просто. Сделал так:
 
В сайт\media\zoo\applications\jbuniversal\elements\jbpriceadvance\tmpl\tmpl_default.php:
 

<? foreach ($this->getIndexData() as $key => $data): ?>
   <div class="jsJBPriceAdvance jbprice-advance <?php echo $uniqClass; ?>" id="<?php echo $iniqId . $key; ?>">
       <div class="sku"><?php echo $skuTmpl; ?></div>
	  <? /**  <div class="desc"><?=$data['params']['description']?></div> */?>
       <div class="cena"> <?php echo $pricesTmpl; ?></div>
	   <div class="sklad"><?php echo $balanceTmpl; ?></div> 
	    <div class="kol">
			<?php 
					if($data['balance']>0){
					echo $countTmpl;
					}
			?>
		 </div> 
		<div class="but">
			<?php 
					if($data['balance']>0){
					echo $buttonsTmpl;
					}
			?>
			</div> 
    </div>

Осталось только заставить нормально работать кнопку «Добавить в корзину». Но это уже другая история.

Перейти к сообщению


Сообщений в теме: 3

#1 pholex315

pholex315

Отправлено 25 March 2015 - 05:12

Добрый день, специалисты!

Воспользовался советом от i001 и прикрутил к товару варианты:
 
some-articles-per-item.jpg
 
Но для довольно большой части товаров нужно выводить вот такую форму:
 
no-articles-per-item.jpg

Это нужно делать, когда товара нет в наличии.
 
Нашел вариант, когда кнопка скрыта при нулевой цене. Но мне нужно скрыть не только кнопку, а и поле «количество» со всеми атрибутами.

 

Понятно, что заменить надпись «Нет в наличии» на нужную мне я вполне сумею, а вот что подкрутить в \media\zoo\applications\jbuniversal\elements\jbpriceadvance\jbpriceadvance.php и \media\zoo\applications\jbuniversal\elements\jbpriceadvance\tmpl\tmpl_default.php боюсь сам не справлюсь :-(

 

Помогите, пожалуйста!

 

Второй вопрос про количество: могу ли я как-то указать количество товара для каждой вариации (с первого скриншота), чтоб это количество автоматом убавлялось при перемещении товара в корзину. Или это только в новой версии?

Сейчас у меня: Joomla: 2.5.28     JBZoo: 2.1.5 Pro (build 1)     Zoo: 3.3.4


  • 0

#2 Cheren-dow

Cheren-dow

Отправлено 25 March 2015 - 15:25

pholex315, доброго времени суток. В любом из шаблоне элемента jbpriceadvance получить все данные о цене можно с помощью:

<?php
// например в сайт\media\zoo\applications\jbuniversal\elements\jbpriceadvance\tmpl\tmpl_default.php
$priceData = $this->data();
var_dump($priceData);
?>

так мы видим все данные:

cthf_200x0.png

 

Получаем остаток следующим образом:

$priceData = $this->data();
$balance   = $priceData['basic']['balance'];

Теперь на основании значения можете скрывать или показывать свои блоки


  • 0
Изображение
 

#3 pholex315

pholex315

Отправлено 26 March 2015 - 03:58

В любом из шаблоне элемента jbpriceadvance получить все данные о цене можно с помощью:

<?php
// например в сайт\media\zoo\applications\jbuniversal\elements\jbpriceadvance\tmpl\tmpl_default.php
$priceData = $this->data();
var_dump($priceData);
?>

...

 

Получаем остаток следующим образом:

$priceData = $this->data();
$balance   = $priceData['basic']['balance'];

Теперь на основании значения можете скрывать или показывать свои блоки

 

Спасибо! Победил задачу, все работает!

 

Upd. Думал, что работает (sweat) Но проблема пока есть, во всяком случае для меня. Приведенный вариант решения хорош, когда у товара нет вариаций. 

А что делать, когда они есть и их может быть разное количество и довольно много? Как добраться до того [balance], который лежит внутри? И так, чтобы это было оптимально? Насколько я вижу, тут и так цикл:

<? foreach ($this->getIndexData() as $key => $data): ?>
   <div class="jsJBPriceAdvance jbprice-advance <?php echo $uniqClass; ?>" id="<?php echo $iniqId . $key; ?>">
       <div class="sku"><?php echo $skuTmpl; ?></div>
       <div class="cena"> <?php echo $pricesTmpl; ?></div>
	   
<?php
/* Так я, увы, получаю количество только для базового варианта, и все проверки работают только для него */

	$priceData = $this->data();
	$balance   = $priceData['basic']['balance'];
?>	   
		<div class="sklad"><?php echo $balanceTmpl; ?></div> 
		<div class="kol">
		<?php 
			if($balance>'0'){
			echo $countTmpl;
			}
		?>
		</div> 
		<div class="but">
		<?php 
			if($balance>'0'){
			echo $buttonsTmpl;
			}
		?>
	     </div> 
 </div>

Сообщение отредактировал pholex315: 26 March 2015 - 06:15

  • 0

#4 pholex315

pholex315

Отправлено 27 March 2015 - 05:08   Лучший Ответ

Нашел остаток, оказалось совсем просто. Сделал так:
 
В сайт\media\zoo\applications\jbuniversal\elements\jbpriceadvance\tmpl\tmpl_default.php:
 

<? foreach ($this->getIndexData() as $key => $data): ?>
   <div class="jsJBPriceAdvance jbprice-advance <?php echo $uniqClass; ?>" id="<?php echo $iniqId . $key; ?>">
       <div class="sku"><?php echo $skuTmpl; ?></div>
	  <? /**  <div class="desc"><?=$data['params']['description']?></div> */?>
       <div class="cena"> <?php echo $pricesTmpl; ?></div>
	   <div class="sklad"><?php echo $balanceTmpl; ?></div> 
	    <div class="kol">
			<?php 
					if($data['balance']>0){
					echo $countTmpl;
					}
			?>
		 </div> 
		<div class="but">
			<?php 
					if($data['balance']>0){
					echo $buttonsTmpl;
					}
			?>
			</div> 
    </div>

Осталось только заставить нормально работать кнопку «Добавить в корзину». Но это уже другая история.


  • 0





Темы с аналогичным тегами корзина форма заказа

Click to return to top of page in style!