Hallo zusammen,
wie kann ich im liquid code einen Wert eines array’s ändern?
z. b. product.variant.price von 1000 auf 1100
vielen Dank im Voraus für Eure Hilfe!
Ein Nutzer möchte in Liquid-Code einen Wert in einem Array ändern, speziell den Preis einer Produktvariante von 1000 auf 1100.
Kernproblem:
Lösungsansatz:
{% assign new_weight = product.weight | plus: 100 %} (erhöht Gewicht um 100){% assign new_price = product.variants[i].price | plus: added_value %}Wichtige Einschränkung:
Die Diskussion bleibt offen, da unklar ist, ob die vorgeschlagene Lösung den Anforderungen des Nutzers entspricht.
Hallo zusammen,
wie kann ich im liquid code einen Wert eines array’s ändern?
z. b. product.variant.price von 1000 auf 1100
vielen Dank im Voraus für Eure Hilfe!
@FS-O das ist kein Array (Liste), sondern ein einzelner Wert.
Aber wenn du den Varianten Preis eines Produktes ändern möchtest, kannst du das über das Backend machen.
Wenn du über Liquid eine Zahl erhöhen willst, kannst die Math-Filter verwenden:
Beispiel:
product.weight = 100
{% assign new_weight = product.weight | plus: 100 %}
new_weight = 200
Hi Finer,
danke für Deine Antwort.
Ich will den Preis dynamisch ändern, aber das klappt irgendwie nicht.
{% for i in var_range %}
{% assign new_price = 1000 %}
{% assign product.variants[i].price = new_price %}
{% endfor %}
Wenn ich eine Kopie der Varianten erstelle, funktioniert das auch nicht.
@FS-O du kannst einen Standard-Wert nicht überschreiben, aber eine Variable erzeugen, die einen neuen Wert erhält.
{% for i in var_range %}
{% assign added_value = 1000 %}
{% assign new_price = product.variants[i].price | plus: added_value %}
{% endfor %}
Allerdings würde das hier nur den „sichtbaren“ Preis ändern.
Im Backend bleibt es bei dem eingerichteten Preis. Spätestens im Checkout wird der Preis also nicht mehr mit dem neu definierten Preis stimmen.