ein Plugin soll anhand eines Artikel-Attributs prüfen, ob der Artikel aus der Suche ausgeschlossen werden soll oder nicht. Das Attribut vom Typ Boolean soll für den Wert 1 für den Ausschluss des Artikels sorgen.
Soweit kein Problem:
new ProductAttributeCondition(self::ARTICLE_ATTRIBUTE, ProductAttributeCondition::OPERATOR_EQ, 0)
Nun werden nur Artikel beachtet, für die der Attribut-Wert 0 ist. Allerdings ist dieser nicht per default 0, sondern bei Erstellung des Attributes immer NULL. Und das ist für die ProductAttributeCondition nicht das gleiche. Die 0 wird erst übernommen, wenn der Artikel erneut gespeichert wird.
Meine Idee, eine zweite Condition hinzuzufügen, die den Wert NULL abfängt, scheitert daran, dass dann immer nur die jeweils zweite Condition zur Ausführung kommt, also dann nur noch Attribute mit dem Wert NULL, nicht aber mehr mit 0 beachtet werden.
Welche Möglichkeiten gibt es…
a) eine zweite Condition zu nutzen bzw. die beiden zu kombinieren?
b) Das Attribut beim Erstellen direkt für alle Artikel auf 0 zu setzen. Wobei sich an dieser Stelle die Frage stellt, ob das für einen riesigen Produktkatalog nicht zu viel Aufwand/Zeit bedeutet?
Danke für die Antwort. Es war mir nicht bewusst, dass ich beim Erstellen via Crud-Service den default-Wert mitgeben kann. In der Doku konnte ich dazu leider nix finden.
Dann bekommen alle bestehenden Artikel automatisch den Wert 0 und nicht NULL.
Das hat mir auch geholfen, danke. Allerdings scheint der default-Wert nicht zu funktionieren, wenn man eine ComboBox nutzt. Da in der Datenbank dann die Keys stehen, die man vorher über ‚arrayStore‘ angegeben hat, habe ich es mit dem Key probiert, aber in der Datenbankstruktur registriert es mir keinen Default-Wert.