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

    UIaLMFdVA

    • Neu im Forum
    • Beiträge: 39
    Also,
    die ersten 3 Meldungen hab ich wegbekommen indem ich eine Prüfung mit isset eingebaut habe:

    Code: PHP  [Auswählen]
    'shipping_method' => (isset($_SESSION['shipping']['title'])) ? $_SESSION['shipping']['title'] : '',
    //'shipping_method' => $_SESSION['shipping']['title'],
    'shipping_cost' => (isset($_SESSION['shipping']['cost'])) ? $_SESSION['shipping']['cost'] : '',
    //'shipping_cost' => $_SESSION['shipping']['cost'],
    'shipping_class '=> (isset($_SESSION['shipping']['id'])) ? $_SESSION['shipping']['id'] : '',
    //'shipping_class'=>$_SESSION['shipping']['id'],

    Kann man das so machen oder hab ich etwas übersehen bzw. nicht bedacht?

    Nun bleiben noch diese Meldungen übrig:

    Code: PHP  [Auswählen]
    Warning: Illegal string offset 'id' in ROOT/includes/modules/order_total/ot_shipping.php on line 72

    Warning: Illegal string offset 'id' in ROOT/includes/modules/order_total/ot_shipping.php on line 72

    Warning: Cannot modify header information - headers already sent by (output started at ROOT/admin/includes/classes/order_rcs.php:277) in ROOT/admin/includes/functions/general.php on line 198

    und

    [...]
    Auch wenn ich im "Erweitere Konfiguration => Offen Warenkörbe" Einstellungen vornehme und diese speichere, erscheint:

    Code: PHP  [Auswählen]
    Warning: Cannot modify header information - headers already sent by (output started at ROOT/lang/german/admin/configuration.php:851) in ROOT/admin/includes/functions/general.php on line 198
    [...]

    In der Datei "/includes/modules/order_total/ot_shipping.php" betrifft es die Zeile:

    Code: PHP  [Auswählen]
    $module = substr($_SESSION['shipping']['id'], 0, strpos($_SESSION['shipping']['id'], '_'));

    Kann ich es dort genauso lösen wie oben? die Datei wurde ja bis jetzt von der Anleitung zum Einbau verschont...

    bige

    • Mitglied
    • Beiträge: 183
    Stehe im Moment vor dem gleichen Problem das beim Abschließen eines Warenkorbs noch folgende Fehler geschmissen werden:

    Code: PHP  [Auswählen]
    Warning: Illegal string offset 'id' in /kunden/180696_53909/bige30/includes/modules/order_total/ot_shipping.php on line 72

    Warning: Illegal string offset 'id' in /kunden/180696_53909/bige30/includes/modules/order_total/ot_shipping.php on line 72

    Warning: Illegal string offset 'id' in /kunden/180696_53909/bige30/includes/modules/order_total/ot_payment.php on line 98

    Warning: Illegal string offset 'id' in /kunden/180696_53909/bige30/includes/modules/order_total/ot_payment.php on line 98

    Warning: Cannot modify header information - headers already sent by (output started at /kunden/180696_53909/bige30/includes/modules/order_total/ot_shipping.php:72) in /kunden/180696_53909/bige30/admin/includes/functions/general.php on line 198

    Kann man das noch irgendwie abfangen.
    Trotz der Fehlermeldung wird der Warenkorb abgeschlossen und die Bestellung angelegt.

    Viele Grüße
    Andi

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    Zeige mal die Zeilen 72 bis 98 aus der /includes/modules/order_total/ot_shipping.php

    bige

    • Mitglied
    • Beiträge: 183
    Hallo,

    Zeile 72 - 100

    Code: PHP  [Auswählen]
    $module = substr($_SESSION['shipping']['id'], 0, strpos($_SESSION['shipping']['id'], '_'));

          if (xtc_not_null($order->info['shipping_method']) && isset($GLOBALS[$module]) && is_object($GLOBALS[$module])) {

            $tax = 0;
            $shipping_tax = 0;
            $shipping_tax_description = '';
            $shipping_tax = xtc_get_tax_rate($GLOBALS[$module]->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
            $shipping_tax_description = xtc_get_tax_description($GLOBALS[$module]->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
            $tax = xtc_add_tax($order->info['shipping_cost'], $shipping_tax)-$order->info['shipping_cost'];
            $tax = $xtPrice->xtcFormat($tax,false,0,true);
           
            if ($_SESSION['customers_status']['customers_status_show_price_tax'] == 1) {
              // price with tax
              $order->info['shipping_cost'] = xtc_add_tax($order->info['shipping_cost'], $shipping_tax);
              $order->info['tax'] += $tax;
              $order->info['tax_groups'][TAX_ADD_TAX . "$shipping_tax_description"] += $tax;
              $order->info['total'] += $tax;
            } else {
              if ($_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && $_SESSION['customers_status']['customers_status_add_tax_ot'] == 1) {
                $order->info['tax'] = $order->info['tax'] += $tax;
                $order->info['tax_groups'][TAX_NO_TAX . "$shipping_tax_description"] = $order->info['tax_groups'][TAX_NO_TAX . "$shipping_tax_description"] += $tax;
              }
            }
           
            $this->output[] = array('title' => $order->info['shipping_method'] . ':',
                                    'text' => $xtPrice->xtcFormat($order->info['shipping_cost'], true,0,true),
                                    'value' => $xtPrice->xtcFormat($order->info['shipping_cost'], false,0,true));
          }

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    $_SESSION['shipping']['id'] ist nicht gesetzt. Da gilt herauszufinden warum.

    Ich vermute das Problem ist einzugrenzen über die Datei /checkout_shipping.php wenn ich das richtig sehe wird die Variable normalerweise dort gesetzt. Ich finde da so was:
                      
    Code: PHP  [Auswählen]
    $_SESSION['shipping'] = array ('id' => $_SESSION['shipping'],

    bige

    • Mitglied
    • Beiträge: 183
    Hmmm ok aber hier wird doch eine Versandart aus der Session geholt.
    Bei dem Modul offener Warenkorb steht diese Variable in der Session doch gar nicht zur Verfügung.
    Daher wird der Fehler geworfen weil die hier leer ist.

    Mit diesen Abfragen habe ich die gleichen Fehler aus der order_rcs.php rausgeholt:

    Code: PHP  [Auswählen]
    'shipping_method' => (isset($_SESSION['shipping']['title'])) ? $_SESSION['shipping']['title'] : '',
    'shipping_cost' => (isset($_SESSION['shipping']['cost'])) ? $_SESSION['shipping']['cost'] : '',
    'shipping_class '=> (isset($_SESSION['shipping']['id'])) ? $_SESSION['shipping']['id'] : '',

    Hier wird einfach bei nicht vorhandener Sessionvariable die Variable auf Leer gesetzt wenn ich das richtig lese.

    Also müsste vor die Zeile 72:

    Code: PHP  [Auswählen]
    ($module = substr($_SESSION['shipping']['id'], 0, strpos($_SESSION['shipping']['id'], '_'));)

    Eine entsprechende Abfrage kriege ich aber mit meinen bescheidenen PHP Kenntnissen nicht hin.

    Viele Grüße
    Andi

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    könnte man versuchen:

    Code: PHP  [Auswählen]
    if (!isset($_SESSION['shipping']['id'])) $_SESSION['shipping']['id'] = null;

    bige

    • Mitglied
    • Beiträge: 183
    Habe das hier jetzt vor die Zeile 72 geschrieben (andere Klammerung):
    Code: PHP  [Auswählen]
    if (!isset($_SESSION['shipping']['id'])) {
                            $_SESSION['shipping']['id'] = null;
            }

    Fehler ist weg, ich hoffe der macht mir nichts anderes kaputt.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    jo, ich hatte einen Tippfehler drin. Habe es korrigiert. Die eine ( war überflüssig.

    UIaLMFdVA

    • Neu im Forum
    • Beiträge: 39
    Hey,
    mir ist da noch etwas aufgefallen. Wenn man einen offenen Warenkorb über das Modul betrachtet und auf den Artikellink klickt, dann erscheint eine leere Produktseite wenn der Artikel Attribute besitzt.
    Über der Überschrift "Neuer Artikel in '' " erscheint folgende Fehlermeldung:
    Code: PHP  [Auswählen]
    Warning: reset() expects parameter 1 to be array, boolean given in root/admin/includes/classes/object_info.php on line 23
    Warning: Variable passed to each() is not an array or object in root/admin/includes/classes/object_info.php on line 24

    Mit
    Code: PHP  [Auswählen]
    var_dump($object_array);
    erhalte ich bool(false).

    Die benutzte Shopversion ist 1.06-r4642_SP3
    Kann das Problem jemand bestätigen oder hat sogar einen Lösungsansatz parat?  Bei Artikeln ohne Attribute läuft alles glatt.

    awids

    • Experte
    • Beiträge: 3.789
    • Geschlecht:
    Hat jemand Interesse eine Beta-Testversion des Moduls für modified-2.0 zu testen? Dann bitte per E-Mail-Icon bei mir melden.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.181
    • Geschlecht:
    Ich habe in Beitrag 1 mal ein Modul-Paket für Shopversion 2.0.0.0 rev 9678 angehängt.

    Grüße

    Torsten

    wicki

    • Frisch an Board
    • Beiträge: 91
    • Geschlecht:
    bekommt ihr auch eine fehlermeldung im shop 2.0

    Code: SQL  [Auswählen]
    SQL-Befehl:


    INSERT INTO `configuration` ( `configuration_id` , `configuration_key` , `configuration_value` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function` )
       VALUES ('', 'RCS_REPORT_DAYS', '90', 33, 15, NULL, NOW(), '', '')
    MySQL meldet: Dokumentation

    #1062 - Duplicate entry '0' FOR KEY 'PRIMARY'
     

    lohkaes1

    • Viel Schreiber
    • Beiträge: 514
    Hallo,

    habe das Modul in einem frisch installierten 2.0er Shop getestet und erhalte folgenden Fehler:

    Code: PHP  [Auswählen]
    Fatal error: require_once(): Failed opening required '/homepages/xx/xxxxxx/xxxxxx/xxxxxx/includes/classes/class.phpmailer.php' (include_path='.:/usr/lib/php5.5') in /homepages/xx/xxxxxx/xxxxxx/xxxxxx/admin/recover_cart_sales.php on line 32

    unter diesem Pfad:

    Code: PHP  [Auswählen]
    require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'class.phpmailer.php');

    ist die class.phpmailer.php nicht vorhanden, sondern unter:

    Code: PHP  [Auswählen]
    /homepages/xx/xxxxxx/xxxxxx/xxxxxx/includes/external/phpmailer/class.phpmailer.php

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.851
    • Geschlecht:
    Dann müsste in der Datei NEW_FILES\admin\recover_cart_sales.php das hier

    Code: PHP  [Auswählen]
    require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'class.phpmailer.php');

    durch das hier

    Code: PHP  [Auswählen]
    require_once(DIR_FS_EXTERNAL . 'phpmailer/class.phpmailer.php');

    ersetzt werden.

    Bitte mal kurz testen und Feedback, dann müsste das Paket entsprechend angepasst werden.

    Grüße
    Dominik

    [EDIT Tomcraft 26.07.2016: Korrektur in Modul aus Beitrag 1 übernommen.]
               
    anything