Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Статус товара (нет в наличии / цена)


Recommended Posts

Здравствуйте, пытался сделать в карточке товара отображение статуса товара ("Нет в наличии") с помощью php echo, вместо $price, если количество товара, которое указывается в поле Количество (quantity) будет меньше или равно 0.

 

Не могу разобраться, почему условие выполняется всегда.
В чем я дырявый? Прошу помочь.. Как правильней всего сделать? 
Если количество 0 - вывод php echo 'Нет в наличии' вместо цены или же с ценой, но ниже без кнопки fastorderForm

Если количество не 0, то как обычно выводит + вывод кнопки fastOrderForm.

 

	 <?php echo $promotion; ?>
     <?php if ($price) { ?>
      <div class="price">
	  <?php if($product_info['quantity'] > 1) { ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
		  <!-- fastOrderForm -->
          <input type="button" id="openFastOrderForm" value="БЫСТРЫЙ ЗАКАЗ"/>
         <!-- end fastOrderForm -->
        <?php } else { ?> 
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
         <?php if (isset($saving)) { ?>
           <div  class="savemoney">- <?php echo $saving; ?>%</div>
           <?php } ?> 
        <?php } ?>
	  <?php } elseif($product_info['quantity'] <= 0) { ?> 
	  <span><?php echo 'Нет в наличии'; ?></span>
	  <?php } ?>

 

Edited by ActiveSync
Link to post
Share on other sites

есть пару вопросов

<?php if($product_info['quantity'] > 1) { ?>

почему в начале > 1  - тут должно быть больше 0 

<?php } elseif($product_info['quantity'] <= 0) { ?> 

а тут зачем elseif если это последнее условие и зачем у него условие 

если было больше 1 ( 0 ) то в случае 'иначе' будет все остально и условие не нужно 

<?php else { ?>

Link to post
Share on other sites

55 минут назад, prived сказал:

есть пару вопросов


<?php if($product_info['quantity'] > 1) { ?>

почему в начале > 1  - тут должно быть больше 0 


<?php } elseif($product_info['quantity'] <= 0) { ?> 

а тут зачем elseif если это последнее условие и зачем у него условие 

если было больше 1 ( 0 ) то в случае 'иначе' будет все остально и условие не нужно 

<?php else { ?>

 

Сделал так:

	 <?php echo $promotion; ?>
     <?php if ($price) { ?>
      <div class="price">
	  <?php if(!$product_info['quantity'] > 0) { ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>
		<!-- fastOrderForm -->
          <input type="button" id="openFastOrderForm" value="БЫСТРЫЙ ЗАКАЗ"/>
         <!-- end fastOrderForm -->
        <?php } else { ?> 
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
         <?php if (isset($saving)) { ?>
           <div  class="savemoney">- <?php echo $saving; ?>%</div>
           <?php } ?> 
        <?php } ?>
	  <?php } else { ?>
		  <span><?php echo 'Нет в наличии'; ?></span>
		  <?php } ?>

Все равно не работает так, как надо. Ставил что 1, что 0.

Link to post
Share on other sites

6 минут назад, ActiveSync сказал:

 <?php if(!$product_info['quantity'] > 0) { ?>

 

Скорее всего тут ошибка уберите перед $product_info['quantity'] знак !

Link to post
Share on other sites
1 минуту назад, Bn174uk сказал:

 

Скорее всего тут ошибка уберите перед $product_info['quantity'] знак !

Убрал - не помогло. Действует только условие else (нет в наличии), даже когда в админке quantity задается больше 0.

Link to post
Share on other sites

1 минуту назад, ActiveSync сказал:

Убрал - не помогло. Действует только условие else (нет в наличии), даже когда в админке quantity задается больше 0.

 

там надо не продукт инфо а $quantity

перед этим добавив его в контроллер

  • +1 1
Link to post
Share on other sites
4 минуты назад, spectre сказал:

 

там надо не продукт инфо а $quantity

перед этим добавив его в контроллер

Благодарю, все работает так как надо :)

Link to post
Share on other sites

В 15.08.2018 в 16:36, spectre сказал:

 

там надо не продукт инфо а $quantity

перед этим добавив его в контроллер

Хорошо, а как теперь сделать тоже самое, но в категориях? Допустим мне надо выводить кнопку нет в наличии вместо обычной кнопки купить:

		<?php if($quantity2 > 0) { ?>
        <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
		<?php } else { ?>
		<input type="button" value="Нет в наличии" onClick='location.href="https://сайт"' id="button-cart" class="button" />
		<?php } ?>

Объявил переменную quantity2 в контроллере category.php, но ничего не происходит (всегда 0 - нет в наличии)

$this->data['quantity2'] = $category_info['quantity'];

 

Link to post
Share on other sites

А вот там уже result['quantity'] 

Посмотрите как генерируется массив товаров в контроллере и все поймёте 

Link to post
Share on other sites
17 часов назад, spectre сказал:

А вот там уже result['quantity'] 

Посмотрите как генерируется массив товаров в контроллере и все поймёте 

 

Судя по всему массив товаров в контроллере генерируется тут:

				$this->data['products'][] = array(
					'product_id'  => $result['product_id'],
						# OCFilter start
						'ocfilter_products_options' => $ocfilter_products_options[$result['product_id']],
						# OCFilter end
//					'thumb'       => $image,
					'name'        => $result['name'],
                                        'thumb'       => $image,
                                       	'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
										'length'      => number_format($result['length'], 1) . "",
                    'width'       => number_format($result['width'], 1) . "",
                    'height'      => number_format($result['height'], 1) . "",
       'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'rating'      => $result['rating'],
					'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
				);

по логике, мне нужно вставить

'quantity' => result['quantity'],

Если так - то по прежнему не работает, если нет, значит я кривой)

Link to post
Share on other sites

2 минуты назад, ActiveSync сказал:

Если так - то по прежнему не работает, если нет, значит я кривой)

так

а в категории будет $product['quantity']

  • +1 1
Link to post
Share on other sites
  • 2 years later...

Подскажите где ошибка?

 <?php if (($price > 0) || ($quantity > 0)) { ?>
 <input type="button" value="<?php echo $button_cart; ?>" id="button-cart" />
 <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
 <?php } ?>

по отдельности условия работаю, а в месте нет.

Edited by nikazz
Link to post
Share on other sites

<?php if (($price > 0) || ($quantity > 0)) { ?>

логика ИЛИ(OR)

 

<?php if (($price > 0) && ($quantity > 0)) { ?>

логика И(AND)

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.