Drupal workflow rules gemakkelijk begrijpen OR/AND

Logo: Drupal.org

Voor een van de opdrachtgever van het bedrijf waar ik overdag werk moest ik wijzigingen doorvoeren. Zij hebben een Drupal website met de Commerce webshop module. In het verleden zijn er voor een aantal modules updates uitgevoerd waardoor de BTW (taxes) niet meer juist werden berekend. De reden dat het fout ging was omdat een veld niet meer bestond.

De oplossing zou zijn om de bestaande Drupal workflow rules, die de belasting berekenen, aan te passen zodat die weer juist werken. Er waren wel een aantal uitzonderingen. Zo hoeven klanten uit de Verenigde Staten of de EU bij het invullen van een BTW nummer geen belasting te betalen. Zij betalen de belasting in hun eigen land.

In het verleden had ik al wel eens met workflow rules gewerkt. Een handig systeem om op basis van if statements te bepalen of een actie of welke actie uitgevoerd moet worden. Maar om bovenstaand probleem op te lossen moest ik toch complexere rules schrijven die rekening houden met alle uitgangssituaties.

De oplossing zat in het gebruiken van OR en AND opties. Alleen daar ging ik mee in de fout omdat ik deze schreef net of dat het een PHP script met if statements was. In Drupal workflow rules werkt het net iets anders. Hier kwam ik achter door deze video op Drupalize.me te bekijken. Een aanrader die in nog geen 10 minuten veel dingen verduidelijkt.

Normaal plaats je een OR of AND tussen twee statements. Maar bij Drupal geldt de OR of AND voor de rules die je hieronder plaatst. Het is belangrijk dat je deze ook in laat springen. Dit maakt het ook meteen overzichtelijker. Het vereist dus een andere denkwijze maar hierna kan je de Drupal Workflow Rules wel optimaal inzetten.

De oplossing bestond voor mij uit een AND gevolgd door een OR. Hierna komen de verschillende uitgangssituaties die ieder beginnen met een eigen AND omdat ze telkens 2 condities hebben.

Laat een reactie achter

Your email address will not be published. Required fields are marked *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.