Автор Тема: Связанные атрибуты  (Прочитано 6825 раз)

28 Сентябрь 2013, 19:53:03
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Привет. Нужно создать связанные атрибуты - пытаюсь понять, можно ли сделать стандартными средствами магазина.
Нужно чтоб при выборе первого атрибута - менялись возможные варианты второго атрибута и так далее. Цена на товар формируется связкой из примерно 7 атрибутов.

Как пример.


Хочу, чтоб при выборе первого цвета, размер L вообще не отображался.
28 Сентябрь 2013, 19:54:39
Ответ #1
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Товар на сайте электронный и будет всего один с кучей комбинаций. Так что в принципе я могу вручную прописать кол-во ноль для несуществующих комбинаций. Осталось сделать так, чтоб они не отображались.
Но еще мне бы хотелось для этой каждой длинной комбинации сразу задавать итоговую цену, а не сидеть и вычислять что же прописывать в каждом атрибуте "Влияние на цену" чтоб в итоге у всех комбинаций всё вышло хорошо
28 Сентябрь 2013, 20:02:48
Ответ #2
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
С ценой затупил - можно сразу общую поставить.
29 Сентябрь 2013, 10:49:02
Ответ #3
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
12 просмотров - ноль ответов, печалька :)
30 Сентябрь 2013, 12:46:59
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
12 просмотров - ноль ответов, печалька :)
В другой же теме ответили, в стандарном варианте не сделать. Модуль нужен. Attribute Wizard
30 Сентябрь 2013, 13:53:36
Ответ #5
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если честно, то мне жалко на него денег ради одной такой функции. У меня валяется Attribute wizard pro, но он для престы 1.4. Я мельком смотрел его, но конкретной связи атрибутов я там не увидел.
30 Сентябрь 2013, 15:18:28
Ответ #6
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Цитировать
У меня валяется Attribute wizard pro
Вот его и переделать можно.
07 Октябрь 2013, 20:33:53
Ответ #7
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Откопал таки Attribute Wizard Pro для 1.5. Но разобраться умеет ли он связывать аттрибуты пока не могу. Нашел тему http://www.prestashop.com/forums/topic/184213-%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8C-%D0%BD%D0%B5%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D0%B5-%D0%B0%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D1%8B/
Вроде не может. В переделывании модулей я не силен. Может кто помочь? Могу скинуть модуль или может быть поменяться на Attribute Order или Attribute Wizard.
07 Октябрь 2013, 21:08:43
Ответ #8
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Покопался еще. Вроде ни один из этих модулей не решает толком проблему. И это печально.
08 Октябрь 2013, 11:37:20
Ответ #9
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В описании модуля Attribute Wizard Pro написано, что можно создавать связанные поля.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
09 Октябрь 2013, 13:19:56
Ответ #10
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Автор ответил, что ПРО версия не может этого делать. Поставил обычную версию на 1.4. Короче очень коряво работает. Решил сделаю как-нибудь через про. НАчал делать, создал комбинации, указал везде кол-ва. На странице товара пишет, что кол-во ноль. Есть кто пользовался модулем и в чем могут быть проблемы? :)
09 Октябрь 2013, 15:35:54
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Автор ответил, что ПРО версия не может этого делать.
Если сам автор написал, что не может, то модуль нужно переделывать. В таком случае лучше написать свой только под создание связанных полей.
Cоздание интернет сайтов Webstudio UwK
09 Октябрь 2013, 21:31:48
Ответ #12
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Скажите, сколько на ваш взгляд будет стоить такой модуль, если заказать?
10 Октябрь 2013, 11:18:53
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Примерно можно оценить так, стоимоить подобного модуля умножить на 10.
Это только приблизительно. Как договоришься.
18 Октябрь 2013, 22:59:10
Ответ #14
  • Пользователь
  • **
  • Сообщений: 75
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вроде-бы получилось для 1.5.6.

\themes\default\js\product.js

В скрипте был нюанс - вызов перерисовки вызывался несколько раз при смене набора атрибутов (кол-во атрибутов + 1 раз) и с задержкой 500 мс срабатывает проверка Url и его перерисовка. Если Вам лень было давать имена атрибутам, то все они рисуются прочерками с косой чертой и процедура проверки, естественно, считает, что Вы вручную меняли адрес и просто находит в списке атрибутов первый попавшийся с такими же параметрами - черточками и заставляет все перерисовываться заново. И так получаем вечный цикл. Чтобы этого не происходило, вводим доп. флажок и при первой такой проверке url просто игнорируем возврат "старых" настроек для атрибута. Флажок, естественно, сбрасываем .

Что сделано. При смене какого-либо атрибута идет поиск минимально отличающегося набора атрибутов для данного товара. Считается, что чем выше индекс ключа, тем меньше его вес (по-русски: чем дальше в списке атрибутов признак, тем менее он значим. Поэтому мы ищем набор атрибутов для данного товара, совпадающий с тем набором атрибутов, что мы выбрали на экране, у которого порядковый номер признака наибольший). Он и принимается за основу и под него меняются адрес страницы и набор параметров товара.

"Но".
Первый изменяемый признак имеет более высокий статус, поэтому для смены нижестоящих атрибутов приходится прибегать к уловке - найти группу атрибутов, отличную от текущей, в которой минимальный ключ отличия. Поэтому данный признак отбора неприменим, если набор по умолчанию совпадает с выбором пользователя и окно выбора - ссылка (например, цвет). Это происходит потому, что в начале не выбран набор атрибутов. Пришлось искусственно его выбирать  (но не отрисовывать в виде /-/-_/-_ ) и записать номер набора в переменную страницы.

Если работает не только у меня - здорово.

P.S.

По ходу дела выяснилась пара интересных моментов:
Break из цикла не работает - пришлось использовать do - while
2  Пытался сделать Break  на Label и получил полный крах (Я знаю, что использование переход дурной тон. И в коде их нет.)
3  Все переменные взаимосвязаны. Если счетчик массива превысит его размер, то, почему-то, опросить его размер уже не получится, хотя обращения к самому массиву по индексу нет.