Jump to content

Загрузка товара из csv и блок Многоуровневой навигации


Vvasya

Recommended Posts

Всем доброго времени суток!

Имеется такая проблемка...

PrestaShop 1.5.6.0
 
Загружаю товар из csv, в котором указаны свойства (в формате Название:Значение)
Эти свойства подтягиваются, но вот со значениями проблемка:
 

9d20c5f8b710ace10ccd64595cf2e4a4a1b0bd1e      То есть все значения, даже одинаковые, подтягиваются заново.

 

Соответственно в настройке блока многоуровневой навигации это выглядит вот так:

1b467b1261863b96745f15b220c729558e1e9906

 

 

 

И на сайте сам блок выглядит вот так:

3f84a58f1e011504d1c829567f2a2fbb54d08606

 

Помогите  решить возникшую проблемку...

Link to comment
Share on other sites

У тебя для этого поля такие значения?

Свойство (Название:Значение:Позиция)

Т.е.: 

Состав:90% Хлопок:1

В другом товаре ровно так же.

Если у товара несколько свойств, то каждое новое свойство идет в отдельной колонке,  через разделитель ; как и у всех других параметров товара, только в конце ставишь другую цифру, типа 1, 2,3... это типа позиции этих свойств при их выводе.

Edited by Kerm (see edit history)
Link to comment
Share on other sites

Да - значения все одинаковые.

Насколько я знаю - номер в конце ставить необязательно, но пробовал и так и так - эффект тот же...

 

Вот нашел участок кода, который отвечает за эту функцию. Помогите понять, почему не работает проверка.

	foreach (explode($this->multiple_value_separator, $features['features']) as $single_feature)
	{
		$tab_feature = explode(':', $single_feature);
		$feature_name = trim($tab_feature[0]);
		$feature_value = trim($tab_feature[1]);
		$position = isset($tab_feature[2]) ? $tab_feature[2]: false;
		if(!empty($feature_name) && !empty($feature_value))
		{
			$id_feature = Feature::addFeatureImport($feature_name, $position);
			$id_feature_value = FeatureValue::addFeatureValueImport($id_feature, $feature_value, $product->id, $id_lang);
			Product::addFeatureProductImport($product->id, $id_feature, $id_feature_value);
		}
	}
Link to comment
Share on other sites

У меня преста 1.5.6

Вот нашел этот же участок кода в престе 1.4.11

Как мне исправить мою престу, что проверялись значения?

$features = get_object_vars($product);
foreach ($features as $feature => $value)
	if (Tools::strlen($product->{$feature}) && strncmp($feature, '#F_', 3) === 0)
	{
		$feature_name = str_replace('#F_', '', $feature);
		$id_feature = Feature::addFeatureImport($feature_name);
		$feature_tmp = new Feature($id_feature);
		$flag = true;												
		if (Validate::isLoadedObject($feature_tmp))
		{
			$id_lang = (int)Language::getIdByIso(trim(Tools::getValue('iso_lang')));
			$ProductFeatures = $product->getFeatures();
			foreach($ProductFeatures as $ProductFeature)
			{
				if (is_array($ProductFeature) && isset($ProductFeature['id_feature']) && $ProductFeature['id_feature'] == $id_feature)
				{
					$featureValue = new FeatureValue((int)$ProductFeature['id_feature_value']);
					if(Validate::isLoadedObject($featureValue))
					{
						$featureValue->value[$id_lang] = $value;
						$featureValue->update();
						$flag = false;
					}
				}
			}
		}
		if ($flag)
		{
			$id_feature_value = FeatureValue::addFeatureValueImport($id_feature, $product->{$feature});	
			Product::addFeatureProductImport($product->id, $id_feature, $id_feature_value);
		}
	}
Link to comment
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
×
×
  • Create New...