Artikel befristet als Aktion ausgeben

Begonnen von dobra, September 19, 2015, 19:31:34

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

die Verwendung von STARTPUB und STOPPUB ist manchmal zu umständlich, oder es sollen die regulären Artikelnr. verwendet werden - also kein extra Aktionsartikel angelegt werden, bzw. wird bei dieser Methode ja die Detailseite des "quasi ausgeblendeten" Artikels trotzdem angezeigt wenn der Kunde die Adresse gespeichert hat etc.

Eine elegant Lösung ist die Verwendung von Callback::modify_db_price.

Wir brauchen:
1) ein ben.def. Artikel-Feld  "AKTIPREIS" -> normales Textfeld
2) zwei ben.def. Artikel-Felder "START" und "STOP" -> Datum-Felder 
(können natürlich auch anders heißen, dann im Script anpassen)

im Feld AKTIPREIS wird der Aktionspreis eingetragen, in START und STOP Anfangs- und Enddatum der Aktion
eh selbsterklärend ;)

In stdall.ipl dann noch diesen Code schreiben:
<!--spmacro:module(Callback)
sub modify_db_price() {
my $p = $_[0];
my $time = (time);
my $artid = $_[1];
my $pre = ssp::db_get_prefix();
my $ITEM = $pre . "ITEM";
ssp::readSQLData("SELECT AKTIPREIS FROM $ITEM WHERE ITEMID='$artid' AND START <= $time AND STOP >= $time","AKTIPREIS");
my $apreis = ssp::get_var_db('AKTIPREIS', 0);
if($apreis ne $ssp::undefined && $apreis ne ""){
return $apreis;
}
else
{
return $p;
}
}
-->


Ist für einen Artikel ein Aktionspreis eingetragen und heute ist nach Aktionsstart und vor Aktionsende wird der Aktionspreis angezeigt und berechnet.
Anderenfalls passiert garnichts - der Artikelpreis wird nicht verändert.
So können beliebig viele Aktionsartikel Tage/Wochen/Monate/Jahre im voraus angelegt werden und man braucht sich um nichts mehr kümmern.

Wer mag kann auch noch den (durchgestrichenen) "alten" Preis und/oder ein Aktionsbanner ausgeben und das ganze beliebig stylen.
mfG
dobra