Перейти к содержанию
Официальный форум поддержки Simpla

Вывод вариантов с нулевым количеством


Рекомендуемые сообщения

Добрый день. Подскажите пожалуйста, как вывести варианты с нулевым количеством в карточке товара?

Сейчас варианты скрываются если в view/Product.php есть:

foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) 

Если заменить на:

foreach($this->variants->get_variants(array('product_id'=>$product->id)) as $v) 

То все работает как надо, но встречается другая проблема, а именно:

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

 

Изменено пользователем get31
Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, get31 сказал:

Добрый день. Подскажите пожалуйста, как вывести варианты с нулевым количеством в карточке товара?

Сейчас варианты скрываются если в view/Product.php есть:


foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) 

Если заменить на:


foreach($this->variants->get_variants(array('product_id'=>$product->id)) as $v) 

То все работает как надо, но встречается другая проблема, а именно:

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

 

разлогиньтесь )

Ссылка на сообщение
Поделиться на другие сайты
35 минут назад, shooroop сказал:

разлогиньтесь )

юмор так себе...

но а если серьезно, то когда выводит что товара нет в наличии, если дважды нажать в админке сохранить товар, то выводит нормально, но зачем нажимать дважды?)) 

Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, get31 сказал:

юмор так себе...

но а если серьезно, то когда выводит что товара нет в наличии, если дважды нажать в админке сохранить товар, то выводит нормально, но зачем нажимать дважды?)) 

на чистой симпле такого не наблюдаю

Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, get31 сказал:

встречается другая проблема, а именно:

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

 

В стандартном шаблоне отдельного товара нигде не используется количество. Поэтому вопрос индивидуальный. Если хотите получить содержательный ответ, но надо выкладывать все свои изменения. Скорее всего, количество у Вас берет из ПЕРВОГО попавшегося варианта, поэтому и результат такой.

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, phukortsin сказал:

В стандартном шаблоне отдельного товара нигде не используется количество. Поэтому вопрос индивидуальный. Если хотите получить содержательный ответ, но надо выкладывать все свои изменения. Скорее всего, количество у Вас берет из ПЕРВОГО попавшегося варианта, поэтому и результат такой.

Проверил на стандартной, да действительно. Изменений много, что уже запутался)))

Но в стандартной вообще не выводятся варианты c 0 даже если убрать 'in_stock'=>true, а значит у меня тоже не отображается.

в ProductView.php у меня:

		$product_url = $this->request->get('product_url', 'string');
		
		if(empty($product_url))
			return false;

		// Выбираем товар из базы
		$product = $this->products->get_product((string)$product_url);
		if(empty($product) || (!$product->visible && empty($_SESSION['admin'])))
			return false;

		$product->images = $this->products->get_images(array('product_id'=>$product->id));
		$product->image = reset($product->images);

		$product->colors = array();
		$variants = array();

		foreach($this->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) {
			$variants[$v->id] = $v;
			if($v->name){
				if(!in_array($v->name, $product->colors))
					$product->colors[] = $v->name;
			}
		}
    
		$product->variants = $variants;
    


		// Вариант по умолчанию
		if(($v_id = $this->request->get('variant', 'integer'))>0 && isset($variants[$v_id]))
			$product->variant = $variants[$v_id];
		else
			$product->variant = reset($variants);
          
		$product->features = $this->features->get_product_options(array('product_id'=>$product->id));
		$product->features = $this->featuresgroupe->get_product_gfoptions(array('product_id'=>$product->id));
    
		$temp_options = array();
		foreach($product->features as $option) {
			$temp_options[$option->feature_id]->feature_id = $option->feature_id;
			$temp_options[$option->feature_id]->name = $option->name;
			$temp_options[$option->feature_id]->values[] = $option->value;   
		}
		foreach($temp_options as $id => $option)
			$temp_options[$id]->value = implode(', ', $temp_options[$id]->values);        
    
		$product->features = $temp_options;

 

Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, get31 сказал:

Но в стандартной вообще не выводятся варианты c 0 даже если убрать 'in_stock'=>true, а значит у меня тоже не отображается.

Совершенно неверное утверждение. Если Вы делали изменения, тем более много изменений, в которых уже сами с трудом ориентируетесь, то отображение в стандартной Simpla, вообще говоря, с отображением у Вас никак не связано...

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, phukortsin сказал:

Совершенно неверное утверждение. Если Вы делали изменения, тем более много изменений, в которых уже сами с трудом ориентируетесь, то отображение в стандартной Simpla, вообще говоря, с отображением у Вас никак не связано...

Проверил на стандартной симпле, вроде разобрался. Сейчас пробую на своем, может уже путаюсь потому как долго сижу)))

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...