Artikel (GS) automatisch aus WK löschen wenn...

Begonnen von dobra, Dezember 21, 2007, 08:10:11

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

ich finde mal wieder nicht den richtigen ssp Befehl  ???

Aufgabe:
Ein Gutschein soll bei Kauf von einem Artikel aus einer bestimmten Warengruppe automatisch mit in den WK gelegt werden.
Das ist ja kein Problem
ABER wenn der Kunde den Artikel wieder aus dem WK löscht, soll auch der Gutschein automatisch wieder gelöscht werden.

<!--spmacro:module(check)
sub wkkategorie {
my $out;
my $index = $_[0];
my $anzahl = $_[1];
for (my $i = 0;$i <= $anzahl;++$i) {
my $inwk = ssp::get_var_cart('KATEG',$i);
if ($inwk !~ /die_Kategorie_für_die_der_GS_gelten_soll/) {
Gutschein "_GS_irgendwas" löschen
}
}
}
-->


Gutschein "_GS_irgendwas" löschen  (oder auch "ein Crossartikel") -> ich komme nicht dahinter, wie ich diese Anweisung schreiben muß, da ich ja nicht weiß, an welcher Position dieser (Gutschein-)Artikel steht
mfG
dobra

admin


Hallo Dobra,

folgender Lösungsansatz (kein fertiger Code):


1. es muss eine Tabelle geben, aus der hervorgeht welcher Gutschein zu welcher Warengruppe gehört.



    # Gutschein Prefix ist AXX
    %GSWGHash = (
           'kat1' => 'AXX4711',
           'kat2' => 'AXX4712',
      );


2. Wenn etwas aus dem WK entfernt wird, muss überprüft werden, ob ein Gutschein für diese WG im WK liegt und ob es der letzte (einzige) Artikel der WG ist.



my $gsnr;
my $cat_count = 0;
my $cat_to_delete;
my $itemid_to_delete; ## soll die Artikelnummer des zu löschenden Artikels enhalten

for (my $i = 0;$i <= $anzahl;++$i) {
         my $cat = ssp::get_var_cart('KATEG',$i);
         if (ssp::get_var_cart('id',$i) eq  $itemid_to_delete) {
                   $cat_to_delete = $cat;
                   $gsnr = GSWGHash{$kat};
           }
           if ($cat eq $cat_to_delete) {
                     ++$cat_count; ## Wieviele Artikel dieser Katergorie
           }
}



3. Wenn ja, diesen Gutschein entfernen.


if (($cat_count == 1) && $gsnr) {
# gsnr löschen
}




dobra

#2
Hallo hop,

Danke für den Ansatz - ich denke, damit kriege ich die Bedingungen hin  :D

Aber was ich (noch) nicht herausgefunden habe, ist das # gsnr löschen

Habe es mit

my $out;
...
if (Bedingung) {
$out = qq|
               <form method="post" action=__xanzaendern__>
                  <input type ="hidden" name="_GS_irgendwas" value="">
               </form>
|;
} else { $out = qq|
               <form method="post" action=__xanzaendern__>
                  <input name="__xid__" style="width:25px;" size="1" maxlength="3" value="__anzahl__">
                  <input type="submit" class="anzae" value="" title="Anzahl ändern">
               </form>
  |;
   }
main::mprint $out;    
}
}

versucht - funktioniert aber nicht

Mit action="__xxpath__?placecart0,__xxsession__" kann man einen Artikel in den WK legen
aber wie geht das umgekehrt? - also Artikel entfernen?
irgengwie steh ich da momentan total auf der Leitung....
mfG
dobra

admin



Meine erste Ideen war, wir können das mit stdplacecart.ipl machen. Diese Datei wird immer eingebunden,
wenn ein Artikel in den WK gelegt wird oder der WK geändert wird.

Leider geht es doch nicht, weil es derzeit nur möglich ist die Anzahl für einen Artikel zu verändern.
Wir bräuchten aber eine Funktion, die die Anzahl für zwei Artikel auf Null setzt, damit sie aus dem
WK gelöscht werden.

Diese lebenswichtige Funktion gibt es aber noch nicht. Ich schreibe es mal auf die
Aufgabenliiste.

Gruss hop

dobra

#4
Danke

Eine (fertige) Funktion, mit der man z.B. auch Cross-Artikel im WK an den Hauptartikel "binden" könnte, wäre sehr fein

noch schöner wäre es, wenn man - bei Crossartikeln - die Menge auch für die "gekoppelten" Artikel ändern könnte
= Menge bei Hauptartikel ändern -> ändert automatisch auch die Menge des Crossartikels und umgekehrt.

Müßte dann aber als wahlweise einstellbare Optoin möglich sein - also individuell nach Gegebenheit einstellbar
.... das sind aber vermutlich zu viele Wünsche .... ;)

mfG
dobra