Gelöst Kann keine Warengruppen als Bedingung anlegen

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#1
Ich bin grade dabei mir Workflows anzulegen um den Versand zu regeln. Das soll nach Warengruppen als Bedingung gehen. Leider finde ich im TAB "Aufträge" nirgends Warengruppen.
Auch wird das nicht ausgewertet unter "Erweiterte Eigenschaften": {{ Vorgang.Allgemein.Kategorisierung.Warengruppe.Name }}

Folgendes habe ich mir unter "Erweiterte Eigenschaften mal angelegt (die Zahlen 10-17 sind nur zum testen, soll dann ne 1 jeweils rein):
Code:
{% if Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == Arbeitsspeicher (RAM) and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}10
{% elsif Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == Controller and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}11
{% elsif Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == Gehäuselüfter and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}12
{% elsif Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == Lüftersteuerung and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}13
{% elsif Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == Prozessor (CPU) and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}14
{% elsif Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == Soundkarte and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}15
{% elsif Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == TV-Karte and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}16
{% elsif Vorgang.Allgemein.Kategorisierung.Warengruppe.Name == Kabel / Adapter %}17
{% else %}0
{% endif %}

Anmerkung von @Rico Giesler: Warengruppen gibt es bereits unter Aufträge. Allerdings nicht als Warengruppe.Name sondern als IntereWarengruppennummer.
Aber auch über die erweiterten Eigenschaften kannst du das lösen mit Warengruppen Name.
Hierzu müsste eine Schleife über alle Positionen gebaut werden. Zu beachten ist hierbei, was passieren soll wenn mehrere Artikel aus verschiedenen Warengruppen enthalten sind.
Bitte dazu am besten einen separaten Thread aufmachen. Dort könnt ihr euch dann mit der Community darüber austauschen wie es am besten geht.


@Rico Giesler
Also über Erweiterte habe ich es versucht siehe oben, wie ist denn da die Syntax? Und Warengruppennummer finde ich nicht wo soll das sein?
 

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#2
So nun habe ich das probiert, aslo Warengruppe aus Artikel nicht aus Vorgang. Und Bezeichnung der Warengruppe in Anführungszeichen:
Code:
{% if Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Arbeitsspeicher (RAM)" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}10
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Controller" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}11
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Gehäuselüfter" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}12
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Lüftersteuerung" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}13
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Prozessor (CPU)" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}14
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Soundkarte" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}15
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "TV-Karte" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}16
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Kabel / Adapter" %}17
{% else %}0
{% endif %}
Das wirft mir nur 0 aus.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
2.870
333
Berlin
#3
Wir hatten ja darüber gesprochen, also wenn da etwas nach Name abgefragt wird, dann muss der Name gequoted werden.
Hinzu kommt wo ich das jetzt so anschaue, die Warengruppe bezieht sich doch auf den Artikel, also müssten alle Artikel nach der jeweiligen Warengruppe abgefragt werden.

Was passiert wenn ich drei Artikel unterschiedlicher Warengruppen kaufe?
 

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#4
Und ohne Anführungszeichen wirft er mir immer die 17 aus:
Code:
{% if Artikel.Allgemein.Kategorisierung.Warengruppe.Name == Arbeitsspeicher (RAM) and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}10
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == Controller and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}11
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == Gehäuselüfter and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}12
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == Lüftersteuerung and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}13
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == Prozessor (CPU) and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}14
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == Soundkarte and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}15
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == TV-Karte and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}16
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == Kabel / Adapter %}17
{% else %}0
{% endif %}
Beide Variablen geben nichts aus:
{{ Artikel.Allgemein.Kategorisierung.Warengruppe.Name }}
{{ Vorgang.Allgemein.Kategorisierung.Warengruppe.Name }}
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
2.870
333
Berlin
#8
und wo ist da diese Variable Artikel.Allgemein.Kategorisierung.Warengruppe.Name die man abfragen könnte?

die eigentlichen Variablen die abgefragt werden müssten wären also

Code:
{{ Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.Artikel.Warengruppe.InterneWarengruppennummer }}

oder

{{ Vorgang.AuftragsPositionen.ArtikelPositionen.ErstesObjekt.Artikel.Warengruppe.Name }}
was bedeutet, dass du das in einer Schleife abfragen musst denn wie ich schon sagte es kann ja sein das jemand mehr als einen Artikel kauft.

Achtung, das ist jetzt einfach aus dem Kopf geschrieben, ich habe auch noch nie elsif verwendet, gibt es das wirklich? Sehe das also nur als Hinweis das es eigentlich eine Schleife sein müsste die die einzelnen Artikelgruppen prüft, eine Prüfung per Interner ID wäre aber auch besser da eindeutig:

