Werte in einem Array ändern

Topic summary

Ein Nutzer möchte in Liquid-Code einen Wert in einem Array ändern, speziell den Preis einer Produktvariante von 1000 auf 1100.

Kernproblem:

  • Es handelt sich nicht um ein Array, sondern um einen einzelnen Wert
  • Standard-Werte in Liquid können nicht direkt überschrieben werden

Lösungsansatz:

  • Stattdessen muss eine neue Variable mit dem geänderten Wert erstellt werden
  • Beispiel: {% assign new_weight = product.weight | plus: 100 %} (erhöht Gewicht um 100)
  • Für Preise: {% assign new_price = product.variants[i].price | plus: added_value %}

Wichtige Einschränkung:

  • Die Änderung ist nur visuell/dynamisch auf der Frontend-Seite
  • Im Backend und beim Checkout bleibt der ursprüngliche Preis bestehen
  • Echte Preisänderungen müssen über das Backend vorgenommen werden

Die Diskussion bleibt offen, da unklar ist, ob die vorgeschlagene Lösung den Anforderungen des Nutzers entspricht.

Summarized with AI on November 6. AI used: claude-sonnet-4-5-20250929.

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.