Probleme mit Rules/ Fields in Commerce
Eingetragen von degunino (109)
am 08.06.2013 - 16:30 Uhr in
am 08.06.2013 - 16:30 Uhr in
Moinsen,
habe ich Problem mit Rules in meinem Commerce/Kickstart-Shop.
Die Produkte haben eine Feld "Liefergebiet" mit einer Postleitzahl. Beim Hinzufügen eines Produkts zum Einkaufswagen soll geprüft werden, ob die Liefergebiets-PLZ des Produkts einen bestimmten Wert hat.
Event: Bevor Sie ein Produkt dem Warenkorb hinzufügen
Bedingung 1: Entität hat Feld, Parameter: Entität: [commerce-product], Feld: field_liefergebiet
Bedingung 2: Datenvergleich, Parameter: hier würde ich gerne [commerce_product:field_liefergebiet] eintragen und mit einem bestimmten Wert vergleichen. Klappt nicht -> invalid value.
Jemand eine Idee, was ich falsch mache?
- Anmelden oder Registrieren um Kommentare zu schreiben
Keine Ahnung, ob das zu
am 09.06.2013 - 12:12 Uhr
Keine Ahnung, ob das zu meinem Problem gehört, aber beim Abruf der Feldliste tauchen momentan diese Fehler auf:
Ich war ein paar Tage in
am 16.06.2013 - 17:31 Uhr
Ich war ein paar Tage in Urlaub, deshalb die jetzt etwas späte Antwort auf deine Frage (ach ja, wir hatten gutes Wetter).
Du mußt das zusätzlich zu den Rules auch noch mit Komponenten von Rules realisieren, d.h. ganz konkret:
Eine Komponente hinzufügen, die die Überprüfungen durchführt, die du eben auch schon vorgeschlagen hat:
(Bedingungen)
Entity hat Feld
Feld ist nicht leer
Datenvergleich: Feld ist z.B. eine bestimmte PLZ
und dann verknüpfst du das mit einer Pricing Rule
Event:
Die Berechnung der Verkaufspreises eines Produktes
Bedingungen:
Entität hat das Field: commerce_product
AND Lieferbedingung (wenn deine Komponente so hieß)
Aktion:
Den Einzelpreis mit einem bestimmen Betrag multiplizieren
(nun das dürfte klar sein, wie das funktioniert)
ich weiß nicht, ob es auch noch anders geht, aber so geht es auf jeden Fall, ich habe es selbst ausprobiert.
Gruß
Berthold
Hallo Berthold, erst einmal
am 19.06.2013 - 11:31 Uhr
Hallo Berthold,
erst einmal vielen Dank für Deine Antwort. So richtig will es aber noch nicht klappen.
Ich habe mich strikt an Deinen Vorschlag gehalten:
1. Neue Komponente als Condition set (AND) angelegt, als Variable "mein-line-item" übergeben.
2. In der Komponente neue Condition "Entity has field" angelegt: Parameter: Entity: [mein-line-item], Field: field_liefergebiet
Will ich jetzt eine "Data-value-is-empty" oder "Data-comparison"-Condition anlegen, dann wird mir das Feld "field_liefergebiet" nicht im Data Selector angezeigt.
Vielleicht noch ein ergänzender Hinweis: das o.g. Feld ist dem Inhaltstyp "Hats" zugeordnet (ich experimentiere mit der Grundinstallation von Kickstart).
Als Variable habe ich nicht
am 19.06.2013 - 12:06 Uhr
Als Variable habe ich nicht mein-line-item übergeben, sondern eine Entität --> Commerce Product.
Und dann habe ich auch alle Felder zur Verfügung um die Bedingungen richtig zu schreiben.
Gruß
Berthold
Zitat: Vielleicht noch ein
am 19.06.2013 - 12:48 Uhr
Vielleicht noch ein ergänzender Hinweis: das o.g. Feld ist dem Inhaltstyp "Hats" zugeordnet (ich experimentiere mit der Grundinstallation von Kickstart).
Diesen Hinweis hatte ich überlesen, will aber noch kurz darauf eingehen.
ich weiß ja nicht, was dein Inhaltstyp "Hats" ist, ich kann dir nur sagen, wo ich das Feld "Liefergebiet" bei der speziellen Artikelvariante hinzugefügt habe, also da, wo auch die Produktnummer (SKU) oder der Preis usw. stehen.
Ich verwende im übrigen auch die Kickstart-Variante von commerce.
Gruß
Berthold
Das ist genau der Punkt...
am 19.06.2013 - 14:27 Uhr
Das ist genau der Punkt. Ich habe jetzt mein Feld mal bei den Feldern der Artikelvariante eingetragen und nun habe ich den Zugriff im Data Selector (insofern also schon mal ein Teilerfolg).
Mein Verständnis der Commerce-Struktur: Artikelvarianten ("Variation Typs") steuern Ausprägungen eines Produkts wie Farbe, Größe, Gewicht usw. Produkt- bzw. Inhaltstypen ("Content types") bilden eine Klammer um diese Artikelvarianten. Wenn ich also nicht für jede Kombination aus Farbe-Größe-Gewicht-usw. das Liefergebiet pflegen möchte, dann füge ich das entspr. Feld im Content Type ein. Auf diese Felder habe ich aber (scheinbar) in Rules keinen Zugriff.
Kann das damit zu tun haben, dass es sich hier um das Feld eines Nodes handelt? Irgendwo habe ich sowas in Verbindung mit Rules mal gelesen. Weitere Ideen sind willkommen...
Hier nun die (Auf)Lösung...
am 23.06.2013 - 10:39 Uhr
Hier nun die Lösung, die ich nach einigem Probieren gefunden habe.
Zur Erinnerung noch mal die Fragestellung: Wie kann ich über den Data Selector in Rules Felder von Product-Nodes bei Events, die Line Items übergeben, erreichbar machen?
Lösung: der zugehörige Node-Type muss über "Content is of Type" in den Fokus gebracht werden.
Hier beispielhaft zwei Conditions; Product-Type ist "Hats", das abzufragende Feld "liefergebiet".
Condition1
Condition2