Drupal Commerce. Товар с общим названием, разным размеро и разной ценой

Главные вкладки

Аватар пользователя realovich realovich 24 января 2012 в 9:27

Уважаемые, Drupal-гуру!
Подкиньте, пожалуйста, идею по следующей задаче.
Посетители магазина должны видеть один товар, на странице товара должна быть таблица размеров, каждому размеру - своя цена и возможность отдельный размер положить в корзину. Как на скриншоте:

Комментарии

Аватар пользователя Andruxa Andruxa 24 января 2012 в 9:40

я бы начал с отрывания рук "дезигнеру" и вставления их в плечи - что и в каком количестве будет добавляться в корзину по нажатию одноименной кнопки?

Аватар пользователя Sun-fire Sun-fire 24 января 2012 в 12:31

По архитектуре решения - тут можно сказать классическая ситуация: к одной display node привязано несколько единиц товаров. Поле типоразмер привязывается к сущности товара, все что выше таблицы к сущности display node.

Аватар пользователя realovich realovich 24 января 2012 в 14:07

"Andruxa" wrote:
я бы начал с отрывания рук "дезигнеру" и вставления их в плечи - что и в каком количестве будет добавляться в корзину по нажатию одноименной кнопки?

Да, дизайнеру уже руки прикрутили, куда надо. Спасибо за внимательность.

"Sun-fire" wrote:
По архитектуре решения - тут можно сказать классическая ситуация: к одной display node привязано несколько единиц товаров. Поле типоразмер привязывается к сущности товара, все что выше таблицы к сущности display node.

Да, это ясно примерно. Как несколько товаров вывести в одном display node? Нужно ли использовать Views или есть другие приемы?

"Ламер" wrote:
я не стал заморачиваться и делаю каждый размер - отдельной единицей товара

Согласен, так и будет - каждый размер - отдельная единица товара. Но как это вывести на одну страницу?

Аватар пользователя Andruxa Andruxa 24 января 2012 в 14:20

решение зависит от

Quote:
что и в каком количестве будет добавляться в корзину по нажатию одноименной кнопки

возможно, удастся заюзать Commerce Product Reference View Widget, возможно - руками аттачить вьюс, можно обойтись и без него, написав свой запрос из препроцесса ноды, но последнее уже из области извратов

Аватар пользователя realovich realovich 24 января 2012 в 14:27

"Andruxa" wrote:
что и в каком количестве будет добавляться в корзину по нажатию одноименной кнопки

Допустим этой кнопки не будет вовсе, товары нужно добавлять в корзину именно из таблицы с типоразмерами. Если не сложно, поясните, для чего этот модуль? Могу ли я из display node вызвать нужный мне вьюс с нужными параметрами фильтрации?

Аватар пользователя Andruxa Andruxa 24 января 2012 в 14:46

"realovich" wrote:
товары нужно добавлять в корзину именно из таблицы с типоразмерами.

в таком случае, надо писать представление с полями, как у вас на скриншоте плюс кнопка добавления в корзину для каждого товара
аргументом будет id ноды, объединяющей эти товары, взаимосвязи - из поля Cсылка на товар этой ноды

прикручивать представление к ноде - с помощью Viewfield, либо самостоятельно в темплейте через views_embed_view

"realovich" wrote:
для чего этот модуль

он вставляет в форму добавления в корзину элемент select со списком товаров из представления, плюс само представление, но оно по умолчанию отключено в отображении

"realovich" wrote:
Могу ли я из display node вызвать нужный мне вьюс с нужными параметрами фильтрации

да, выше написал как, параметром фильтрации будет являться аргумент Материал: nid

Аватар пользователя realovich realovich 24 января 2012 в 15:15

Спасибо за развернутый ответ. Очень приятно, что есть неравнодушные люди.
Буду пробовать. О результатах отпишусь.

Аватар пользователя realovich realovich 27 января 2012 в 15:17

"Andruxa" wrote:
в таком случае, надо писать представление с полями, как у вас на скриншоте плюс кнопка добавления в корзину для каждого товара
аргументом будет id ноды, объединяющей эти товары, взаимосвязи - из поля Cсылка на товар этой ноды

Поясните, пожалуйста, что вы подразумеваете под аргументами и взаимосвязями?
Я использую Drupal 7.

Аватар пользователя realovich realovich 27 января 2012 в 19:51

Скажите, я правильно понимаю, что для каждого товара, который будет показываться пользователю, нужно создавать отдельный views?

Аватар пользователя Andruxa Andruxa 27 января 2012 в 23:41

нет, у вас должен получиться 1 вьюс,
аргументом (контекстным фильтром) будет id ноды, в которой он отображается, а результатом - табличный вывод полей сущностей Товар, на которые ссылается эта нода.

Аватар пользователя realovich realovich 30 января 2012 в 11:39

Создал Views. Вроде бы даже прикрутил его к ноде. Кстати, я правильно понимаю, что в данном контексте, нода - это статья, которая является представлением товара пользователю?

Контекстным фильтром поставил id материала (Содержимое: Nid). В качестве Отношений - "Содержимое: Товар" и "(Товар) Commerce Line item: Product", в Отношениях не нахожу "Ссылку на товар этой ноды". Помогите, пожалуйста. Кажется, осталось немного. На данный момент выводятся все существующие товары, бывает даже в нескольких копиях.

Аватар пользователя Andruxa Andruxa 30 января 2012 в 13:25

"realovich" wrote:
я правильно понимаю, что в данном контексте, нода - это статья, которая является представлением товара пользователю?

да

"realovich" wrote:
В качестве Отношений - "Содержимое: Товар" и "(Товар) Commerce Line item: Product"

должно быть какое-то одно из отношений, попробуйте Содержимое: Referenced product (может, у вас называется по-другому)

это отношение надо будет указывать в Связи при выводе полей сущности Product.

"Отношение" задает SQL-конструкцию LEFT|INNER JOIN ... ON ... в запросе, генеримом вьюсом, если так будет понятнее

Аватар пользователя nyhm nyhm 2 марта 2012 в 10:36

в Уберкарте есть такая штука как атрибут, позволяет создавать любое количество характеристик, у каждой добавка цены.
например: R16 +100, R17 +150.