Инструкция для тех, кто использует в коммерце схему "один product — один product display", и кто хочет объединить Product и Product Display в одну форму:
-
Включаем модуль Inline Entity Form
-
В форме управления полями Product Display изменяем виджет поля field_products на Inline entity form - Single value:
-
В настройках поля field_products включаем опцию Удалить зависимые товары когда родительская сущность удалена и устанавливаем значение поля Количество значений в 1:
После этого форма создания Product Display примет вид:
Можно немного твикнуть её следующим кодом:
/**
* Implements hook_form_FORM_ID_alter(): product_display_node_form.
*/
function MODULENAME_form_product_display_node_form_alter(&$form, &$form_state) {
$form['field_product']['und']['#type'] = 'container';
$form['field_product']['und']['form']['product_details']['#type'] = 'container';
$form['field_product']['und']['form']['commerce_price']['und'][0]['amount']['#title'] = 'Цена';
}
Profit:
Написанное актуально для
Drupal Commerce 1.x
Похожие записи
Комментарии
Данный модуль подходит не только для варианта "Одно отображение - один вариант", а так же для варианта "Одно отображение - несколько вариантов"
А если у меня почти противоположная задача - вынести списки продуктов в отделные вкладки по variation type, как бы Вы рекомендовали поступить?
Кстати, спасибо Вам огромное за ваш блог. Это пожалуй лучший русскоязычный ресурс по друпалу.
Александр, сб 23/11/2013 - 17:53
Field group тебе поможет
Добрый день!
А почему на 4ом скрине, у товара нет поля "title". по факту то тайтла 2а - первый у ноды второй у товара. как вы это обошли?
ответ на втором скриншоте
аа, нашел галку.
Пробовал с помощью feeds но там в настройках парсера не видно полей вставленных Inline entity form.
Подскажите пожалуйста, как при такой схеме "один product — один product display" сделать массовую загрузку товаров?
Вот уже третий день пытаюсь импортировать при такой интеграции.
Пока не получилось. Но насколько я понимаю то это два разных импорта необходимо делать.
со схемой product display → product ничего не происходит, это по прежнему две разные сущности
xandeadx тоесть если я правильно понял, сначала надо выгрузить товар в магазин. Пример таблицы SKU;Название;цена А потом таблицу для дисплея title;SKU. Где SKU одинаковые.
Так?
А кто-нибудь подскажет, как можно добавить изображения в список товаров виджета Inline entity form - Multiple values ?
у меня сейчас так отображается http://prntscr.com/3d12kr
> Можно немного твикнуть её следующим кодом:
На commerce 1.9 не срабатывает данный код. Добавлял как положено в свой модуль. В чем может быть проблема?
Все разобрался. У меня вместо дисплей товара назывался просто product, а не product_display
А если товаров несколько?
Одно из полей товара - цвет (таксономия).
Как сделать что бы к названию товара автоматически добавлялся цвет?
Насчет твикнуть, подскажите пожалуйста, куда именно помещать код? В template.php?
На что заменить "MODULENAME" ? Прошу - расшифруйте для необразованных)
http://xandeadx.ru/blog/drupal/256
Подскажите плиз, как твикнуть форму для commerce 2.x ?
commerce 2.x не существует
Упс )) что-то у меня этот твик не работает для последней версии commerce. Вродебы все сделал по инструкции и название поля референс на товар поменял на свое, все равно не работает.
+ Твик также не работает
Commerce (commerce)
Defines features and functions common to the Commerce modules. Must be enabled to uninstall other Commerce modules.
Version: 7.x-1.11
Спасибо большое!
Вопрос:
На http://api.drupalcommerce.org/api/search/DC/form_alter
нет такого хука.
самый ближайший – ..._menu_form_node_form_alter
https://www.google.ru/search?q=hook_form_FORM_ID_alter
Подскажите как лучше организовать товары. Для каждого типа товаров DC создавать свой тип дисплея (например: сумки -> сумки, кошельки -> кошельки) или можно создать один тип дисплея (Товар) и с ним связывать все типы товаров DC (Товар - сумки, товар - кошельки)???
Скажите а как теперь можно удалить товар и дисплей одновременно?
Не могли бы вы чуть подробнее про модуль.
Как догадаться, какие переменные переопределять?
$form['field_product']['und']['#type'] = 'container';
у меня почему-то подставляется всегда product с меньшим ID. И изменения в форме создания ноды (Product Dispaly) только меняют товар http://i.imgur.com/TO83Aq8.jpg
как добиться, чтобы при создании ноды создавался новый product, а не использовался существующий?
А с таксономией это сработает, допустим, есть словарик с категориями. В Товар добавляем ссылку на термин. Она так же добавится в дисплей?
Виджет Inline Entity Form выводит всю форму дочерней сущности, поэтому работать будет с любыми полями.
Спасибо большое
Подскажите, пожалуйста, ранее в комментах поднимался вопрос как делать импорт товаров через feeds, но ответа я не увидел. Есть ли решение?
Добавить комментарий