ich habe nach einer Aktualisierung der Shopversion das Problem, dass ein Persparam, der schon im Warenkorb angezeigt wird, nach Änderung der Menge des Produktes und Klick auf den Aktualisieren-Button nicht mehr da ist.
Ich bin nicht sicher, ob der Wert in einem input type=hidden hinterlegt werden muss, was ich schon versucht habe, oder wie man bewerkstelligt, dass der Wert beibehalten wird. Hat da jemand von Euch eine Idee?
Welche Shopversion, welches Template? Wenn du nicht sicher bist wie der Wert übergeben wird, schau einfach im Azure-Theme nach. Standardmäßig ist da ein Textfeld, das kann natürlich auch ein hidden Feld sein.
Du musst den Standardmäßigen Persparam erhalten, falls du das Persparam-Array um einen eigenen Wert erweitern möchtest, andernfalls werden die anderen Persparams geleert.
sowas passiert meistens beim falsch angepassten Templates.
welches Theme wird benutzt?
Sind deine persparams im Warenkorb sichtbar?
Sind sie auch im Formular wie die standard-Persparams?
Werden sie beim Abschicken des Formulars mit übertragen?
Der Parameter ist sichtbar, wobei ich den entsprechenden Block (checkout_basketcontents_basketitem_titlenumber) überschreibe, damit mein Parameter nicht editierbar ist. Eine Erweiterung funktioniert hier meines Wissens nicht, weil ich sonst nicht innerhalb des <td> Tags bin. Da lass ich mich aber gerne eines Besseren belehren. Die Überschreibung wird über “extend” in der metadata.php in meinem Modul eingebunden.
Meinen Parameter übertrage ich wie beschrieben über den addToBasket Aufruf in meinem eigenen Controller. In einem Formular taucht er also nicht auf.
Heißt das alle persParams aller Warenkorb Items werden überschrieben bzw. geleert, wenn der Warenkorb aktualisiert wird? Natürlich mit Ausnahme der “Standard” Parameter, da diese als Input-Feld im Formular übertagen werden?
Dann müsste ich also im Warenkorb dafür Sorgen, dass mein Parameter im Formular an der richtigen Stelle enthalten ist… Richtig?
richtig, schau mal in das standard template, dort sind versteckte input Felder für persparams auch wenn diese nicht editierbar sind.
Wenn du sie weglässt, denkt der Shop dass du sie nicht mehr haben willst und schmeißt sie weg.
Ich habe in meinem Modul den Block “checkout_basketcontents_basketitem_titlenumber” in application/views/azure/tpl/page/checkout/inc/basketcontents.tpl überschrieben. Dort findet ihr eine foreach Schleife, die durch den persparam Array geht. Mittels einer IF Abfrage fange ich meinParameter ab, gebe es aus und erstelle ein hidden Feld.
Das blöde ist nun, dass [B]dieses Feld ignoriert wird, wenn persParam[‘details’] leer ist[/B]. Also fange ich im selben Block ab, ob details gefüllt ist und wenn nicht fülle ich es mit irgendwas konstantem. Diese zeige ich nicht an, sondern übergebe es nur in einem hidden Feld.
Ich weiß noch nicht genau, ob ich die Standard persParam (details) zulasse, wenn ja muss ich an der Stelle noch mal nachbessern.