Wenn Lieferzeit "download" bleibt der Warenkorb weiß

martinwolf

Offizieller Servicepartner
SPBanner
6. September 2012
3.478
289
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.478
289
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.478
289
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.478
289
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.478
289
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
791
109
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 Upgrade CFE auf Advanced wenn Hosting gebucht Allgemeine Fragen zu JTL-Shop 6
Neu Artikelnamen auf der Homepage vollständig sehen. Er ist wenn er zu lang ist verkürzt. Allgemeine Fragen zu JTL-Shop 2
In Diskussion Hinweis im WMS Ausgeben wenn ein bestimmter Artikel verpackt wird über WMS JTL-Workflows - Ideen, Lob und Kritik 5
Neu Überveräufe deaktivieren wenn Erscheinungsdatum überschritten User helfen Usern - Fragen zu JTL-Wawi 1
Welche Einstellung für "Überverkäufe nicht mehr möglich" wenn "alle Lagerbestände null" sind. JTL-Wawi 1.9 5
Neu Artikel zählen wenn Bedingung erfüllt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Workflow für Warenpost nur wenn bestimmte Artikel in Bestellung User helfen Usern - Fragen zu JTL-Wawi 1
Neu Lieferzeit anstatt Lieferdatum in Bestellbestätigung Allgemeine Fragen zu JTL-Shop 0
Neu 🎉 Neues Plugin: "Versandkosten und Lieferzeit automatisch beziehen - ShipMonk Extension" 🎉 Plugins für JTL-Shop 1
Neu 🎉 Neues Plugin: "Versandkosten und Lieferzeit automatisch beziehen - DHL-Express Extension" 🎉 Plugins für JTL-Shop 3
Neu Zusätzliche Bearbeitungszeit wird nicht bei der Lieferzeit an Shopware 6 berücksichtigt Shopware-Connector 0
Neu Lieferdatum/Lieferzeit in Angebot/AB/Lieferschein/Rechnung für einzelne Positionen darstellen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Nach Datenbank-Migration Fehler: keine Lieferzeit usw. JTL-Shop - Fehler und Bugs 1
Neu Vaterartikel Lieferzeit "ab x - x Werktage Allgemeine Fragen zu JTL-Shop 0
Lieferzeit JTL-Vouchers - Ideen, Lob und Kritik 1

Ähnliche Themen