Drupal Commerce. Déclencher des règles d'expédition en fonction de la valeur du champ de produit

18

Je perd vraiment la volonté de vivre et j'espère que quelqu'un pourra m'aider.

Je veux déclencher une règle de «livraison gratuite» basée sur une valeur de champ de produit, mais pour la vie de moi, je ne peux pas exposer le champ de livraison gratuite à des règles.

J'ai lu comment mettre des éléments dans la portée et j'ai créé un composant qui a accès au champ. Mais lorsque j'essaie d'ajouter le composant comme condition de ma règle, je suis invité à entrer un sélecteur de données - dont aucun ne semble mener nulle part. Je pense qu'il voulait un identifiant de produit, ce qui n'a aucun sens pour moi.

Qu'est-ce que je fais mal?


PLUS DE CONTEXTE

J'ai essayé deux scénarios, dont l'un consiste à créer une règle d'expédition, en fonction des conditions ci-dessous. L'autre consiste à créer un composant, comme décrit ci-dessus

Condition1 - L'entité a un champ> Paramètre: Entité: [ordre de commerce], Champ: field_free_shipping

Condition2 - La valeur de la date est vide (a également essayé la comparaison des données)

MrPaulDriver
la source
1
Cela fonctionne-t-il si vous ajoutez les conditions directement dans une règle et n'utilisez pas de composant? C'est l'expérience que j'ai eue dans le passé
Clive
Si vous essayez d'accéder à la valeur du champ dans une règle de paiement, vous devez d'abord définir "L'entité a une valeur" et vérifier le même champ avant de comparer les données. Je ne connais pas la situation exacte, afin de ne pas le mettre dans réponse ..
RajeevK
S'il vous plaît voir plus de contexte - ci-dessus
MrPaulDriver
Pouvez-vous me dire l'événement que vous utilisez pour ajouter la livraison?
RajeevK
Vous devrez donner plus de détails pour obtenir de l'aide, comme - Avez-vous installé l'événement d'expédition que vous utilisez, le type de valeur de champ auquel vous essayez d'accéder, etc. J'ai une configuration d'expédition fonctionnant pour la comparaison des prix (valeur totale inférieure à quelque chose) , mode de paiement utilisé (sur COD), type de produit acheté. Alors, pouvez-vous me dire le scénario où vous voulez utiliser et je vais essayer ça ..
RajeevK

Réponses:

2

J'ai finalement réussi à faire fonctionner cela en abandonnant l'idée d'avoir des champs personnalisés et en les remplaçant par des termes de taxonomie. Pour une raison quelconque (probablement inexpérience), je n'ai pas pu exposer mes champs personnalisés au module de règles afin de déclencher les règles d'expédition que je voulais.

En tirant parti du module Commerce Rules Extra, j'ai pu d'abord déclencher mes règles d'expédition basées sur des termes de taxonomie au lieu de champs personnalisés et deuxièmement pour définir des conditions supplémentaires pour le déclenchement de ces règles avec l'aide du mainteneur des modules @MarcElbichon, comme indiqué ici https: // drupal.org/node/2087815

MrPaulDriver
la source
1

J'ai fait ça -

J'ai utilisé le module d' expédition forfaitaire et créé un taux forfaitaire appelé prix de livraison gratuite 0. Ensuite, j'ai modifié le composant pour ne s'appliquer qu'aux circonstances requises et cela fonctionne vraiment bien.

Voir ci-joint.

FWIW J'ai utilisé le tarif forfaitaire pour la livraison gratuite et le tarif de poids du commerce pour le reste, ce qui fonctionne pour moi.

composante forfaitaire

charlesd
la source
Merci pour votre suggestion. J'avais envisagé cette approche mais mon client insiste pour n'avoir qu'un seul type de produit. Ayant appris plus sur son entreprise, je peux comprendre ses raisons.
MrPaulDriver