Trade Republic - Provisionsfrei Aktien handeln
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: "Offene Warenkörbe PLUS" für modified eCommerce Shopsoftware

    scooterama

    • Fördermitglied
    • Beiträge: 279
    • Geschlecht:
    Ich wollte gar nichts, ich dachte nur vielleicht ist es besser wenn ich besagte Zeile auch noch poste.

    Auf jeden Fall läuft es jetzt ohne weisse Seite durch wenn besagte Zeile so abgeändert wird:

    Code: PHP  [Auswählen]
    $total_tax += $xtPrice->calcTax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    Die Bestellung wird nun ohne weisse Seite angelegt und der offene Warenkorb wird gelöscht. Was nicht zieht ist die voreingestellte Versandart, aber so ist es schonmal wieder brauchbar.

    Besten Dank nochmal

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.750
    • Geschlecht:
    Was du mit

    [...] Was nicht zieht ist die voreingestellte Versandart, [...]

    meinst weiß ich nicht. Ich kenne das Modul nicht genauer.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.199
    • Geschlecht:
    [...]
    Auf jeden Fall läuft es jetzt ohne weisse Seite durch wenn besagte Zeile so abgeändert wird:

    Code: PHP  [Auswählen]
    $total_tax += $xtPrice->calcTax($total_products_price, $products_tax) * $order->products[$i]['qty'];

    Die Bestellung wird nun ohne weisse Seite angelegt und der offene Warenkorb wird gelöscht. [...]

    Ich habe die Änderung in das Modul für Shopversion 2.0.6.0 aus Beitrag 1 übernommen.

    Grüße

    Torsten

    scooterama

    • Fördermitglied
    • Beiträge: 279
    • Geschlecht:
    Was du mit

    [...] Was nicht zieht ist die voreingestellte Versandart, [...]

    meinst weiß ich nicht. Ich kenne das Modul nicht genauer.
    [...]

    In dem Modul gibt es mögliche Voreinstellungen, unter anderem lässt sich die Standard Versandart und die Standard Bezahlart für das Anlegen einer Bestellung voreinstellen.

    Ich habe aber gerade bemerkt dass diese wohl doch korrekt übernommen wird, aber man muss die Bestellung nachdem sie angelegt wird manuell bearbeiten und alle Felder entsprechend manuell noch befüllen resp. was anscheinend normal ist natürlich die anfallenden Versandkosten. Nachdem diese gespeichert werden, wird der Betrag erst in die order_total Module übernommen. Bei Speichern wird dann auch die mwst entsprechend befüllt, nicht aber das Total.

    Aber ich kann so damit leben.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.750
    • Geschlecht:
    Bist du sicher, daß das mit dem vorliegenden Modul zu tun hat ?
    Wie ist es denn wenn man ohne das Modul zu benutzen eine Bestellung im Backend anlegt ?

    Aber, wie gesagt, ich kenne das Modul nicht genauer und habe momentan nicht die Zeit mir das zu installieren und es zu analysieren.
    Vielleicht weiß jemand etwas der das Modul benutzt.

    Gruß,
    noRiddle

    Cookie

    • Fördermitglied
    • Beiträge: 279
    Hallo,

    hat das Modul jemand unter PHP 8.1 mit der aktuellen stable Version 2.0.7.2 mal getestet. Bei mir wirft es immer Fehler. Es werden die Warenkörbe angezeigt. Wenn ich einen Warenkorb übernehmen möchte kommt folgender Fehler:

    Code: PHP  [Auswählen]
    /admin/recover_cart_sales.php?action=complete&customer_id=5412485&tdate=30]     sizeof(): Argument #1 ($value) must be of type Countable|array, null given in File: /...path.../admin/recover_cart_sales.php on Line: 194

    Danke.

    Grüße
    Christian

    Q

    • Fördermitglied
    • Beiträge: 1.502
    So ins Blaue geschossen:

    Probiere mal in der Datei ~/admin/includes/classes/order_rcs.php

    ca. Zeile 40 folgende Zeile hinzufügen:

    Code: PHP  [Auswählen]
    require_once(DIR_FS_INC . 'xtc_get_products.inc.php');

    Q

    • Fördermitglied
    • Beiträge: 1.502
    :doh: total vergessen......

    Auch wenn der Post vorher von Cookie eine andere Frage - ohne Fragezeichen - beinhaltet hat, die ich nachträglich mit "ich nicht" beantworte, habe ich den Wunsch eines evtl. Lösungsansatzes in dem Post interpretiert. Da nicht jeder so viel "Fantasie" hat, hier noch der Hinweis für meinen Lösungsvorschlag:

    Wenn der von mir genannte Vorschlag getestet wurde, wird um Rückmeldung gebeten.

    scooterama

    • Fördermitglied
    • Beiträge: 279
    • Geschlecht:
    Hallo Q

    Hab das kurz getestet, funktioniert nicht, Fehler bleibt der gleiche.
    Code: PHP  [Auswählen]
    ERROR found for URL: /admin/recover_cart_sales.php?action=complete&customer_id=137571&tdate=180 {}      {}
    sizeof(): Argument #1 ($value) must be of type Countable|array, null given in File: /home/httpd/vhosts/domain.xy/httpdocs/admin/recover_cart_sales.php on Line: 194     {}      {}

    Q

    • Fördermitglied
    • Beiträge: 1.502
    Schade. Danke.

    RobinTheHood

    • Experte
    • Beiträge: 205
    • Geschlecht:
    Hallo Cookie,

    ich vermute, dass das Problem in Zusammenhang mit dem veralteten PHP 4 Style Constructor liegt, der in der Klasse order in der Datei admin/includes/classes/order_rcs.php verwendet wird. Es ist zu beachten, dass dieser Constructor seit PHP 7 als veraltet markiert wurde und in PHP 8 gänzlich entfernt wurde. Bei der Erzeugung eines Objekts der Klasse order, wie es in den Zeilen 64 und 92 in der Datei admin/recover_cart_sales.php geschieht, wird der Constructor in der Klasse order nicht aufgerufen. Das bedeutet, dass das gesamte Objekt nicht ordnungsgemäß initialisiert wird, was zu Problemen führen kann.

    Ich vermute, dass du der Lösung näher kommst, wenn du die Klasse order in  admin/includes/classes/order_rcs.php wie folgt umschreibst:
    Code: PHP  [Auswählen]
    class order
    {
        public $info;
        public $totals;
        public $products;
        public $customer;
        public $delivery;
        public $content_type;

        public function __construct($customer_id)
        {
            global $xtPrice;
            $this->info = array();
            $this->totals = array();
            $this->products = array();
            $this->customer = array();
            $this->delivery = array();

            $this->cart($customer_id);
        }

        ...

    Mit besten Grüßen
    Robin

    scooterama

    • Fördermitglied
    • Beiträge: 279
    • Geschlecht:
    RobinTheHood das funktioniert, Bestellung wird angelegt. Leider haben wir aber nach wie vor das Problem, dass die Standard  Versandart resp. Versandkosten aus der "Offener Warenkorb Konfig" nicht zieht. Was noch schräger ist, bearbeite ich eine Bestellung die  über "Offene Warenkörbe" angelegt wurde ist das Land der Standard Kundenadresse plötzlich Afghanistan und die Anrede ist bei allen 3 Adressblöcken nicht mehr befüllt.

    Es wird also die definierte Versandart resp. Versandgebühr nicht übernommen, das Zwischentotal, MwSt und Total fehlt und wenn man die Bestellung bearbeitet wird das Land der Standardadresse automatisch auf Afghanistan voreingestellt und die Anrede ist nicht mehr gewählt.

    Parker

    • Mitglied
    • Beiträge: 138
    • Geschlecht:
    Seit einigen Tagen ging das Modul (2.0.6.0-rev13500) bei mir nicht mehr, vermutlich, nachdem es beim Hoster Wartungsarbeiten gegeben hat.
    Laut Log gab es ein Problem mit einer Datenbankabfrage:

    Code: PHP  [Auswählen]
    Incorrect DATETIME value: '0' in File: /is/htdocs/shop/inc/db_functions_mysqli.inc.php on Line: 207

    Nach etwas Suchen in admin/recover_cart_sales.php habe ich dann die Zeile 778 von:

    Code: PHP  [Auswählen]
    $beforeDate = RCS_CARTS_MATCH_ALL_DATES == 'true' ? '0' : $inrec['bdate'];

    geändert in:

    Code: PHP  [Auswählen]
    $beforeDate = RCS_CARTS_MATCH_ALL_DATES == 'true' ? '0000-00-00' : $inrec['bdate'];

    und es ging wieder.
    Ich will mal vermuten, dass eine neuere MySQL-Version etwas strikter geworden ist.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.750
    • Geschlecht:
    Ja, das ist der sog. SQL-Mode, der wahrscheinlich strict eingestellt ist.
    Allerdings wird bei Verbindung des Shops mit der DB dies gesetzt:
    Code: SQL  [Auswählen]
    SET SESSION sql_mode=''

    Ich würde mal den Hoster fragen warum das ignoriert wird.

    Deine Code-Korrektur ist trotzdem gut, sollte, da es sich um ein DATETIME-Feld handelt, jedoch so lauten:
    Code: PHP  [Auswählen]
    $beforeDate = RCS_CARTS_MATCH_ALL_DATES == 'true' ? '0000-00-00 00:00:00' : $inrec['bdate'];

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.199
    • Geschlecht:
    [...]
    Deine Code-Korrektur ist trotzdem gut, sollte, da es sich um ein DATETIME-Feld handelt, jedoch so lauten:
    Code: PHP  [Auswählen]
    $beforeDate = RCS_CARTS_MATCH_ALL_DATES == 'true' ? '0000-00-00 00:00:00' : $inrec['bdate'];
    [...]

    Ich habe die Änderung in das Modul für Shopversion 2.0.6.0 aus Beitrag 1 übernommen.

    Zusätzlich habe ich noch:

    Code: PHP  [Auswählen]
        $ndate = date("Ymd", $rawtime);

    ersetzt mit:

    Code: PHP  [Auswählen]
        $ndate = date("Y-m-d", $rawtime);

    Grüße

    Torsten