xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Атрибуты товара (или опции товара) это элементы формы 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
Похожие записи

Комментарии RSS

Добрый день.

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

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

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

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

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

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

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

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

Поставьте Commerce Backoffice (http://drupal.org/project/commerce_backoffice) и не парьтесь!

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

простым способом - никак

Пришлось с css поизвращаться.

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

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

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

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

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

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

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

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

Views

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

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

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

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

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. Вы наверное не совсем хорошо рассмотрели пример, там поэтапно выбирается конфигурация товара и причем атрибуты сразу отображают свою цену и с права итоговая цена. Так вот как же вывести товар с атрибутами (чтоб на против каждого атрибута отображалась его цена)?

сори за граматику

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

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

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

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

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

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

сорри, вот ссылка https://vimeo.com/59862366

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании