Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
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: Fehler, Probleme und Code-Vorschläge in/für modified 2.0.0.0 r9678

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.007
    • Geschlecht:
    Ich erlaube mir mal hier einen Thread aufzumachen mit einer Liste an Problemen und Fehlern die mir in der im Thread-Titel benannten modified-Version aufgefallen sind.

    Wenn jemand zu einem der aufgeführten Punkte Stellung nimmt wäre es nett wenn er die Nummer des Listanpunktes dazu nennt.

    • Im Backend des Shops Land/Steuer => Land kann man die Länder einstellen in die man liefern möchte.
      Hat man ein Land nicht aktiviert lässt sich mit diesem Land kein Konto erstellen da das entsprechende Land im Dropdown Land: nicht erscheint.
      • Nach meiner Meinung fehlt da schon ein Hinweis, daß, findet man sein Land nicht, dort leider nicht hingeliefert wird.
      • Viel wichtiger ist jedoch:
        Hat jemand bereits ein Konto mit einer Adresse in einem bestimmten Land und man deaktiviert das Land irgendwann einmal weil man dort nicht mehr hinliefern möchte,
        so kommt der genannte Kunde durch den gesamten Checkout ohne Hinweis.
        Es wäre sinnvoll, daß es auf der checkout_shipping eine Prüfung gäbe und eine entsprechende Meldung wenn ein Land nicht beliefert wird und auch keine Versandoptionen angezeigt werden.
    • Wie in diesem Thread bereits gepostet habe ich in einer originalen Testinstallation der modified 2.0.0.0 r9678 einen Fehler im Backend bei Module => Zahlungsoptionen:

      Catchable fatal error: Argument 1 passed to log_exception() must be an instance of Exception, instance of ErrorException given, called in .../includes/error_reporting.php on line 36 and defined in .../includes/error_reporting.php on line 42

      Installation ist auf PHP-Version: 5.4.45 (Zend: 2.4.0)

      Weiteres siehe bitte im verlinkten Thread.
    • Wenn man in der Datenbank
      - z.B. wegen eines Shopsystem-Umzuges -
      als Produkt-Template (= product_template) ein Template gelistet hat welches es im Filesystem des Templates nicht gibt (= /templates/YOUR_TEMPLATE/module/product_info/), so wird bei Aufruf der Produkt-Detailseite schlicht eine weiße Seite gezeigt, ohne jede Fehlermeldung.
      Soweit ich das sehe, passiert das Gleiche immer wenn eine Template-Datei fehlt oder, sofern sie in der DB steht, nicht unter dem dort gelisteten Namen vorhanden ist.
      Das sollte man abfangen mit einer Fehlermeldung.
    • In /inc/set_admin_directory.inc.php wird die php-eigene Class DirectoryIterator benutzt um durch alle Files zu loop-en um das frei benennbare Admin-Verzeichnis zu definieren.
      Dort wird dieser Code benutzt:
    Code: PHP  [Auswählen]
    if (strpos($shoproot->getFilename(), '..') === false && $shoproot->isDir()

    Imho sollte man dort die in der genannten Klasse vorhandene Methode isDot() benutzen, was schneller sein dürfte aber auch . abfängt:
    Code: PHP  [Auswählen]
    if (!$fileinfo->isDot() && $shoproot->isDir()

    Die Liste darf gerne erweitert werden indem man die Nummerierung der Punkte fortführt.
    Bitte hier keine individuellen Probleme oder Funktionswünsche posten sondern nur begründete Fehler, Probleme und Verbesserungen von Code.
    Danke.

    Gruß,
    noRiddle

    Linkback: https://www.modified-shop.org/forum/index.php?topic=35673.0

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.169
    • Geschlecht:
    Zitat
    3. Wenn man in der Datenbank
    - z.B. wegen eines Shopsystem-Umzuges -
    als Produkt-Template (= product_template) ein Template gelistet hat welches es im Filesystem des Templates nicht gibt (= /templates/YOUR_TEMPLATE/module/product_info/), so wird bei Aufruf der Produkt-Detailseite schlicht eine weiße Seite gezeigt, ohne jede Fehlermeldung.
    Soweit ich das sehe, passiert das Gleiche immer wenn eine Template-Datei fehlt oder, sofern sie in der DB steht, nicht unter dem dort gelisteten Namen vorhanden ist.
    Das sollte man abfangen mit einer Fehlermeldung.
    Ohja... damit hab ich ständig zu tun. Hier sollte aber nicht nur eine Fehlermeldung erfolgen, sondern falls die Datei nicht existiert, wenigstens eine Standardansicht geladen werden. Gerade für die Kategorie & Produktlistings wäre das ein enormer Plus-Punkt.

    webald

    • modified Team
    • Beiträge: 2.791
    zu 3.
    Das ist aber doch nie geprüft worden. Smarty bringt mit Smarty->templateExists(CURRENT_TEMPLATE.'/module/account_edit.html') zwar eine solche Möglichkeit mit, aber das steht nirgends im Code und müßte überall eingefügt werden.

    Alternative 1: Nutzung von Autoinclude. Über das autoimclude der header.php könnte man prüfen ob bestimtme Dateien für das aktuelle Template vorhanden sind und falls nicht weiterleiten auf eine Fehlerseite und Error loggen.

    Alternative 2: Manipilation der Smarty-Klasse. Vorteil genau eine Stelle nämlich  Smarty->fetch($resource_name) um eine Prüfunf auf die zu ladende Template-Datei erweitern. Aber das ist ein Eingriff in eine externe Klasse und bei einem Update wieder weg.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.007
    • Geschlecht:
    zu 3.:
    Man sollte es jedenfalls in zukünftigen modified-Versionen, und somit ja dann auch update-sicher, irgendwie lösen/abfangen.
    Das würde viel Kopfschmerzen vermeiden, denn der Unerfahrene bekommt, hat er ein solches Problem, selbst von den Erfahrenen dann oft gesagt: "Schalte mal das Error-Reporting an." und das Ergebnis ist... nix.
    Beim ersten mal wo ich bei einem Kunden daruf stieß stand ich auch anfangs wie ein Ochs vor dem Berg.

    Was sagt Ihr zu 1. ?

    Gruß,
    noRiddle

    WayneTsun

    • Fördermitglied
    • Beiträge: 1.082
    • Geschlecht:
    Hallo noRiddle,

    zu 1.:

    Das ist zumindest bei uns nicht so trivial. Wir haben Kunden in Ländern, in die wir nicht liefern, die jedoch Bestellungen aufgeben für Lieferadressen in einem Land, das wir beliefern. Das führt dann meist zu Dialogen per Email und man muss das (bisher) händisch nachtragen.

    Ein Hinweis bei der Anlage eines neuen Kunden und ebenso im Checkout und zudem eine Prüfung wäre m.E. sehr sinnvoll. Jedoch sollte zudem der o.g. Fall berücksichtigt werden. Dann wäre das zumindest aus meiner Sicht rund.

    Beste Grüße,
    Wayne

    webald

    • modified Team
    • Beiträge: 2.791
    zu 1.
    Ich sehe das wie Wayne. Entscheidend ist v. a. das Lieferziel und nicht der Kundensitz. Ein erster Schritt wäre die Einschränkungen durch die Einstellungen bei Land nur auf den Lieferort zu beziehen und spätere weitere Eintstelungen nachzureichen.

    Man sollte aber bei dieser Gelgenheit das nicht ganz ohne Berücksichtigung der VAT angehen. Sonst hat der Kunde seine Firmenadresse im EU-Ausland und läßt die Ware ins Inland liefern. Derzeit würde im Shop hierfür keine USt. berechnet.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.007
    • Geschlecht:
    zu 1.:
    Jau, eine Prüfung müsste auch auf die Versand-Adesse und nicht die Default-Adresse oder Rechnungsadresse gemacht werden (die genannten Adressen können natürlich theoretisch identisch sein (und sind es wohl in den vielen Fällen auch)).
    Man kann also auf der checkout_shipping
    - wenn keine von der nicht belieferten Default-Adresse abweichende Versand-Adresse voliegt -
    Eine Meldung ausgeben wie z.B.
    "In das Land Ihrer vorliegenden Adresse liefern wir leider nicht.
    Bitte geben sie eine abweichende Lieferadresse in einem Land in welches wir liefern an.
    Wenn Ihnen dies nicht möglich ist, kontaktieren Sie uns bitte.
    "

    Im Länder-Dropdown bei Adress-Änderung auf der checkout_shipping tauchen ja auch nur die belieferten Länder auf.

    Die Einstellungen bei Land auf die Liefer-Adresse zu beziehen ist anfangs nicht möglich.
    Der Kunde kann ja eine beliebige hinterlegte Adresse auf der checkout_shipping auswählen oder eine neue anlegen.
    Was die Berechnung der MwSt betrifft, so ist das Problem ja auch jetzt schon vorhanden,
    wenn es denn so ist, daß die Entscheidung ob MwSt berechnet wird sich auf die Default- bzw. auf die Rechnungsadresse bezieht.
    Die MwSt-Berechnung sollte sich natürlich immer auf die Versandadresse beziehen.
    Das würde ebenfalls eine Meldung benötigen wenn ein Kunde auf der checkout_shipping seine Versand-Adresse abweichend von nicht-MwSt-pflichtig auf MwSt-pflichtig ändert,
    nämlich die Meldung, daß nun Mwst berechnet wird, was sich sichtbar erst in der checkout_confirmation niederschlagen würde.

    Wie auch immer man es löst, imho sollte es eine Lösung geben, denn das Problem welches ich im ersten Post bei Punkt 1. angesprochen habe existiert ja nun.

    Gruß,
    noRiddle

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.169
    • Geschlecht:
    Bin da voll und ganz bei noRiddle, denn die Problematik mit den Ländern ergibt sich in einem wachsenden Shop früher oder später immer mal.

    Die Zwischenschritte der Bestellung sind nicht vollständig gegen solche "Manipulation" gesichert. Klar kann man die eine von 15000 Bestellungen auch mal manuell bearbeiten, aber dazu muss der eigentliche Fehler erstmal bemerkt werden in der Abwicklung.

    Alfred

    • Experte
    • Beiträge: 2.115
    Ändert für de und at die Ländereinstellung auf Deutschland und Österreich.

    webald

    • modified Team
    • Beiträge: 2.791
    Ändert für de und at die Ländereinstellung auf Deutschland und Österreich.
    Ich verstehe gerade nicht was Du meinst.

    Man sollte übrigens bei der Änderung der Länder die Übesetzung der Ländernamen nicht vergessen (https://trac.modified-shop.org/ticket/419)

    web28

    • modified Team
    • Beiträge: 9.404
    Zitat
    Wenn man in der Datenbank
    - z.B. wegen eines Shopsystem-Umzuges -
    als Produkt-Template (= product_template) ein Template gelistet hat welches es im Filesystem des Templates nicht gibt (= /templates/YOUR_TEMPLATE/module/product_info/), so wird bei Aufruf der Produkt-Detailseite schlicht eine weiße Seite gezeigt, ohne jede Fehlermeldung.
    Soweit ich das sehe, passiert das Gleiche immer wenn eine Template-Datei fehlt oder, sofern sie in der DB steht, nicht unter dem dort gelisteten Namen vorhanden ist.
    Das sollte man abfangen mit einer Fehlermeldung.

    Diese Template Fehler werden im mod_error...log protokoliert.
    Ansonsten sollte es selbstverständlich sein, bei einem neuen/anderen Template die Dateien abzugleichen.
    Es kann auch gerne jemand ein Template Diagnose Tool programmieren das Fehler übersichtlich anzeigt.

    Gruss Web28

    p3e

    • Experte
    • Beiträge: 2.426
    Ihr habt Installation und Update inzwischen sehr einfach und auch für Laien verständlich gestaltet.
    Wer aber den neuen 2.0 installiert hat und dann seine alte Datenbank nimmt und updatet, muss anschließend per phpmyadmin den Eintrag umständlich ändern oder alternativ das Template umbenennen.

    Es wäre aber zumindest hilfreich, wenn bei dem Datenbankupdate in der Installationsroutine überprüft wird, ob das Template in der Datenbank vorhanden ist und zumindest eine Meldung dazu auszugeben. Alternativ wäre hilfreich eine Adminloginseite zu haben, die auch ohne Template funktioniert, so dass man die Änderung bequem im Backend vornehmen kann.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.007
    • Geschlecht:
    Was, wo ist "mod_error...log" ?

    Gruß,
    noRiddle

    web28

    • modified Team
    • Beiträge: 9.404
    Code: PHP  [Auswählen]
    Was, wo ist "mod_error...log" ?

    Shopverzeichnis/log/mod_error_DATUM.log

    Es wird täglich bei Fehlern täglich eine neue Datei angelegt.

    Zitat
    Alternativ wäre hilfreich eine Adminloginseite zu haben, die auch ohne Template funktioniert, so dass man die Änderung bequem im Backend vornehmen kann.

    Gibt es:

    login_admin.php

    Zitat
    Jau, eine Prüfung müsste auch auf die Versand-Adesse und nicht die Default-Adresse oder Rechnungsadresse gemacht werden

    Die Steuereinstellungen richten sich immer nach der Versandadresse, das war noch nie anders.
    Die Überprüfung im Checkout wurden bereits für 2.0.1 nochmals verbessert.

    Gruss Web28

    p3e

    • Experte
    • Beiträge: 2.426
    Gibt es:

    login_admin.php
    Super, wusste ich gar nicht. Wäre dann toll, wenn dahin geleitet wird, sobald das Templateverzeichnis nicht gefunden wird.
    Werbung / Banner buchen
    29 Antworten
    5648 Aufrufe
    04. August 2017, 18:24:43 von Roberto
    0 Antworten
    1385 Aufrufe
    31. August 2015, 21:20:13 von BulldogISL