Wenn Lieferzeit "download" bleibt der Warenkorb weiß

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.608
322
Scheinbar gibt es hier einen Fehler in der Funktion "getDeliveryTime", als dass mit einer Lieferangabe die keine Numerischen Werte enthält nicht kalkuliert werden kann. Ergo schießt der Warenkorb mit Weiß ins Aus.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.608
322
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

Warum ist die Banane krumm? Weil es Betreiber gibt die das eben so angeben :) Lieferstatus (so wie es im Warenkorb angegeben wird) ist nunmal auch nicht als Zeitangabe zu verstehen sondern auch als Begrifflichkeit und da passt vom Wording und Verständnis nunmal auch "Download". Der Punkt ist, wenn es die Möglichkeit gibt da geliebiges einzutragen, muss eben auch beliebiges berücksichtigt werden.
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.608
322
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

Fatal error: Call to a member function getDeliveryTime() on a non-object in .../classes/class.JTL-Shop.Warenkorb.php on line 1087

Code:
$oPosition->cEstimatedDelivery = $oPosition->Artikel->getDeliveryTime($_SESSION["cLieferlandISO"], $oPosition->nAnzahl);
 

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

Der Error sagt nicht, dass er die Funktion nicht kennt, sondern das er eine Objekt erwartet...

Such doch Mal nach "function getDeliveryTime(" in den Shopdateien und sieh dir an was die Funktion den genau macht.
Der oben zietierte Code ist original oder von dir geschrieben?
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.608
322
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

Das ist die Original Zeile die den Fehler wirft. Natürlich hab ich mir die Funktion schon angeschaut, daher ja auch die Vermutung dass er mit dem hinterlegten Wert des Lieferstatus nix anfangen kann. Betroffene Funktion befindet sich in der class.JTL- Shop.Artikel.php

Code:
public function getDeliveryTime($countryCode, $purchaseQuantity = null, $stockLevel = null, $languageISO = null)
    {
        if(!isset($languageISO))
        {
            //Language-Fallback fuer Exportformate - #6663. ToDo: Abfrage der aktuellen Sprache in Session-Class oder System-Class auslagern
            if (!isset($_SESSION['cISOSprache'])) {
                $oSprache = gibStandardsprache(true);
                $_SESSION['cISOSprache'] = $oSprache->cISO;
            }
            $languageISO = $_SESSION['cISOSprache'];
        }
        
        if (isset($purchaseQuantity)) {
            $purchaseQuantity = (float) $purchaseQuantity;
        } else {
            $purchaseQuantity = $this->fAbnahmeintervall > 0 ? $this->fAbnahmeintervall : 1; // + $this->getPurchaseQuantityFromCart();
        }
        
        if (!is_numeric($purchaseQuantity) || $purchaseQuantity <= 0) {
            $purchaseQuantity = 1;
        }
        
        if (isset($stockLevel) && is_numeric($stockLevel)) {
            $stockLevel = (float) $stockLevel;
        } else {
            $stockLevel = $this->fLagerbestand;
        }
        
        $favShipping = $this->getFavourableShipping($countryCode);

        if ($favShipping === null || $this->inWarenkorbLegbar <= 0) {
            return '';
        }
        //set default values
        $estimatedDelivery = ''; //$favShipping->oVersandartSprache_arr[$languageISO]->cLieferdauer;
        $processingTime = 0;
        $minDeliveryDays = (strlen(trim($favShipping->nMinLiefertage)) > 0) ? intval($favShipping->nMinLiefertage) : 2;
        $maxDeliveryDays = (strlen(trim($favShipping->nMaxLiefertage)) > 0) ? intval($favShipping->nMaxLiefertage) : 3;
        
        if ($this->FunktionsAttribute['processingtime'] > 0) {
            $processingTime = intval($this->FunktionsAttribute['processingtime']);
            $minDeliveryDays += $processingTime;
            $maxDeliveryDays += $processingTime;
        }
        
        // product available in the future?
        if ($this->nErscheinendesProdukt && strtotime($this->dErscheinungsdatum) > time()) {
            $minDeliveryDays += calculateDaysBetween($this->dErscheinungsdatum, date('Y-m-d', time()));
            $maxDeliveryDays += calculateDaysBetween($this->dErscheinungsdatum, date('Y-m-d', time()));
        }
        else 
        if ($this->cLagerBeachten == "Y" && ($stockLevel <= 0 || ($stockLevel - $purchaseQuantity < 0))) {
            if ($this->FunktionsAttribute['deliverytime_outofstock'] > 0) { //prio on attribute "deliverytime_outofstock" for simple deliverytimes
                $deliverytime_outofstock = intval($this->FunktionsAttribute['deliverytime_outofstock']);
                $minDeliveryDays = $deliverytime_outofstock; //overrides parcel and processingtime!
                $maxDeliveryDays = $deliverytime_outofstock; //overrides parcel and processingtime!
            } else if ($this->FunktionsAttribute['supplytime'] > 0) { //attribute "supplytime" for merchants who do not use JTL-Wawis purchase-system
                $supplyTime = intval($this->FunktionsAttribute['supplytime']);
                $minDeliveryDays += $supplyTime;
                $maxDeliveryDays += $supplyTime;
            } else if ($this->fZulauf > 0 && strtotime($this->dZulaufDatum) >= time()) { // supplierOrder incoming?
                $minDeliveryDays += calculateDaysBetween($this->dZulaufDatum, date('Y-m-d', time()));
                $maxDeliveryDays += calculateDaysBetween($this->dZulaufDatum, date('Y-m-d', time()));
            } else if ($this->fLieferzeit > 0 && !$this->nErscheinendesProdukt) { //product 
                $minDeliveryDays += intval($this->fLieferzeit);
                $maxDeliveryDays += intval($this->fLieferzeit);
            }
        }
        
        //set estimatedDeliverytime text
        $estimatedDelivery = getDeliverytimeEstimationText($minDeliveryDays, $maxDeliveryDays);

        $this->nMinDeliveryDays = $minDeliveryDays;
        $this->nMaxDeliveryDays = $maxDeliveryDays;
        return $estimatedDelivery;
    }
 

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

