Автор Тема: [ РЕШЕНО ] Проблема с getProductLink  (Прочитано 2087 раз)

30 Сентябрь 2015, 17:07:48
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Вам же писали, что на демо версии правильно формируется url при выборе фильтра.
Это у вас не правильно с ид в названии фильтра.
Нет у меня такой проблемы.
Открываю
http://fo.demo.prestashop.com/en/3-women#/color-white-orange-yellow
Выбираю у 4-го товара синий цвет, открывается ссылка
http://fo.demo.prestashop.com/en/summer-dresses/5-printed-summer-dress.html#/size-s/color-blue
Выбираю к первого товара синий цвет, открывается
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/size-s/color-blue

Открываю код страницы
<ul class="color_to_pick_list clearfix">
<li>
<a style="background:#F39C11;" class="color_pick" id="color_1" href="http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/size-s/color-orange"></a>
</li>
<li>
<a style="background:#5D9CEC;" class="color_pick" id="color_2" href="http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/size-s/color-blue"></a>
</li>
</ul>
в коде ссылки тоже правильные.

Вы код страницы смотрели?
Браузер какой?


Действительно в названии фильтра не должно быть ид.
/14-color-blue - правильный переход
/color-blue - не правильный переход на карточку товара.
Наоборот,  "#/color-blue" - вот это правильно.
У фильтра не может быть ид в url. Так как в prestashop маршрутизация основанна на ид товара, категории, страницы. Ид атрибутов, характеристик игнорируются.

Скорее всего проблема не в теме, если она стандарная, а в модулях или изменении схемы URL. В этом направлении копать нужно.
30 Сентябрь 2015, 17:16:42
Ответ #16
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Этот баг виден на демо сайте prestashop, посмотрите сами...
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/1-size-s/14-color-blue
30 Сентябрь 2015, 17:32:17
Ответ #17
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Про какой баг вы пишите?
На демо сайте нет ошибок при выборе фильтров.
Если вы в категории выбираете фильтр цвет, то все ссылки на другие комбинации товара не содержат ID атрибутов.
30 Сентябрь 2015, 17:38:07
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Про какой баг вы пишите?
На демо сайте нет ошибок при выборе фильтров.
Если вы в категории выбираете фильтр цвет, то все ссылки на другие комбинации товара не содержат ID атрибутов.

Вот по этой ссылке
http://fo.demo.prestashop.com/en/3-women#/color-white-orange-yellow

мы видим 6 товаров, на каждом товаре мы можем выбрать различный аттрибут цвета(маленькие разноцветные квадратики)
Так вот URL этих квадратиков не правильные(т.е. по этому url вы не попадёте в карточку товара с данным цветом), попробуйте сами:
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/color-blue (будет цвет по умолчанию)

Чтобы попасть на карточку товара с требуемым цветом требуется добавить id аттрибута:
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/14-color-blue (теперь попадёте на карточку товара с цветом blue)

Разница /color-blue и /14-color-blue

/14-color-blue - правильный переход
/color-blue - не правильный переход на карточку товара.
30 Сентябрь 2015, 17:40:54
Ответ #19
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Про какой баг вы пишите?
На демо сайте нет ошибок при выборе фильтров.
Если вы в категории выбираете фильтр цвет, то все ссылки на другие комбинации товара не содержат ID атрибутов.
Есть там проблема. Ссылки правильные без ид. Не в этом дело.
Если кликнуть на фильтр Оранжевый, потом у какго-нибуть товара выбрать другой цвет, синий, то откроется товар с комбинацией по умолчанию, а не синий.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Сентябрь 2015, 17:47:02
Ответ #20
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Есть там проблема. Ссылки правильные без ид. Не в этом дело.
Если кликнуть на фильтр Оранжевый, потом у какго-нибуть товара выбрать другой цвет, синий, то откроется товар с комбинацией по умолчанию, а не синий.
Теперь понятно.
Так происходит при выборе цвета на странице категории, для этого не нужно предварительно выбирать фильтр.
При заходе на страницу товара показывает комбинацию по умолчанию.
30 Сентябрь 2015, 17:49:54
Ответ #21
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для меня проблема, что я не могу попасть на карточку товара с цветом  color-blue по этой ссылке:
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/color-blue

