Suche Event bei Aufruf des Warenkorbs (zur Berechnung der maximalen Lieferzeit über alle Produkte)

Hallo,

ich möchte gerne ein Plugin schreiben, das von allen Produkten im Warenkorb die maximale Lieferzeit berechnet, so dass ich 
die Lieferzeit angeben kann, wenn alles gleichzeitig versendet wird.

Dazu suche ich ein Event, das bei jedem Aufruf des Warenkorbs (sowohl statisch also auch Fly-in) aufgerufen wird.
Ausserdem würde ich die maximale Lieferzeit über alle Produkte einer Bestellung in einem Order Attribut speichern.
Dazu benötige ich ein Event bei Bestellabschluss.

Welche Events kann ich nehmen? Wie kann ich solche Events selbst finden?

Danke und viele Grüsse,

Jens

Hi,

ich würde dafür das Event sBasket::sGetBasket::after testen (alternativ sBasket::sGetBasketData::after, ab SW 5.2). Da bekommst du den kompletten Warenkorb des Kunden zurück. Dann brauchst du dazu nur noch die s_articles_details.instock und kannst damit zu den Artikeln im Warenkorb die höchste Lieferzeit ermitteln.

Zum Speichern würde ich sOrder::sSaveOrder::after nehmen, in der Methode sSaveOrder gibt es aber auch noch eine Reihe weiterer Events, die man nutzen könnte.

Daniel

1 „Gefällt mir“

Vielen Dank, Daniel!

Es funktioniert sehr gut:

 

public function install()
     {
         $this->subscribeEvent(
             'sBasket::sGetBasket::after',
             'article_update'
         );

         $this->createConfig();

         return true;
     }


public function article_update(Enlight_Hook_HookArgs $args)
     {

         //go over all products in the basket and get maximum shipping time
         $content = $args->getReturn()['content'];

         $max_shippingtime = 0;
         foreach ($content as $product) {
             $shippingtime = $product['shippingtime'];

             $max_shippingtime = max($max_shippingtime, $shippingtime);
             fwrite($dbg_file," " . $product['articlename'] . ": " . $shippingtime . ", max= " . $max_shippingtime);
         }


     }

 

 

 

Hallo,

genau sowas suche ich auch.

Du hast das nicht zufällig als Plugin für mich oder?

:slight_smile:

 

 

Doch ich habe mal ein Plugin dafür geschrieben, das ich Dir auch gerne schicken kann.

 

Aber Vorsicht: das Ding ist ziemlich zusammengehackt. Wenn ich mich recht erinnere schreibt es auch nur Smarty Variablen raus, die Du in Deinem Template selbst einbauen must.