Hallo liebe Foren-User,
Ich habe mal wieder ein kleines Problem und hoffe, dass mir jemand hilfreich zur Seite stehen, kann wie es schon das ein oder andere mal so war.
Ich nutze eine Forensoftware und habe mir ein Shop-Plugin dazu gekauft. Leider unterstützt das Plugin keine Versandkosten-Staffelungen. Das heißt es ist von Haus aus nur möglich entweder einen einzigen Versand für die ganze Bestellung einzustellen, oder aber den Versand schon im Produktpreis einzuberechnen. Beide Varianten sind für unsere Zwecke eher ungünstig.
Aber der Entwickler hat eine Schnittstelle (API?) zur verfügung gestellt, um Rabatte definieren zu können. Wir bieten derzeit nur 8 Produkte an, weshalb ich dachte, ich könnte es dort alles einfach mal definieren. Bitte nicht lachen, wenn ihr das hier seht. Ich hab nur sehr wenig Ahnung vom Programmieren und hab das hier in mühevollem hin und herschieben aus verschiedenen Beispielen zusammengestückelt…
[PHP]public function isActive() {
$count1 = 0; $weight1 = 250;
$count2 = 0; $weight2 = 250;
$count3 = 0; $weight3 = 250;
$count4 = 0; $weight4 = 80;
$count5 = 0; $weight5 = 50;
$count6 = 0; $weight6 = 40;
$count7 = 0; $weight7 = 40;
$count8 = 0; $weight8 = 20;
$gesamt = 0;
foreach($this->basket->getBasketItems() AS $basketItem) {
if($basketItem->productID == 1){
$count1 += $basketItem->amount;}
if($basketItem->productID == 2){
$count2 += $basketItem->amount;}
if($basketItem->productID == 3){
$count3 += $basketItem->amount;}
if($basketItem->productID == 4){
$count4 += $basketItem->amount;}
if($basketItem->productID == 5){
$count5 += $basketItem->amount;}
if($basketItem->productID == 6){
$count6 += $basketItem->amount;}
if($basketItem->productID == 7){
$count7 += $basketItem->amount;}
if($basketItem->productID == 8){
$count8 += $basketItem->amount;}
}
$gesamt = $count1*$weight1 + $count2*$weight2 + $count3*$weight3 + $count4*$weight4 + $count5*$weight5 + $count6*$weight6 + $count7*$weight7 + $count8*$weight8;
if($gesamt > 2000) {
return true;
}
return false;
}
public function getValue() {
return 2.0;
}
}[/PHP]
Ihr seht, ich hab für unsere 8 Produkte einfach jeweils ein Gewicht definiert und lasse es am Ende zusammenrechnen. Das funktioniert auch schonmal sehr gut. Mein Problem ist nun, dass ich nur eine einzige Bedingung festlegen konnte, nämlich, dass über 2000g 2€ auf den Preis aufgeschlagen werden.
Ich brauche aber eine größere Staffelung.
Ich hatte die Hoffnung, dass dies klappen würde:
[PHP]public function getValue() {
if($gesamt < 500) return 5.45;
if($gesamt < 1000) return 4.50;
if($gesamt < 2000) return 2.80;
return 0.0;
}[/PHP]
Aber das tuts leider nicht, denn ich bekomme einen PHP-Fehler, der mir sagt, dass $gesamt nicht definiert ist. Also vermute ich, dass die Variable nicht einfach so aus der anderen Funktion übernommen werden kann.
Nun weiß ich aber nicht weiter… Wie bekomme ich es hin, dass ich da verschiedene Fälle nutzen kann?
Ich danke schonmal im Vorraus für die Hilfe.
LG