обязательно должен стоять id данного атрибута тогда всё ок...
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/14-color-blue

Уважаемые гуру, что можете посоветовать...

30 Сентябрь 2015, 17:54:03
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Теперь понятно.
Так происходит при выборе цвета на странице категории, для этого не нужно предварительно выбирать фильтр.
При заходе на страницу товара показывает комбинацию по умолчанию.

Нет, это не так.
При отключенном модуль навигации. Ссылки на страницы категории на комбинации товара работают и при выборе цвета будет показан товар с выбраной комбинацией.
При включении модуля фильров и клике на фильре, этот модуль переписывает ссылки атрибутов и после этого выбранная комбинация выводиться не правильно.
Попробуйте 2 варианта с модулем фильров и без него.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Сентябрь 2015, 17:54:59
Ответ #23
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Для меня проблема, что я не могу попасть на карточку товара с цветом  color-blue по этой ссылке:
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/color-blue

обязательно должен стоять id данного атрибута тогда всё ок...
http://fo.demo.prestashop.com/en/tshirts/1-faded-short-sleeves-tshirt.html#/14-color-blue

Уважаемые гуру, что можете посоветовать...

Это баг модуля фильтров. Уже писали об этом, связан с обновлением. На форуме где-то была ссылка на исправленные файлы. Не могу найти, хотя не так давно обсуждали.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Сентябрь 2015, 17:58:28
Ответ #24
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Отключил модуль Блок многоуровневой навигации v2.1.2 - от PrestaShop
Не помогло. Кеш чистил...
30 Сентябрь 2015, 18:01:21
Ответ #25
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Можете не отключать. Просто зайдите в любую категори. Кеш перед эти отключите. Не выберайте фильтры, какие ссылки у разных цветов у товаров?
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Сентябрь 2015, 18:10:18
Ответ #26
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можете не отключать. Просто зайдите в любую категори. Кеш перед эти отключите. Не выберайте фильтры, какие ссылки у разных цветов у товаров?
Проверил на такой конфигурации:
- Prestashop 1.6.1
- Модуль Блок многоуровневой навигации v2.1.2
- Тема стандарная

Включение / выключение / уданение модуля Блок многоуровневой навигации не влияет на ссылки.
Товар открывается на выбранной комбинации.

Никаких проблем с товаром нет. Выбираешь синий фильтр, товар выбираешь оранжевый и показывает оранжевый цвет в карточке товара.
30 Сентябрь 2015, 18:12:46
Ответ #27
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
У меня не так. При включенном фильтре открывается комбинация по умолчанию.
Разница в версии prestashop, у меня 1.6.0.14
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Сентябрь 2015, 18:14:20
Ответ #28
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Попробую обновить, может проблема в старых файлах.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
30 Сентябрь 2015, 19:25:48
Ответ #29
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можете не отключать. Просто зайдите в любую категори. Кеш перед эти отключите. Не выберайте фильтры, какие ссылки у разных цветов у товаров?

Не помогло. В карточке товара у разных цветов помимо самомого цвета присутствует id атрибута цвета: #/14-color-голубой (как пример)

Небольшие наблюдения:
В product.js далее function getProductAttribute()

Здесь есть такая строка
if (attributesCombinations[i]['id_attribute'] === tab_attributes[a])
request += '/' + attributesCombinations[i]['id_attribute'] + '-' + attributesCombinations[i]['group'] + attribute_anchor_separator + attributesCombinations[i]['attribute'];

 attributesCombinations['id_attribute'] - это и есть id аттрибута, который добавляется (в карточке товара)