Bug? Risk-Management bei "Artikel-Attribut IST NICHT" funktioniert nicht

Hallo Community,

ein Problem ist bei mir aufgekommen, vielleicht habt Ihr einen Tipp für mich.

Unter „Zahlungsarten“ habe ich bei „Rechnung“ den Haken gesetzt bei „Aktiv für ESD-Produkte“.

Denn ich möchte eine Zahlung per Rechnung ermöglichen, sofern neben dem Download-Artikel (ESD) auch ein normaler, physischer Artikel (non ESD) im Warenkorb liegt.

Somit braucht es eine Bedingung, die im Risiko-Management die Zahlart Rechnung sperrt, wenn kein physischer Artikel im Warenkorb liegt.

Wollte dies über das Risikomanagement lösen mit dem Setzen einer Bedingung 

 

Artikel-Attribut IST NICHT (1>5) attr2|4

wobei attr2 das in den Freitextfeldern konfigurierte Attribut „Artikelart“ ist und die ID 4 besagt, dass es sich um einen physischen Artikel handelt.

Diese Funktion funktioniert aber nicht, egal was ich einstelle, sobald ich  Artikel-Attribut IST NICHT verwende, bleibt die Zahlungsart komplett ausgeblendet, egal was im Warenkorb liegt.

Handelt es sich hier um einen Bug oder habe ich etwas übersehen?

 

Bei den Versandarten gibt es ja die schöne Funktion eine Bedingung zu setzen wie „!all_esd“, die auch hier im Risikomanagement helfen würde, um bei Mischbestellungen Rechnungskauf zu ermöglichen, bei reinen ESD-Bestellungen jedoch nicht.

Gibt es einen Ansatz, das Problem zu lösen?

Danke für jeden Hinweis.

Habs mal eben getestet, funktioniert bei mir einwandfrei. Habe in das Attribut2 einne “4” reingeschrieben und die Abrfage wie du auf “attr2|4” gesetzt. Zahlungsart wurde gesperrt, sobald das Produkt mit einem anderen ohne das Attribut zusammen im Warenkorb liegt.

Würde jetzt vermuten, dass bei attr2 bei dir keine “4” in der Datenbank steht.

Hallo Moritz,

vielen Dank für Deine rasche Rückmeldung.

Das ist ja das Seltsame, ich habe tatsächlich den Wert 4 in der Datenbank stehen oder habe ich etwas verpasst?

Die Informationen werden doch aus der Datenbanktabelle „s_articles_attributes“ gezogen, oder?

Dort steht bei den entsprechenden Artikeln attr2 = 4

Habe das attr2 in der Freitextverwaltung als Einfachauswahl angelegt. Entsprechend steht in der DB-Tabelle „s_filter_values“:

Id = 4
optionID = 2
value = „Heft“ (also physischer Artikel)

Auch im Frontendtemplate wird die ID (4) bei den Artikeldetails (frontend/detail/index) mittels {$sArticle.attr2} ausgegeben. Allerdings würde ich hier - ähnlich wie im Block {block name=‚frontend_detail_description_properties‘} lieber den Namen des Wertes ausgeben (in meinem Fall also „Heft“), statt die ID. Habe es auch schon mit {$sArticle.attr2.propertyValueName} versucht, aber ohne Erfolg, stets wird nur die ID ausgegeben.

Hallo konntest Du das jemals lösen? Ich bin heute genau auf das gleiche Problem gestoßen und kann nicht genau nachvollziehen dass [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍ das hinbekommen hat. Vermutlich hat er keinen gemischten Warenkorb genommen oder?

Sobald sich ein Warenkorb mischt funktioniert es nicht mehr.
Artikel-Attribut IST 1
Warenkorb =1,3,4,5
-> „IST 1“ ist dabei > Bedingung erfüllt

Artikel-Attribut IST NICHT 1
Warenkorb =1,2,3,4,5
-> „NICHT 1“ ist mindestens einmal dabei -> Bedingung erfüllt.

Hier ist der Fehler denke ich. Es geht bei IST NICHT, nicht darum zu prüfen, ob es einmal nicht zutrifft - es darf niemals nicht zutreffen, also niemals Wert 1 sein.

Ist das verständlich erklärt?

Im meinem konkreten Fall möchte ich die Zahlungsart Rechnung ausblenden wenn der Warenkorbwert 0 ist UND kein Produkt enthalten ist, was das attr12=1 hat.