Уважаемые, Drupal-гуру!
Подкиньте, пожалуйста, идею по следующей задаче.
Посетители магазина должны видеть один товар, на странице товара должна быть таблица размеров, каждому размеру - своя цена и возможность отдельный размер положить в корзину. Как на скриншоте:
Комментарии
я бы начал с отрывания рук "дезигнеру" и вставления их в плечи - что и в каком количестве будет добавляться в корзину по нажатию одноименной кнопки?
По архитектуре решения - тут можно сказать классическая ситуация: к одной display node привязано несколько единиц товаров. Поле типоразмер привязывается к сущности товара, все что выше таблицы к сущности display node.
Да, дизайнеру уже руки прикрутили, куда надо. Спасибо за внимательность.
Да, это ясно примерно. Как несколько товаров вывести в одном display node? Нужно ли использовать Views или есть другие приемы?
Согласен, так и будет - каждый размер - отдельная единица товара. Но как это вывести на одну страницу?
решение зависит от
возможно, удастся заюзать Commerce Product Reference View Widget, возможно - руками аттачить вьюс, можно обойтись и без него, написав свой запрос из препроцесса ноды, но последнее уже из области извратов
Допустим этой кнопки не будет вовсе, товары нужно добавлять в корзину именно из таблицы с типоразмерами. Если не сложно, поясните, для чего этот модуль? Могу ли я из display node вызвать нужный мне вьюс с нужными параметрами фильтрации?
в таком случае, надо писать представление с полями, как у вас на скриншоте плюс кнопка добавления в корзину для каждого товара
аргументом будет id ноды, объединяющей эти товары, взаимосвязи - из поля Cсылка на товар этой ноды
прикручивать представление к ноде - с помощью Viewfield, либо самостоятельно в темплейте через views_embed_view
он вставляет в форму добавления в корзину элемент select со списком товаров из представления, плюс само представление, но оно по умолчанию отключено в отображении
да, выше написал как, параметром фильтрации будет являться аргумент Материал: nid
Спасибо за развернутый ответ. Очень приятно, что есть неравнодушные люди.
Буду пробовать. О результатах отпишусь.
Поясните, пожалуйста, что вы подразумеваете под аргументами и взаимосвязями?
Я использую Drupal 7.
Дополнительно > Контекстные фильтры
Дополнительно > Отношения
Скажите, я правильно понимаю, что для каждого товара, который будет показываться пользователю, нужно создавать отдельный views?
нет, у вас должен получиться 1 вьюс,
аргументом (контекстным фильтром) будет id ноды, в которой он отображается, а результатом - табличный вывод полей сущностей Товар, на которые ссылается эта нода.
Создал Views. Вроде бы даже прикрутил его к ноде. Кстати, я правильно понимаю, что в данном контексте, нода - это статья, которая является представлением товара пользователю?
Контекстным фильтром поставил id материала (Содержимое: Nid). В качестве Отношений - "Содержимое: Товар" и "(Товар) Commerce Line item: Product", в Отношениях не нахожу "Ссылку на товар этой ноды". Помогите, пожалуйста. Кажется, осталось немного. На данный момент выводятся все существующие товары, бывает даже в нескольких копиях.
да
должно быть какое-то одно из отношений, попробуйте Содержимое: Referenced product (может, у вас называется по-другому)
это отношение надо будет указывать в Связи при выводе полей сущности Product.
"Отношение" задает SQL-конструкцию LEFT|INNER JOIN ... ON ... в запросе, генеримом вьюсом, если так будет понятнее
в Уберкарте есть такая штука как атрибут, позволяет создавать любое количество характеристик, у каждой добавка цены.
например: R16 +100, R17 +150.