Neu CHECKOUTPROZESS: $SMARTY-WARENKORN BEEINFLUSSEN ÄNDERN?

DaPole88

Gut bekanntes Mitglied
2. September 2015
201
22
Hi,
ich mochte im Bestellvorgng den Warenkorb ändern. (Steuersenkung temporäre Steuersekung; gesteuert über eine CheckBox)...

GrzndIDee: Steuerklasse erstellen, hinterlegen ... Da man aber eigentl nur eine verwenden kann, die anhand von verschiedenen Faktoren gesetzt wird, mööchte ich diese im Bestellvorgag über eine Checkbox ändern. (Für bestimmte produkte)

Das ist zumindest meine Grundidee...

Template dateien an gewissen Stellen anpassen, stellt kein Problem dar. MAn könnte das oben genannte auch anders (einfacher) lösen, ich weiß.... Schöner wäre es aber .. :)Ich weiß das man direkt in den *.tpl Dateien sehr viel machen kann. Aber nicht den "Inhalt" der Variablen ändern. (z.B $smarty.session.Warenkorb->PositionenArr)
(Edit: Ich möchte nicht die Ausgabe der Variablen beeinflussen, sondern den Warenkorb, um sicher zu stellen, dass alle folgedenen Berechnungen etc... korrekt sind)

Herrausgefunden, das es wohl über die plugins.php geht / gehen müsste (im template Verzeichnis)

Leider, egal was ich dort probiere, löst mein Problem nicht. Bzw,, ich hab versucht eine "einfache" Variable zu modifizieren: $wkPrice ... Bekomme ich nicht hin:

Ich bekomme es hin, dass meine eingene Funktion (aus: 'plugin.php') ausgeführt hin ... Aber das wars auch Auch mit den $params & $smarty hab ich es noch nicht ganz raus
🙂


Es ergibt sich zwei Fragen.:
  • ist mein Vorhaben überhaupt so umsetzbar??
    (Kann ich im Bestellprozess den 'Warenkorn' bearbeiten ??
  • Nach Änderung des Wertes, muss ich auch nsicherstellen, dass die Summen neu berechnet weren?!

Warum möchte ich den Warenkorn bearbeiten??
Ich könnte die Template Datei so anpassen, dass diese alles richtig anzeigt. Alle Werte / Berechnungen korrekt sind, aber der Warenkorb unangetastet wird. Und in der Wawi würde ich die "eingetliche" Berechnung durchführen und die Bestellung in die Richtung anpassen

Aber:
  • unsauber, da an zwei Stellen das selbe durchgeführt wird
  • UND: Evtl anpassung aller folgenden Designvorlagen nötug (Email:Shop,WaWi,
Ich habe ein paar screenshots angehängt (1: Auszug aus Plugin.php 2: Auszug aus step5_confirmation.tpl)

Ich probiere gerne rum; bn für jeden Tipp dankbar.

Ich werde definitiv noch weiter rum experimentieren heute, da es zeutlich echt drückt ... Und Ungerne würde ich mir die Arbeit doppelt machen ... (1. fuschlösungund als 2. die von mir gewünschte :))

Natürlich, wenn es in den Produktiven Einsatz gehen sollte, wird alles im Child Template umgesetzt .... )

Vielen Dank & Frohes Neues Jahr :)

Template: Salepix
Shop: neuste Version
 

Anhänge

  • support1.png
    support1.png
    42,2 KB · Aufrufe: 8
  • support2.png
    support2.png
    56,8 KB · Aufrufe: 8

DaPole88

Gut bekanntes Mitglied
2. September 2015
201
22
@Point13 :

Jop!

Als erstes das ganze im Template versucht umzusetzen ... Nach etlichen Versuchen und diplomatischen fusch versuchen, habe ich mich dazu entschlossen, das mit einem Plugin umzusetzen...

Funktioniert einwandfrei mittlerweile ....

(Umsetzung: powerdude.com / solarkontor.de) Produkte die mit "mwst-Free" gekennzeichnet sind, können im Warenkorb (Bestellabschluss) Über eine checkbox manipuliert werden.... In dem Fall wird einfach die Steuerklasse im Warenkorb (direkt in der Warenkorbposition) geändert .....EDIT: Checkbox wird aber auch nur angezeigt, wenn Lieferland sowie Rechnungsland DEUTSCHLAND sind-> So will es das gesetz :)

Bzw: Der Kunde kann den hacken setzen.

Der Shop weiß anhand der (Funktions-)Attribute welche Artikel mwst-free verkauft werden dürfen ... Mit dem setzen des Hackens, setze ich die Steuerklasse, die im Warenkorb hinterlegt ist, um...

War wirklich nicht so einfach ... :) Aber

- Ich habe definitibv sehr viel Wissen mit genommen bei dem Projekt
- Ist schon geil (Das man sowas mit recht wenig handgriffe zaubern kann)

Das Plugin ist im Moment noch ohne Backend :) Es gibt zwar einstellungen, aber die sind noch nciht belegt :) Das was passieren muss., das steht noch direkt umm quellcode ... Aber ist ja auch mein erstes Plugin :)

Gruß
 
  • Gefällt mir
Reaktionen: Point13 und 301Moved

Kamil Czaja

Aktives Mitglied
20. November 2020
7
0
@Point13 :

Jop!

Als erstes das ganze im Template versucht umzusetzen ... Nach etlichen Versuchen und diplomatischen fusch versuchen, habe ich mich dazu entschlossen, das mit einem Plugin umzusetzen...

Funktioniert einwandfrei mittlerweile ....

(Umsetzung: powerdude.com / solarkontor.de) Produkte die mit "mwst-Free" gekennzeichnet sind, können im Warenkorb (Bestellabschluss) Über eine checkbox manipuliert werden.... In dem Fall wird einfach die Steuerklasse im Warenkorb (direkt in der Warenkorbposition) geändert .....EDIT: Checkbox wird aber auch nur angezeigt, wenn Lieferland sowie Rechnungsland DEUTSCHLAND sind-> So will es das gesetz :)

Bzw: Der Kunde kann den hacken setzen.

Der Shop weiß anhand der (Funktions-)Attribute welche Artikel mwst-free verkauft werden dürfen ... Mit dem setzen des Hackens, setze ich die Steuerklasse, die im Warenkorb hinterlegt ist, um...

War wirklich nicht so einfach ... :) Aber

- Ich habe definitibv sehr viel Wissen mit genommen bei dem Projekt
- Ist schon geil (Das man sowas mit recht wenig handgriffe zaubern kann)

Das Plugin ist im Moment noch ohne Backend :) Es gibt zwar einstellungen, aber die sind noch nciht belegt :) Das was passieren muss., das steht noch direkt umm quellcode ... Aber ist ja auch mein erstes Plugin :)

Gruß
Grüße,

hattest du die Steuerklasse in PHP oder Smarty geändert?

Gruß Kamil
 

DaPole88

Gut bekanntes Mitglied
2. September 2015
201
22
Ahoi,

mit Smarty hab ich es zu erst versucht... (im Template)+

Meine Lösung sieht letztendlich ungefähr so aus:


