Drupal → Атрибуты товара в Drupal Commerce 1 (классический способ)

27.03.2013

Атрибуты товара (или опции товара) это элементы формы Add to cart, которые сможет выбрать покупатель перед добавлением товара в корзину. Например если магазин торгует футболками, то атрибутами товара будут цвет и размер:

Атрибуты товара Size и Color

Для создания атрибута товара нужно:

1. Добавить нужному product type поле типа List или Term reference:

Добавление поля Size

2. Включить в настройках поля опцию Enable this field to function as an attribute field on Add to Cart forms и установить значение Number of values равное 1:

Настройки поля

3. Создать несколько сущностей product с различными значениями атрибута:

Форма добавления товара

4. Создать материал типа product_display с ссылкой на созданные ранее сущности:

Форма добавления материала типа product_display

Profit.

Для объединения пунктов 3 и 4 можно воспользоваться модулем Inline Entity Form.

По материалам статьи Product Attributes & Variations.

Видео.

Альтернативный способ создания атрибутов.

Написанное актуально для
Drupal Commerce 1.x
Похожие записи

Комментарии

Роман
27.03.2013, 22:02

Добрый день.

Скажите пожалуйста, существует ли решение для автоматической генерации множества товаров, если указать множество параметров ?

Например, если есть футболки, у которых четыре разных цвета и семь разных размеров, то есть ли возможность автоматически сгенерировать 28 (4*7) записей с футболками разных цветов и размеров ?

Подскажите, пожалуйста, я в замешательстве: какой модуль для и-магазина (ubercart или commerce) лучше использовать, или какой бы вы использовали? Судя по гугл трендам уберкарт теряет популярность, но все равно остается в 2 раза популярнее чем коммерс. И, если не трудно, можете объяснить в двух словах в чем их основное отличие.

ubercart не использовал, поэтому ничего о нём сказать не могу.

Роман
28.03.2013, 12:13

Подскажите, пожалуйста, я в замешательстве: какой модуль для и-магазина (ubercart или commerce) лучше использовать, или какой бы вы использовали? Судя по гугл трендам уберкарт теряет популярность, но все равно остается в 2 раза популярнее чем коммерс. И, если не трудно, можете объяснить в двух словах в чем их основное отличие.

Drupal Commerce - более "друпаловский" по структуре, с ним при знании Друпала будет легче работать - дорабатывать, писать хуки, модули, создавать отчеты и т.д.
Да и пока Вы освоите Ubercart, его популярность упадет еще больше.

Антон
29.03.2013, 03:11

Приветствую.

прошу подсказку:
как для товара в корзине добавить форму выбора некоего параметра.
как пример - указать требуемый размер обуви,
не выбрать из существующих, а дополнительно указать желаемый.

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

Антон
04.07.2013, 11:19

Ранне спрашивал:

как для товара в корзине добавить форму выбора некоего параметра.
как пример - указать требуемый размер обуви,

вариант решения: commerce_line_item_cart_form

вот еще подойдет drupal.org/project/commerce_product_urls + views

Игорь
06.10.2013, 18:34

(классический способ) - а какие ещё есть?
Хочу вывести все цены - допустим их 5 -10 шт. в виде списка - создать атрибут - ссылка на термин - и получится такой вывод. Но не хочется все цены, допустим их 200 тыс - забивать как термины - куча лишнего, дублирующегося мусора.
А как это можно ещё сделать?
Как вывести все цены всех вариаций товара в дисплее?

а какие ещё есть?

кастомные line items, плюс на drupal.org есть несколько модулей

Как вывести все цены всех вариаций товара в дисплее?

Views

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

вот наглядная идея) пример Возможно ли по такому принципу сделать (если да то через что)?

Игорь
15.10.2013, 09:47

Может так сделаете что вам нужно:

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if (strpos($form_id, "commerce_cart_add_to_cart_form") === 0) {
    // dsm($form); // включить модуль devel
  }

Все конечно хорошо, но вот вывожю я атрибуты через чек-батон. Как же отобразить стоимость напротив каждого чек-батона?
вот наглядная идея) примерВозможно ли по такому принципу сделать (если да то через что)?

пользуйтесь Views

Уважаемый, Хandeadx. Вы наверное не совсем хорошо рассмотрели пример, там поэтапно выбирается конфигурация товара и причем атрибуты сразу отображают свою цену и с права итоговая цена. Так вот как же вывести товар с атрибутами (чтоб на против каждого атрибута отображалась его цена)?

Алёна
15.05.2014, 00:14

Добрый вечер Андрей!
Можно ли во views сделать фильтр нод, по атрибутам заданным в товарах?
Например вывести все майки белого цвета (майка - нода, цвет - атрибут продукта).
Пробовала делать все по схеме выше, во views новых полей не появилось :(

Ольга
06.12.2016, 21:45

А как реализовать вот такое решение на друпал https://saphali.com/woocommerce-plugins/woocommerce-universalnyj-produk…

т.е. товар с составляющими. Например пицца+начинки, двери+ ручки и др. аксессуары.

все отлично работает с модулем https://www.drupal.org/project/commerce_pado
Но есть одн большой минус. Дополнения к продукту добавляются как отделные продукты в корзину. Т.е. не понятно к какому продукту что добавить. Есть идеи?

Ольга
08.12.2016, 18:32

Нашла ответ на свой вопрос (см выше)
Для того, чтобы реализовать расчет цены с составляющими, влияющими на цену отлично подходит вот этот модуль http://xandeadx.ru/blog/drupal/647#comment-14653

Обратите внимание на патч в последнем комменте под видео. Без него автоматически не пересчитывается цена

Добавить комментарий