Jump to content

Несколько значений для одного свойства в товаре?


Recommended Posts

Всем привет, нужно каким-то образом реализовать добавление нескольких вариантов к примеру варианты цвета в созданное поле в разделе свойств товаров, более детально - при добавлении товара у нас отображается свойство цвет, заполнить его нужно несколькими вариантами цветов через запятую, там красный, синий, зеленый, при этом они должны точно так же отображатся в фильтре товаров в категориях и фильтрация товаров происходила по одному из значений а не по всем сразу, в данный момент когда данное поле заполнить таким образом, в фильтре это значение получается нераздельным и три цвета воспринимается как один общий параметр в товаре!

Как реализовать такую возможность для полей свойств при добавлении товаров? Благодарность будет в рублях!)

Link to post
Share on other sites

неужели нет проще решения? зачем покупать такой модуль, если нужно всего лишь сделать сортировку по параметрам свойства товара, которые введены через запятую, и вывести не как один параметр сортировки, а как несколько и не учитывать вот эту самую запятую а воспринимать ее как разделитель?

Link to post
Share on other sites

Т.е. Вы предпочитаете полнотекстовый поиск?

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

 

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

Link to post
Share on other sites

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

 

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

мультиязычность -> мультисвойств

Да, есть. И импорт работает по этому принципу, только резделение через ;. При созранении разбивается на разные свойства.

Link to post
Share on other sites
  • 1 year later...

А как добавить сортировку выводимых значений? 

Чтобы значения выводились не так: 

120, 60, 130, 70, 140, 80, 150, 90, 160, 170, 180, 190, 200, 100, 40, 110, 50

 

А вот так:

40, 50, 60, 70..... итд

 

                        $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;
Link to post
Share on other sites
  • 2 years later...

я делал так, сортировка на этапе выборки значений характеристик

 

api/Features.php

185 строка - сортировка значений по длине свойства LENGTH(value) ASC

WHERE 1 $feature_id_filter $product_id_filter $brand_id_filter $features_filter GROUP BY po.feature_id, po.value ORDER BY LENGTH(value) ASC, value");
Edited by aroman80
Link to post
Share on other sites
  • 2 weeks later...

получается в коде http://forum.simplacms.ru/topic/6089-несколько-значений-для-одного-свойства-в-товар/?p=104127

сортировка идет в фильтре

 

а в карточке товара "product" сортировка тут (api/Features.php самый конец файла)

 

public function get_product_options($product_id)
	{
		$query = $this->db->placehold("SELECT f.id as feature_id, f.name, po.value, po.product_id FROM __options po LEFT JOIN __features f ON f.id=po.feature_id WHERE po.product_id in(?@) 
ORDER BY f.position", (array)$product_id);
		$this->db->query($query);
		return $this->db->results();
	}

меняем ORDER BY f.position на ORDER BY LENGTH(value) ASC

и получаем сортировку по длине значения 0,1,2,3,4,10,100,1000,10000

Edited by aroman80
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...