Code:
{% assign maxPreis=0 %}\
{% for Item in Vorgang.AuftragsPositionen.ArtikelPositionen %}\
{% assign warenkorbGruppe=Item.Artikel.Warengruppe.Name %}\
{% if warenkorbGruppe == "Arbeitsspeicher (RAM)" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30 and maxPreis < 10 %} {% assign maxPreis=10 %}\
{% elsif warenkorbGruppe == "Controller" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30  and maxPreis < 11 %} {% assign maxPreis=11 %}\
{% elsif warenkorbGruppe == "Gehäuselüfter" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30  and maxPreis < 12 %} {% assign maxPreis=12 %}\
{% elsif warenkorbGruppe == "Lüftersteuerung" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30  and maxPreis < 13 %} {% assign maxPreis=13 %}\
{% elsif warenkorbGruppe == "Prozessor (CPU)" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30  and maxPreis < 14 %} {% assign maxPreis=14 %}\
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Soundkarte" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20  and maxPreis < 15 %} {% assign maxPreis=15 %}\
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "TV-Karte" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20  and maxPreis < 16 %} {% assign maxPreis=16 %}\
{% elsif Artikel.Allgemein.Kategorisierung.Warengruppe.Name == "Kabel / Adapter"  and maxPreis < 17 %} {% assign maxPreis=17 %}\
{% endif %}\
{% endfor %}\
{{ maxPreis }}
 
Zuletzt bearbeitet:

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#9
Erst mal vielen Dank für deine Bemühungen, wird nicht dein Schaden sein. Ich probiere das gleich mal.

Da ich ja teilweise verschachteln will bzw. "und" "oder" machen will, habe ich ja in den Workflows keine Möglichkeit das darzustellen. Außer die werden ellenlang, hier gibt es Verbbesserungspotential.

Okay wenn man in den Workflows unter "Erweitere Eigenschaften verwalten" sich einfach eine Variable rein zieht und unter "Vorschau Auftrag" einen Artikel auswählt bekommt man in der Vorschau (Text) den entsprechend Wert angezeigt.
Das ist aber bei diesen beiden Warengruppenvariablen nicht so:
Code:
{{ Artikel.Allgemein.Kategorisierung.Warengruppe.Name }}
{{ Vorgang.Allgemein.Kategorisierung.Warengruppe.Name }}
Komischerweise wird aber im normalen Workflow mit der Variable {{ Artikel.Allgemein.Kategorisierung.Warengruppe.Name }} beim Workflow Test gesagt er hat ihn ausgeführt. Habe da aber noch nicht alle Möglichkeiten durch getestet.

Dein Quoten habe ich ausprobiert aber dann wird z.B. das "and" nicht mehr ausgeführt was ohne Quoten funzt.
 

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#10
Ach so die "elsif" und "and" funzen wunderbar. Das ist auch das was ich ein bisschen kann. Nur wie gesagt die beiden Variablen liefern keinen Wert zurück.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
2.870
333
Berlin
#11
können Sie in einem Auftrag ja auch nicht weil die in einem Array von Vorgang.AuftragsPositionen.ArtikelPositionen sind, daher brauchst du eine Schleife.
{% for Item in Vorgang.AuftragsPositionen.ArtikelPositionen %}
{% endfor %}

und in Item ist dann das Objekt also die Daten der einen Position = Item.Artikel.Warengruppe.Name

Es sind nur die Variablen vorhanden, die du auf der rechten Seite auch auswählen kannst, immer wenn du da was von ErstesObjekt siehst dann musst du die Daten in einer Schleife abfragen.

 

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#13
Okay verstanden da sehr wahrscheinlich der Wert den ich brauche in einer anderen Tabelle ist muss ich die per Schleife einlesen.
So läuft schon mal der erste Vorgang. JUBEL. Ich melde mich mal nächste Woche bei dir.
Code:
{% if Vorgang.Lieferung.Lieferadresse.LandISO =="DE" %}

    {% for Item in Vorgang.AuftragsPositionen.ArtikelPositionen %}
        {% if Item.Artikel.Warengruppe.Name == "Arbeitsspeicher (RAM)" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}DE30
            {% elsif Item.Artikel.Warengruppe.Name == "Controller" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}DE30
            {% elsif Item.Artikel.Warengruppe.Name == "Gehäuselüfter" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}DE30
            {% elsif Item.Artikel.Warengruppe.Name == "Lüftersteuerung" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 30,00 %}DE30
            {% elsif Item.Artikel.Warengruppe.Name == "Prozessor (CPU)" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 49,00 %}DE30
            {% elsif Item.Artikel.Warengruppe.Name == "Soundkarte" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}DE30
            {% elsif Item.Artikel.Warengruppe.Name == "TV-Karte" and Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart <= 20,00 %}DE30
            {% elsif Item.Artikel.Warengruppe.Name == "Kabel / Adapter" %}DE30
        {% else %}0
        {% endif %}
    {% endfor %}


