Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


ActiveSync

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 } ?>

 

Змінено користувачем ActiveSync
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

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

<?php else { ?>

Надіслати
Поділитися на інших сайтах


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.

Надіслати
Поділитися на інших сайтах


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

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

 

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

Надіслати
Поділитися на інших сайтах

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

 

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

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

Надіслати
Поділитися на інших сайтах


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

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

 

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

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

  • +1 1
Надіслати
Поділитися на інших сайтах

4 минуты назад, spectre сказал:

 

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

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

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

Надіслати
Поділитися на інших сайтах


В 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'];

 

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах

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'],

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

Надіслати
Поділитися на інших сайтах


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

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

так

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

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 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 } ?>

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

Змінено користувачем nikazz
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.