Приведенный выше пример был полезен, но вот более конкретный:
{ "rules_create_product_display_on_product_creation" : {
"LABEL" : "Create Product Display on Product creation",
"PLUGIN" : "reaction rule",
"REQUIRES" : [ "rules", "entity" ],
"ON" : [ "commerce_product_insert" ],
"IF" : [
{ "entity_is_of_type" : { "entity" : [ "commerce-product" ], "type" : "commerce_product" } }
],
"DO" : [
{ "entity_create" : {
"USING" : {
"type" : "node",
"param_type" : "product_display",
"param_title" : "[commerce-product:title]",
"param_author" : [ "commerce-product:creator" ]
},
"PROVIDE" : { "entity_created" : { "entity_created" : "Created entity" } }
}
},
{ "data_set" : {
"data" : [ "entity-created:field-product:0" ],
"value" : [ "commerce-product" ]
}
}
]
}
}
Единственная проблема, с которой я столкнулся, была со вторым действием («набор данных») - было важно выбрать «созданный объект: поле-продукт: 0», а не «созданный объект: поле-продукт», чтобы сделать его работать, потому что мы хотим назначить конкретный продукт, а не список продуктов.
В этом примере используется стандартный тип узла отображения продукта (product_display), но вы можете изменить его на тот, который вы используете. Также имейте в виду, что это работает только для одного типа продукта - для каждого типа продукта должно быть создано отдельное правило. Вы также можете создать правило для удаления узла отображения товара при удалении товара.
Это правило полезно только в том случае, если у вас есть соединение один продукт-один продукт. Если вам нужно добавить больше продуктов для каждого продукта (цвета, изображения с разными ценами), вам необходимо использовать модуль Commerce Bulk Product Creation .