In der Funktion sehe ich nirgends den Aufruf des "Lieferstatus".

Tritt der Fehler bei JTL-Shop3 ohne Anpassungen unter Verwendung des Tiny Templates ebenfalls auf (alle Plugins deaktivieren)?
 

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.608
322
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

Eigentlich hatte ich sämtliche Szenarien schon getestet, aber lokal funktioniert es mit der Darstellung, selbe Shopversion, daher schließe ich einen Bug im System an sich aus. Muss also irgendwo im Template oder beim Update was verwurstet worden sein. Ich prüfe das und melde mich dann nochmal.
 

frijk

Gut bekanntes Mitglied
16. Juni 2009
218
7
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

Hallo,

habe bei Produkten mit Konfigurator die gleiche Fehlermeldung. Bist du dem ganzen schon näher auf die Spur gekommen?

Danke vorab,
Michael

Edith ergänzt: Auch mit komplett deaktivierten Plugins sowie Tiny mit deaktivierten _custom.tpl - Fehler ist trotzdem vorhanden. Hosting bei JTL
 

tafechner

Offizieller Servicepartner
SPBanner
31. Juli 2010
796
115
Berlin
AW: Wenn Lieferzeit "download" bleibt der Warenkorb weiß

Hallo an alle, wir hatten dieses Problem nun genauer untersucht und folgende Lösung gefunden.

Anpassen der class.JTL- Shop.Warenkorb.php -> Bitte ACHTUNG ist nicht update fähig, nur Notlösung

PHP:
/* angepasst com-ins-netz.de */
//if($oPosition->nPosTyp == C_WARENKORBPOS_TYP_ARTIKEL) {
if($oPosition->nPosTyp == C_WARENKORBPOS_TYP_ARTIKEL && is_object($oPosition->Artikel)) {
/* /angepasst */

Das Problem tritt bei Konfigurationsartikel auf die keinem Artikel zugeordnet sind, dort ist ja keine Lieferzeit hinterlegt.

Gruss aus Berlin
Torsten
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Datenabgleich schlägt fehl, wenn Hersteller zu Artikeln zugewiesen sind oder die Hersteller Bilder haben. WooCommerce-Connector 0
Rückerstattung wenn Zahlung nicht automatisch sondern manuell zugewiesen worden sind JTL-Wawi 1.9 0
Neu Kindartikel direkt anzeigen/auswählen wenn nur ein Kind vorhanden ist? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wms Artikeletikett drucken, wenn umgelagert wird Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Fehlerhafte Darstellung der Box Stücklistekomponenten, wenn Konfigurationsartikel enthalten JTL-Wawi - Fehler und Bugs 0
Neu Alarm SMS/E-Mail wenn der Worker nicht läuft Allgemeines zu den JTL-Connectoren 2
Workflow soll wenn Artikel 0 Bestand für 35 Tage hat diesen auf inaktiv setzen JTL-Wawi 1.10 4
Neu JTL Wawi braucht viel RAM und CPU wenn der Prozess lange läuft, ohne dass gearbeitet wird JTL-Wawi - Fehler und Bugs 3
Preis im Warenkorb für 10 min sichern, wenn Preis geändert wurde. Ist das möglich? Einrichtung JTL-Shop5 3
kann man inzwischen aus der Wawi auf kaufland Varianten bilden, wenn ja, ab welcher Version? kaufland.de - Anbindung (SCX) 0
Neu JTL PayPal Checkout 5.3.0 mit Shop 5.5.2 - Artikel nur sichtbar wenn Kunde eingeloggt ist oder Artikel nicht verfügbar ist Plugins für JTL-Shop 6
Neu Lieferzeit / Verfügbarkeit nicht im google-Feed JTL-Shop - Fehler und Bugs 0
Lieferzeit / Lieferdatum wird im Shop bei Variantenartikeln nicht angezeigt Allgemeine Fragen zu JTL-Shop 0
Neu Download im KC 4.06.20 Allgemeine Fragen zu JTL-Shop 0
Neu Download-Artikel mit dem Download-Modul anbieten JTL SHOP Plugins für JTL-Shop 6
Neu Download-Datei soll nach Registrierung als Kunde im Kundenaccount freigeschaltet werden Allgemeine Fragen zu JTL-Shop 2

Ähnliche Themen