Автор Тема: как добавить свойства товара в фильтр на престе 1.5.4  (Прочитано 9829 раз)

11 Ноябрь 2013, 16:02:15
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
После импорта нужно сбросить все настройки модуля. Переиндексировать товары, потом заново создать фильтры.
Если не помогла, переустановить модуль.
11 Ноябрь 2013, 17:22:58
Ответ #16
  • Пользователь
  • **
  • Сообщений: 75
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
#14

Судя по картинке - у Вас 181 значение фильтра. То, что они совпадают, роли не играет - это записи в базе. Предполагаю, что при импорте они каждый раз добавлялись как новые. Я в данной ситуации вижу один вариант  - ручная чистка базы свойств/атрибутов  с последующим редактированием позиций.
Сделайте экспорт всей базы с опциями DROP и IGNORE.

Найдите в базе таблицы attribute_lang  и feature_value_lang, экспортируйте их.
Очистите таблицы.
Отредактируйте экспортированные значения на предмет совпадений.
Импортируйте их назад.
Отредактируйте свойства товарных позиций или попробуйте их импортировать повторно, не создавая новых записей в указанных ранее таблицах.
11 Ноябрь 2013, 21:24:25
Ответ #17
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Очень старался понять, но не смог =)
Можешь попроще объяснить?

файл attribute_lang я нашел, но открыть ничем не смог
Как  его экспортировать/импортировать?
12 Ноябрь 2013, 12:47:09
Ответ #18
  • Пользователь
  • **
  • Сообщений: 75
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Есть панель для работы/редактирования базы MySQL? Типа phpmyadmin ? Если нет (ни встроенной у провайдера или установленной на локальный комп), то достаточно просто развернуть папку с файлами phpmyadmin в  корне сайта рядом с другими файлами. Через нее производим вход в базу, находим свои таблицы и любуемся их содержимым.
Можно и проще - через админ-панель сайта. Каталог/Атрибуты или Каталог/Свойства. И там увидим в одном из параметров очень много одинаковых значений. Дубли придется убрать руками. А потом еще и отредактировать свойства/комбинации товара.
12 Ноябрь 2013, 16:14:43
Ответ #19
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за совет, но у меня около 10к наименований и в каждом от 5 до 20 свойств, поэтому руками никак...
12 Ноябрь 2013, 16:52:29
Ответ #20
  • Пользователь
  • **
  • Сообщений: 75
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ну, тогда экспорт указанных ранее баз, ручное удаление одинаковых позиций (это неложно - в Excel'е, например), а затем, если эти свойства в комбинации - редактирование базы _product_attribute_combination - замена удаленных значений на одно оставленное Вами значение. Если в свойствах напутали - аналогичная работа с _feature_product.

В любом случае перед началом издевательства над базой сделайте копию.

14 Ноябрь 2013, 18:41:58
Ответ #21
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот нашел часть кода, которая должна отвечать в том числе и за проверку значений.
Помогите понять, почему в данном случае не работает проверка есть ли такое значение, или нет.
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);
}
}
14 Ноябрь 2013, 18:46:27
Ответ #22
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В этом коде нет проверки на ставнение, что есть или нет такой ключ-значение.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
14 Ноябрь 2013, 18:57:44
Ответ #23
  • Новичок
  • *
  • Сообщений: 7
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня версия 1.5.6
Вот нашел этот же участок кода в версии 1.4.11

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);
}
}

Здесь есть проверка?
Как мне модифицировать мою версию?
14 Ноябрь 2013, 20:53:39
Ответ #24
  • Ветеран
  • *****
  • Сообщений: 885
  • Репутация: +206/-0
    • Просмотр профиля
Пользуюсь версией 1.5.4. Проблем с импортом нет.
14 Ноябрь 2013, 21:13:53
Ответ #25
  • Пользователь
  • **
  • Сообщений: 75
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если движок 1.5.6, зачем было писать в теме про 1.5.4?

Если в старом движке импорт работал нормально, советую развернуть локально (или провайдера) еще одну копию базы и внести товар в нее. Затем - перенести содержимое таблиц, связанных с товаром в новую (предварительно почистив атрибуты, комбинации, свойства, сами товары, их картинки  и т.д. - работенка не быстрая). Но не факт, что все будет работать как надо ...