Submitted by Ruffna on
Bonjour,
Je rencontre un problème sur mon site Drupal Commerce.
Sur ma boutique, les clients peuvent commander en se connectant à leur compte client ou en invité. Dans les profils utilisateurs (facturation et livraison), il est possible de choisir tous les pays.
J'ai des règles qui permettent de modifier le prix des produits en fonction du pays de l'adresse de livraison choisie.
Exemple : si livraison en France, alors le produit a tel prix ; si livraison en Union Européenne, un autre prix, etc. J'ai en tout quatre règles pour diviser en quatre zones : France, UE, Dom-Tom, Autres.
Mon problème :
Lorsque je passe une commande en invité, tout fonctionne correctement.
Mais si je passe commande avec un compte client, je suis sans cesse bloquée à l'étape 2 du panier (checkout, quand on choisi la livraison et la facturation) si je choisi un pays autre que la France.
Dans mes "Entrées récentes du journal", j'ai les erreurs suivantes :
- "Unable to get variable commerce_line_item, it is not defined."
- "Unable to evaluate condition commerce_order_compare_address."
Voici le détail de la règle qui modifie le prix pour l'Europe :
{ "rules_prix_europe" : {
"LABEL" : "Prix EUROPE",
"PLUGIN" : "reaction rule",
"WEIGHT" : "-10",
"OWNER" : "rules",
"REQUIRES" : [
"commerce_order",
"rules",
"rb_theme",
"commerce_line_item",
"commerce_product_reference",
"entity"
],
"ON" : {
"commerce_product_calculate_sell_price" : [],
"commerce_customer_profile_update" : []
},
"IF" : [
{ "commerce_order_compare_address" : {
"commerce_order" : [ "commerce-line-item:order" ],
"address_field" : "commerce_customer_shipping|commerce_customer_address",
"address_component" : "country",
"operator" : "is one of",
"value" : "DE\r\nAT\r\nBE\r\nES\r\nFI\r\nGR\r\nIT\r\nLU\r\nNL\r\nPL\r\nPT\r\nCZ\r\nGB\r\nSE\r\nDK\r\nIE\r\nRO\r\nSK\r\nCY\r\nEE\r\nLV\r\nLI\r\nLT\r\nMT\r\nHU\r\nSI\r\nUA\r\nBA\r\nBG\r\nSU\r\nNO\r\nAD\r\nBY\r\nHR\r\nFO\r\nGL\r\nGI\r\nGG\r\nVA\r\nIS\r\nIM\r\nJE\r\nMK\r\nMD\r\nMC\r\nME\r\nRU\r\nSM\r\nRS\r\nSJ\r\nTR\r\nAL\r\nAX"
}
},
{ "entity_has_field" : { "entity" : [ "commerce-line-item" ], "field" : "commerce_product" } },
{ "entity_has_field" : {
"entity" : [ "commerce-line-item:commerce-product" ],
"field" : "field_prix_europe"
}
}
],
"DO" : [
{ "rb_theme_action_set_body_class" : { "classes" : "prix_livraison_europe" } },
{ "commerce_line_item_unit_price_amount" : {
"commerce_line_item" : [ "commerce_line_item" ],
"amount" : [ "commerce-line-item:commerce-product:field-prix-europe:amount" ],
"component_name" : "base_price",
"round_mode" : "1"
}
}
]
}
}
Mes config :
Drupal 7.37
Rules 7.x-2.9
Commerce 7.x-1.11
Address Field 7.x-1.1
Merci pour votre aide !
Après vérification, mes
Permalien Soumis par Ruffna le 25 Novembre, 2015 - 09:52
Après vérification, mes règles n'ont rien à voir avec la problème car lorsque je les désactive, je n'arrive toujours pas à commander à l'étranger...
Re-bonjour,
Permalien Soumis par Ruffna le 25 Novembre, 2015 - 10:53
Re-bonjour,
Je n'ai pas vraiment résolu le problème, mais j'ai trouvé ce qui bloquait.
Dans les paramètres du panier (admin/commerce/config/checkout), dans les Informations de facturation et Informations de livraison, dans la partie "Select account's address field (Select the address field where the information gets cloned from.)" : j'avais un champ "Adresse" sélectionné. J'ai remis cette option à zéro et mes commandes fonctionnent à nouveau.
Il doit y avoir une mauvaise liaison entre les adresses du panier et l'adresse du compte client.