Submitted by zorax on
Bonjour,
j'utilise rules afin de :
créer des produits (commerce product) à la volée - composant creer les produits
assigner ces produits dans le node product display - composant assigner les produits
l'ensemble est lancer à partir d'un composant : mettre en ligne les produits à partir d'une vue VBO
Si je lance chaque composant un par un tout fonctionne.
Seulement je désire une fois les produits crées lancer directement l'assignation des produits.
voici le composant principal :
{ "rules_mise_en_vente_des_actions" : {
"LABEL" : "Mise en vente des actions",
"PLUGIN" : "rule",
"REQUIRES" : [ "rules" ],
"ACCESS_EXPOSED" : "1",
"USES VARIABLES" : {
"action" : { "label" : "action", "type" : "node" },
"prix" : { "label" : "prix", "type" : "commerce_price" }
},
"IF" : [
{ "entity_has_field" : { "entity" : [ "action" ], "field" : "field_formation_date_et_lieu" } },
{ "NOT data_is_empty" : { "data" : [ "action:field-formation-date-et-lieu" ] } },
{ "NOT data_is_empty" : { "data" : [ "prix" ] } }
],
"DO" : [
{ "component_rules_suppression_des_produits_commerciaux" : { "action" : [ "action" ] } },
{ "variable_add" : {
"USING" : {
"type" : "list\u003Cfield_collection_item\u003E",
"value" : [ "action:field-formation-date-et-lieu" ]
},
"PROVIDE" : { "variable_added" : { "liste_date_lieu" : "liste_date_lieu" } }
}
},
{ "LOOP" : {
"USING" : { "list" : [ "liste-date-lieu" ] },
"ITEM" : { "item_liste_date_lieu" : "item_liste_date_lieu" },
"DO" : [
{ "component_rules_creer_des_produits_commerciaux" : {
"date_lieu" : [ "item-liste-date-lieu" ],
"action" : [ "action" ],
"prix" : [ "prix" ]
}
}
]
}
},
{ "component_rules_assigner_produits_action" : { "action" : [ "action" ] } }
]
}
}
J'ai l'impression que la loop n'est pas encore terminée quand le dernier composant et lancé.
Ce dernier composant, utilise une vue VBO afin de générer une liste de produit, si ce dernier composant est lancé alors que les produits ne sont pas encore enregistrer alors il est normal que l'assignation ne se fasse pas.
Mais j'imagine que rules gère les taches une à une et ne lance pas la tache n+1 si la tache n n'est pas terminée?
Merci de m'éclairer.