PHP:
$wk = &$_SESSION['Warenkorb'];
foreach ($wk->PositionenArr as $position) {
    
if (isset($position->Artikel->FunktionsAttribute['ustbefreiung'])) // Abfrage, ob Funktionsattribut überhaupt existiert
{
    if ($position->Artikel->FunktionsAttribute['ustbefreiung']==1 && $wk->MwStFlag==1){
    $position->kSteuerklasse = $this->kSteuerklasseNeu;
    $position->cHinweis = "MwSt=".$wk->MwStFlag;    // Feld, mitdem ich intern arbeite
    }
    else
    {                   
    $position->kSteuerklasse = 1;
    $position->cHinweis = "MwSt=".$wk->MwStFlag;
    }

    
    .......
 
  • Gefällt mir
Reaktionen: Kamil Czaja

Kamil Czaja

Aktives Mitglied
20. November 2020
7
0
Ahoi,

mit Smarty hab ich es zu erst versucht... (im Template)+

Meine Lösung sieht letztendlich ungefähr so aus:


PHP:
$wk = &$_SESSION['Warenkorb'];
foreach ($wk->PositionenArr as $position) {
   
if (isset($position->Artikel->FunktionsAttribute['ustbefreiung'])) // Abfrage, ob Funktionsattribut überhaupt existiert
{
    if ($position->Artikel->FunktionsAttribute['ustbefreiung']==1 && $wk->MwStFlag==1){
    $position->kSteuerklasse = $this->kSteuerklasseNeu;
    $position->cHinweis = "MwSt=".$wk->MwStFlag;    // Feld, mitdem ich intern arbeite
    }
    else
    {                  
    $position->kSteuerklasse = 1;
    $position->cHinweis = "MwSt=".$wk->MwStFlag;
    }

   
    .......
Danke, soweit habe ich das auch nun, mit Smarty klappt das aufjedenfall nicht, welchen HOOK hast du dafür genutzt? Mein Hook "HOOK_BESTELLVORGANG_PAGE" scheint wohl zu spät zu sein, der setzt die Steuerklasse nur nach dem 2. Reload.

Grüße
 

DaPole88

Gut bekanntes Mitglied
2. September 2015
201
22
... Das war das härteste, dort den richtigen zu finden ....

Da hab ich auch länger gesucht ... IKmmer wieder kamen sehr komische Phänomene an Tageslicht.... Produktiv nutze ich 2 .... auch, wenn vllt einer davon reichen würde

\HOOK_TOOLSGLOBAL_INC_BERECHNEVERSANDPREIS



\HOOK_WARENKORB_ERSTELLE_SPEZIAL_POS



Hinweis: Tesdtet mal ordentlich durch, was passiert beim eingeben eines cpupon codes ...

Oder noch härter: Falls ihr eine Zahlungsart habt, bei der sich die Gesamtsumme reduziert (z.B um 1%) ... Das war auch recht tricky, das in den Griiff zu bekommen ......
 
  • Gefällt mir
Reaktionen: Kamil Czaja

DaPole88

Gut bekanntes Mitglied
2. September 2015
201
22
Ich würde eher über den Session Hook gehen
Hm... Warum?

Für diesen Zweck is das schon eigentlich ziemlich gut. Es wird wirklich, nur dann ausgeführt, wenn gewünscht.

Hatte mir da anfangs sehr viele 'ausgaben' reingedonnert, und getestet, getestet, getestet .... :)

Wir hatten Anfangs, evtl noch mit den Gedanken gespielt, dass außerhalb des Bestellabschlusses schon 'aktivieren' .. denn dem Kunden auch gleich 'NETTO'-Preise anbieten ...

Mal schauen, vielleicht kommt das noch :)

Kurz geschaut: Mit der Session .... !VORSICHT!:Dieser Hook ist nicht über den Dispatcher nutzbar! .. Somit: Alles richtig gemacht :)
 

Kamil Czaja

Aktives Mitglied
20. November 2020
7
0
... Das war das härteste, dort den richtigen zu finden ....

Da hab ich auch länger gesucht ... IKmmer wieder kamen sehr komische Phänomene an Tageslicht.... Produktiv nutze ich 2 .... auch, wenn vllt einer davon reichen würde

\HOOK_TOOLSGLOBAL_INC_BERECHNEVERSANDPREIS



\HOOK_WARENKORB_ERSTELLE_SPEZIAL_POS



Hinweis: Tesdtet mal ordentlich durch, was passiert beim eingeben eines cpupon codes ...

Oder noch härter: Falls ihr eine Zahlungsart habt, bei der sich die Gesamtsumme reduziert (z.B um 1%) ... Das war auch recht tricky, das in den Griiff zu bekommen ......
Grüße,

aufjedenfall danke soweit. Funktioniert alles soweit, die Preise werden nach Änderung der Steuerklasse korrekt ausgeben, bis auf die Versandkosten, wie hast du das gelöst? Bei mir stehen die Versandkosten im Checkout immer noch mit 19% da. Die Funktion "Frontend::getCart()->gibVersandkostenSteuerklasse()" gibt mir aber korrekt die geänderte Steuerklasse zurück, muss hier in der Wawi noch irgendwas umgestellt werden?

Danke vorab und Gruß
Kamil
 

DaPole88

Gut bekanntes Mitglied
2. September 2015
201
22
Die Versand ... Der war echt hart und tricky ....
Mach es dir garnicht so schwierig .. Versand fasse ich garnicht an ....

Weil Der Shop macht das selber ... ->

HAst du mehr als 50% des Warenkorbs mit Steuer, som,it: Versand versteuert ....

Sind m1ehr als 50% Steuerfrei ... Somit-> Steuerfrei .....
(Shop 5.2)


Grüße