Warenkorb neue Preiskalkulation ermitteln

OmKFJ

Aktives Mitglied
2. August 2016
22
0
Hallo,

ich arbeite momentan an eine Anpassung eines Plugin für JTL- Shop 4. Mit diesen Plugin lässt sich eine vom User eingegebene Länge berechnen. Die Länge wird in einem Pflicht-Freifeld als Variation eingegeben. Dieser wird dementsprechend mit Funktionsattributen im Wawi gesteuert.

Durch meine Erweiterung, lassen sich nun auch Staffelpreise mit einkalkulieren. Hier ein Beispiel:

Staffel:
  1. ab 10m = 10,- € pro m
  2. ab 20m = 9,- € pro m
  3. ab 30m = 8,- € pro m
  4. ab 40m = 7,- € pro m
  5. ab 50m = 6,- € pro m
Grundpreis: 12,- € pro m

Dazu habe ich die Kalkulation so programmiert, dass der Preis der Staffel nicht nur vom Eintrag der Länge Pflicht-Freifeld abhängig ist, sondern auch nach Anzahl der Artikel. Hier noch ein Beispiel:

Kunde gibt ein: 5 m
Danach wählt er die Artikelanzahl aus: 3 Stück
somit ist der neue Preis (3*5=15 also 1.Staffel) 10,- € pro m

Ich habe es soweit geschafft es in der TPL zu realisieren, sodass der neue Preis sich nach jede Eingabe oder Anzahlveränderung im <div class="price_wrapper"> steht.

Das Problem ist, wenn man den Artikel im Warenkorb einlegt, wird immernoch der Standardpreis (12,- € pro m) eingerechnet. Daher meine Frage, wie lässt sich die Warenkorb kalkulation ermitteln, sodass ich mit den neuen Staffelpreis rechnen kann.

EDIT:

Um die Frage verständlicher zu machen, wie definiere ich in der PHP Dateien einen neuen Grundpreis, damit dieser neu berechnet wird. Laut Recherche kann man das mittels einen HOOK realisieren?

HOOK_TOOLSGLOBAL_INC_PREISSTRINGLOCALIZED

Es reicht mir auch schon eine Ansatz Vorgehensweise, mit der ich anfangen kann.

EDIT:

in der /classes/class.JTL-Shop.Preise.php Datei Zeile 315:

  • $this->fVKNetto = (float) $price->fVKNetto;

möchte ich da zb anstatt (float) $price->fVKNetto den ersten Staffelpreis nehmen, nämlich:

  • $kArtikel->Preise->fPreis1;

da aber in Zeile von 299 bis 305 die Variable $prices nur für die Tabellen tpreis und tpreisdetail zuständig ist, gibt es kein fPreis1. Dieser ist in der Tabelle tpreise enthalten. Wie sieht den die Shop :: DB()->query Abfrage aus, sodass ich auf fPreis1 zugreifen kann?

EDIT:

durch das debuggen der Variable $prices habe ich folgendes bekommen:

array(6) {
[0]=>
object(stdClass)#183 (7) {
["kPreis"]=>
string(4) "8320"
["kArtikel"]=>
string(4) "1904"
["kKundengruppe"]=>
string(1) "1"
["kKunde"]=>
NULL
["kPreisDetail"]=>
string(4) "9111"
["nAnzahlAb"]=>
string(1) "0"
["fVKNetto"]=>
string(4) "0.25"
}
[1]=>
object(stdClass)#184 (7) {
["kPreis"]=>
string(4) "8320"
["kArtikel"]=>
string(4) "1904"
["kKundengruppe"]=>
string(1) "1"
["kKunde"]=>
NULL
["kPreisDetail"]=>
string(4) "9106"
["nAnzahlAb"]=>
string(2) "10"
["fVKNetto"]=>
string(5) "0.225"
}
[2]=>
object(stdClass)#185 (7) {
["kPreis"]=>
string(4) "8320"
["kArtikel"]=>
string(4) "1904"
["kKundengruppe"]=>
string(1) "1"
["kKunde"]=>
NULL
["kPreisDetail"]=>
string(4) "9107"
["nAnzahlAb"]=>
string(2) "20"
["fVKNetto"]=>
string(3) "0.2"
}
[3]=>
object(stdClass)#186 (7) {
["kPreis"]=>
string(4) "8320"
["kArtikel"]=>
string(4) "1904"
["kKundengruppe"]=>
string(1) "1"
["kKunde"]=>
NULL
["kPreisDetail"]=>
string(4) "9108"
["nAnzahlAb"]=>
string(2) "30"
["fVKNetto"]=>
string(5) "0.175"
}
[4]=>
object(stdClass)#187 (7) {
["kPreis"]=>
string(4) "8320"
["kArtikel"]=>
string(4) "1904"
["kKundengruppe"]=>
string(1) "1"
["kKunde"]=>
NULL
["kPreisDetail"]=>
string(4) "9109"
["nAnzahlAb"]=>
string(2) "40"
["fVKNetto"]=>
string(4) "0.15"
}
[5]=>
object(stdClass)#188 (7) {
["kPreis"]=>
string(4) "8320"
["kArtikel"]=>
string(4) "1904"
["kKundengruppe"]=>
string(1) "1"
["kKunde"]=>
NULL
["kPreisDetail"]=>
string(4) "9110"
["nAnzahlAb"]=>
string(2) "50"
["fVKNetto"]=>
string(5) "0.125"
}
}

nun möchte ich wissen, wie ich z.B. auf dem zweiten Index des Arrays zum fVKNetto (["fVKNetto"]=>string(5) "0.225" komme:

beispiel: $this->fVKNetto = (float) $price[1]->fVKNetto; // funktioniert aber nicht

EDIT:

Danke für die große Unterstützung! Problem gelöst. Close request
pic1.PNG pic2.PNG
 
Zuletzt bearbeitet:

werk26

Aktives Mitglied
4. Mai 2017
18
1
Hallo,

wir benötigen nahezu das gleiche - zusätzlich LängexBreite - daher würde mich im Detail interessieren, wie Du das final umgesetzt hast.

Würde mich über eine Antwort freuen!

Gruß Andi
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu "Warenkorb teilen als Link" Plugin by Visitmedia Plugins für JTL-Shop 2
Neu Warenkorb auslesen ob bestimmte Artikelnummern vorhanden sind Technische Fragen zu Plugins und Templates 5
Neu Warenkorb wird nicht angezeigt Templates für JTL-Shop 1
Neu Warenkorb - löschen von Artikeln Betrieb / Pflege von JTL-Shop 3
Neu Neue Erlöskonten anlegen User helfen Usern - Fragen zu JTL-Wawi 4
Neue App Version verfügbar eazyauction Otto.de - Anbindung (SCX) 9
Neu Wie legt man neue Erlöskonten an Arbeitsabläufe in JTL-Wawi 2
Neu Verbrauchsmaterial, einem Artikel neue OVP zuweisen User helfen Usern - Fragen zu JTL-Wawi 1
Neue Bankverbindung erscheint nicht in den Druckvorlagen JTL-Wawi 1.9 14
Preisexplosion EasyAuction durch neue Editionen und Pakete. JTL-Wawi 1.9 13
Neu Wie das neue Funktionsattribut storefront_presentation_main_product anlegen? Shopware-Connector 7
Neue Lieferadresse anlagen JTL-Wawi 1.9 0
Neu neue Tarife mit Shop verstehe ich da was falsch? Allgemeine Fragen zu JTL-Shop 3
Neu neue Tarife - WMS-Lizenzen (Desktop / Mobile) - Pool oder Umstellung im Kundencenter notwendig ? User helfen Usern - Fragen zu JTL-Wawi 10
Gelöst Kassensystem Hardware-Ausfall - Neue Anbindung? Allgemeine Fragen zu JTL-POS 5
Neu Neue Vorlagen 2.0 Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Ab dem 01.09.2024 neue Lizenzschlüssel, muss ich was machen? User helfen Usern - Fragen zu JTL-Wawi 2
Preiskalkulation auf Grundlage von Lieferantenpreise und Lieferantenbestand JTL-Wawi 1.8 1

Ähnliche Themen