{% else %}Anderes Land
{% endif %}
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
2.870
333
Berlin
#14
Du weißt das deine Variante nur bei einem gekauftem Artikel funktioniert oder?
Hast du mehrere Artikel solltest du auf meine obere Variante zugreifen, da diese dann immer schaut ob ein Artikel dabei ist der höhere Versandkosten hat und dieses dann automatisch anpasst.
 

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#16
Hmmh muss dat Dingens von dir erstmal verstehen warum das so ist.

Ich glaube du hast die 10-17 als Preise verstanden, richtig? Das waren nur Zahlen zum prüfen was übergeben wird. Jetzt steht da überall nee 1 bzw. DE30 außer wenn nix zutrifft. Im Workflow sage ich dann wenn nee 1 bzw. DE30 dann ändere die Versandkosten.

Ich habe für unter 30 Euro 4 Versandarten DE, EU, NON-EU und RU. Das muss ich abbilden. Muss noch rausbekommen wie ich mehrere Aktionen anlegen kann. Also wenn z.B. DE30 übergeben wird dann nimm die Aktion und wenn EU dann die Aktion.
 
Zuletzt bearbeitet:

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
2.870
333
Berlin
#17
ja habe ich weil es danach aussah aber was am Ende übergeben wird ist egal, es geht ja nur um die Funktionsweise wie ich so etwas angehen würde.
Das dann noch nach den einzelnen Versandländer aufzudröseln sollte dann ja nicht mehr so schwer sein.

Es ist immer schwierig etwas als Codebeispiel zu machen, wenn man nicht genau weiß was am Ende wirklich passieren soll. mit dem D30 kann ja auch niemand was anfangen ohne Backgroundwissen.
Wenn ich genau wüsste was passieren soll, könnte das ganze eventuell in einem 5 Zeiler abgehandelt werden, wer weiß :)
 

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#18
So hier mal mein erster Versand Workflow mit ifs:
Code:
{% if Vorgang.AuftragsPositionen.ArtikelPositionen.Anzahl =="1" %}
    {% for Item in Vorgang.AuftragsPositionen.ArtikelPositionen %}
        {% assign land=Vorgang.Lieferung.Lieferadresse.LandISO %}
        {% assign landEU=Vorgang.Lieferung.Lieferadresse.Land.IstEU %}
        {% assign landNONEU=Vorgang.Lieferung.Lieferadresse.Land.Kontinent %}
        {% assign preis=Vorgang.Zahlungen.GesamtbruttopreisOhneVersandart %}
        {% assign menge=Vorgang.AuftragsPositionen.Positionen.ErstesObjekt.Menge %}
        {% assign waren=Item.Artikel.Warengruppe.Name %}

            {% if waren == "Arbeitsspeicher (RAM)" and land =="DE" and menge =="1" and preis <= 30,00 %}Post30
                {% elsif waren == "Controller" and land =="DE" and menge =="1" and preis <= 30,00 %}Post30
                {% elsif waren == "Prozessor (CPU)" and land =="DE" and menge =="1" and preis <= 30,00 %}Post30
                {% elsif waren == "Gehäuselüfter" and land =="DE" and menge =="1" %}Post30
                {% elsif waren == "Kabel / Adapter" and land =="DE" and menge =="1" %}Post30
                {% elsif waren == "Lüftersteuerung" and land =="DE" and menge =="1" preis <= 10,00 %}Post30
                {% elsif waren == "Blende" and landEU =="true" %}Post30
                {% elsif waren == "Zubehör Sets" and landEU =="true" and menge =="1" %}Post30
                {% elsif waren == "Retentionmodul" and land =="DE" and menge =="1" %}Post30
                {% elsif waren == "SLI-Brücke" and land =="DE" and menge =="1" %}Post30
                {% elsif waren == "Soundkarte" and land =="DE" and menge =="1" and preis <= 20,00 %}Post30
                {% elsif waren == "TV-Karte" and land =="DE" and menge =="1" and preis <= 20,00 %}Post30
            {% endif %}    
    {% endfor %}
{% endif %}
Mit {% elsif landEU !="true" and landNONEU =="true" } kann ich dann die europäischen Länder ohne die EU ansprechen.

Übergeben denn im Workflow:
 

Anhänge

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
2.870
333
Berlin
#19
Langsam kommt licht ins Dunkel aber es es kommen neue Fragen auf.

{% if Vorgang.AuftragsPositionen.ArtikelPositionen.Anzahl =="1" %} -> was machst du wenn einer zwei Artikel kauft, die eins muss auch nicht gequoted werden, es ist ja ein integer Vergleich?
 

gnarx

Gut bekanntes Mitglied
18. Januar 2018
1.064
57
#20
Es ist wohl so sobald 2 Artikel gekauft werden wird es sowie Paket das wollte ich denn in den Paket Workflow packen. Erstmal noch vielen Dank für deine Hilfe, melde mich bei dir.