Textfelder (Eingabefelder) im Warenkorb

Begonnen von Andi, Februar 11, 2009, 17:28:30

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

Andi

Hallo,

ich will gerne, das der Kunde im Warenkorb zusätzliche Angaben machen kann / soll.
(Fahrzeugangaben - einfache Texteingabe, die nur mit in die Bestellmail soll).

Kann man das irgendwie mit SP-Bordmitteln machen ???

Bisher haben wir die Eingabefelder in den späteren Bestellformularen,
ich würde es jedoch praktischer finden, wenn die Abfrage schon im WK kommt.


Grüße von Andi
Alufelgen - Reifen - Komplettr?der
www.auto-tuning-shop.com

admin

Hallo,

mit SSP sollte  es gehen.
Ich kann mal das Prinzip erklären.

Mann macht also ein Formular für die Angaben. Die URL die aufgerufen wird (Action) ist wieder die WK URL selbst.
Im Kopfbereich "also vor Body", fügt man den Code für  Callback::begin_read_template ein.
In dieser Funktion schaut man, ob die Formularvariablen für unser Formular definiert sind, wenn
ja, werden Sie mit main::cart_put_formvars('autodaten') im wk gespeichert.
An anderer Stelle z.B. für die Mail kann man die Daten mit main::cart_get_formvars('autodaten') wiederholen und einfach per Identifier (dem Namen des Formularfeldes mit zwei Unterstrichen) ausgeben.

Ich hoffe das hilft weiter.
Gruss Hop


dobra

#2
Hallo Andi,

hier mal ein einfaches Beispiel, wie hop das gemeint hat:

Code im WK-Head Bereich:
<!--spmacro:module(Callback)
sub begin_read_template {

my $automarke = ssp::qform(ssp::get_var_form('Automarke'));
   if (length($automarke) && $automarke ne "$ssp::undefined")  {main::cart_put_formvars("autodaten"); }
my $irgendwas = ssp::qform(ssp::get_var_form('xx'));
   if (length($irgendwas ) && $irgendwas ne "$ssp::undefined")  {main::cart_put_formvars("autodaten"); }
my $nochwas = ssp::qform(ssp::get_var_form('yy'));
   if (length($nochwas ) && $nochwas ne "$ssp::undefined")  {main::cart_put_formvars("autodaten"); }
}
-->


Formular im WK-HTLM Teil:
<form method="post" name="autodaten" action="">
Automarke <input name="Automarke" value="__Automarke__">
<br>irgendwas <input name="xx" value="__xx__">
<br>nochwas <input name="yy" value="__yy__">
<br><input type="submit" value="Daten speichern">
</form>


Auf den Seiten auf denen diese Formularangaben ausgelesen werden soll (Bestellformulare, Mails...)
im Head-Bereich:
<!--spmacro:module(Callback)
sub begin_read_template {
main::cart_get_formvars("autodaten");
}
-->


ausgeben dann mit
   __Automarke__
   __xx__
   __yy__

(getestet im Styleshop)

Nachtrag: wenn Du im WK auch das noch reinschreibst, werden die bereits eingegebenen Daten auch wieder angezeigt, wenn der Kunde noch andere Artikel kauft oder anschaut, bevor er die Bestellung absendet.

<!--spmacro:module(Callback)
# ermoeglicht die Anzeige bereits eingegebener KFZ-Daten
sub after_read_template {
main::cart_get_formvars("autodaten");
}
-->


Code editiert wie hop es geschrieben hat
(hoffe, es ist jetzt richtig so? - funktionieren tut es jedenfalls ;)
mfG
dobra

admin

Hallo,

Danke Dobra für diie Umsetztung, die so auch korrekt ist und funktionieren sollte.
Eine Kleinigkeit jedoch noch: Es ist nicht notwendig für jede Formularvariable ein main::main::cart_get_formvars bzw. main::cart_put_formvars auszuführen.
Ein einziger Aufruf reicht hier, da damit ALLE Formularvariablen gespeichert (bzw. gelesen) werden.


Gruss hop

dobra

Hallo hop,

Danke für den Hinweis - bitte bei meinem Scrip ausbessern
(war mein erster Versuch mit cart_put_formvars  ;))
mfG
dobra