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: modified eCommerce Shopsoftware 2.0.5.1 rev 12725 veröffentlicht

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.178
    • Geschlecht:
    [...]
    Ich hab das Update gestern Nacht auch in meinem Testshop gemacht (was 1a durchlief) und hatte auch diese Fehlermeldung. Da ich mir die Kommmentare in der /_installer/update/update_2.0.5.0_to_2.0.5.1.sql angesehen habe, wusste ich warum die Meldung kommt. Denn die Dateien waren bei mir nicht mehr vorhanden. Wollte das für andere heute schreiben, aber ist ja nun erledigt.

    Allerdings kann ich deine Anmerkungen nicht ganz nachvollziehen. Ich habe garantiert das DB Strukturupdate bei 2.0.5.0 gemacht und mich an die Reihenfolge des /_installer gehalten und da folgt das DB Strukturupdate auf das DB Update. Und dennoch sind die beiden Einträge nicht mehr vorhanden gewesen und konnten somit nicht gelöscht werden. Es muss einen anderen Grund geben.
    [...]

    Nein, dafür gibt es keinen anderen Grund. Du kannst das jederzeit mit einer Testinstallation von 2.0.5.0 testen, die beiden Spalten entfernen und danach das Datenbankstruktur Update ausführen. Dann werden die Spalten wieder hinzugefügt.

    [...]
    Ich würde den Punkt System Updates noch erläutern, damit man weiß, was da passiert. Ich nehme an, dass da veraltete Dateien gelöscht werden.
    [...]

    Bei den System Updates werden derzeit nur Korrekturen für reine Download-Shops vorgenommen (siehe Ticket #1447) sowie eine Korrektur des PRIMARY KEY der whos_online Tabelle.

    Grüße

    Torsten

    Timm

    • Fördermitglied
    • Beiträge: 6.341
    Jetzt hab ich es wieder. Es gibt doch einen anderen Grund. :-D

    Ich hatte auf Grund des Threads "Admin Button in der Adminbar fehlt" das SQL-Statement aus Ticket #1780 schon ausgeführt.

    Und deshalb sind die beiden Werte, obwohl mit dem DB Update 2.0.4.2 zu 2.0.5.0 erst gelöscht und dann mit dem DB Strukturupdate 2.0.5.0 wieder hinzugefügt, bei mir gelöscht und es kam im 2.0.5.1 Update zu der Meldung.

    Puhh. Dann wäre das erklärt, obwohl es eigentlich nicht wichtig wäre, da es letztlich nur darum geht, dass die beiden Werte nicht mehr enthalten sind. Ob nun nicht mehr enthalten trotz vorher vorhanden oder nicht mehr enthalten weil vorher schon nicht vorhanden (und dafür mit Fehlermeldung), läuft aufs selbe hinaus. :-D

    EDIT: In welchem Punkt des _installer werden die nicht mehr benötigten Dateien gelöscht?

    Gruß Timm

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.220
    • Geschlecht:
    [...]
    EDIT: In welchem Punkt des _installer werden die nicht mehr benötigten Dateien gelöscht?
    [...]

    Direkt beim Aufrufen des Installers.

    Gruss Gerhard

    atmiral

    • Neu im Forum
    • Beiträge: 34
    • Geschlecht:
    Hallo Zusammen!

    Danke an Modified-Team für die Arbeit!!1  :thx:
    Habe gestern direkt den Shop Update durchgeführt. In der Datei /includes/classes/afterbuy.php hat PhpStorm einen Syntaxfehler gezeigt. So lies ich dann PHP Syntax Scheck im shoproot  laufen.
    Ich nutze PHP 7.3.17

    Checked 4119 files in 7.8 seconds
    Syntax error found in 7 files

    ------------------------------------------------------------
    Parse error: web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/MaterializedView.php:24
        22|  * A PHP representation of a materialized view
        23|  */
      > 24| interface MaterializedView implements Table
        25| {
        26|     /**
    Unexpected 'implements' (T_IMPLEMENTS), expecting '{' in web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/MaterializedView.php on line 24
    ------------------------------------------------------------
    Parse error: web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/Float.php:24
        22|  * A PHP representation of the CQL `float` datatype
        23|  */
      > 24| final class Float implements Value, Numeric
        25| {
        26|     /**
    Cannot use 'Float' as class name as it is reserved in web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/Float.php on line 24
    ------------------------------------------------------------
    Parse error: web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/Function.php:24
        22|  * A PHP representation of a function
        23|  */
      > 24| interface Function
        25| {
        26|     /**
    Unexpected 'Function' (T_FUNCTION), expecting identifier (T_STRING) in web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/Function.php on line 24
    ------------------------------------------------------------
    Parse error: web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/DefaultFunction.php:24
        22|  * A PHP representation of a public function
        23|  */
      > 24| final class DefaultFunction implements Function
        25| {
        26|     /**
    Unexpected 'Function' (T_FUNCTION), expecting identifier (T_STRING) or namespace (T_NAMESPACE) or \\ (T_NS_SEPARATOR) in web/includes/external/phpfastcache/bin/stubs/cassandra/Cassandra/DefaultFunction.php on line 24
    ------------------------------------------------------------
    Parse error: web/includes/classes/afterbuy.php:191
        189| $anzahl = 0;
        190| if (!class_exists (xtcPrice)) {
      > 191|   require_once (defined('RUN_MODE_ADMIN') ? DIR_FS_CATALOG : '').DIR_WS_CLASSES . 'xtcPrice.php');
        192|   $xtPrice = new xtcPrice($oData['currency'],$oData['customers_status']);
        193| }
    Unexpected ')' in web/includes/classes/afterbuy.php on line 191
    ------------------------------------------------------------
    Parse error: web/includes/modules/payment/klarna/checkout/klarnaMobile.php:69
        67|         $oKlarna->setCountry('se');
        68|         
      > 69|         $oAPI        = new KlarnaMobile(&$oKlarna, 'se', DIR_WS_CLASSES . 'klarna/standardRegister');
        70|         $mResult    = $oAPI->requestCode($iPid, $sTelNo);
        71|         
    Unexpected '&' in web/includes/modules/payment/klarna/checkout/klarnaMobile.php on line 69
    ------------------------------------------------------------
    Parse error: web/includes/modules/payment/klarna/api/gui/fetch_pclasses.php:7
        5| $cur = $_POST["currency"];
        6| $result = "";
      > 7| $status = fetch_pclasses($eid, intval($cur), $secret, 209, 138, &$result);
        8|
        9| switch ($status) {
    Unexpected '&', expecting ')' in web/includes/modules/payment/klarna/api/gui/fetch_pclasses.php on line 7

    evtl wird ein oder anderer Fehler mit PHP < 7.3 funktionieren. Aber ich hoffe es wird einen Patch/Update geben.
    Für /includes/classes/afterbuy.php Zeile 191 habe ich schon die Korrektur:

    Code: PHP  [Auswählen]
            require_once ((defined('RUN_MODE_ADMIN') ? DIR_FS_CATALOG : '').DIR_WS_CLASSES . 'xtcPrice.php');

    Noch mal Danke für die tolle Arbeit!

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.178
    • Geschlecht:
    Hoppala... die Korrektur für die "/includes/classes/afterbuy.php" habe ich soeben in r12729 ins SVN übernommen.

    Grüße

    Torsten

    derheiko

    • Fördermitglied
    • Beiträge: 463
    • Geschlecht:
    [...]
    Da es erstmal nur "Notices" sind, können diese eh ignoriert werden.
    Korrigieren kannst du das aber, indem Du im Adminbereich unter "Module" -> "System Module" -> "Shopvote"  einmal deinstalliert und dann wieder neu installierst. Wenn du es nicht verwendest, dann danach einfach nochmal deinstallieren.
    [...]

    Danke, daran hat es gelegen.
    Neu installiert, läuft wieder. ;)

    Timm

    • Fördermitglied
    • Beiträge: 6.341
    [...]
    EDIT: In welchem Punkt des _installer werden die nicht mehr benötigten Dateien gelöscht?
    [...]

    Direkt beim Aufrufen des Installers.

    Gruss Gerhard

    Der _installer löscht im tpl_modified_responsive_1 Template nicht die Datei /templates/tpl_modified_responsive_1/mail/german(english)/sepa_info.txt

    Gerade nochmal ausprobiert den _installer hochgeladen und gestartet.

    Im installer in deletes_files.php steht aber:

    Code: PHP  [Auswählen]
        'templates/'.CURRENT_TEMPLATE.'/mail/german/sepa_info.txt',

    und das Template ist im Testshop auch aktiviert. Bei den Standardtemplates hat er die Datei gelöscht.

    Gleiches gilt für

    'templates/'.CURRENT_TEMPLATE.'/module/checkout_masterpayment.html',
    'templates/'.CURRENT_TEMPLATE.'/module/masterpayment_request.html',
    'templates/'.CURRENT_TEMPLATE.'/module/masterpayment_response.html',
    'templates/'.CURRENT_TEMPLATE.'/module/new_products_overview.html',
    'templates/'.CURRENT_TEMPLATE.'/module/specials.html',

    Und im tpl_modified_responsive ist im Download der Vollversion 2.0.5.1 z.B. die templates/tpl_modified_responsive/module/specials.html nicht vorhanden, nach update von 2.0.4.2 auf 2.0.5.0 auf 2.0.5.1 aber schon, da die Datei in der delete_files.php für dieses Template nicht steht.

    Gruß Timm

    Pixelknecht

    • Neu im Forum
    • Beiträge: 9
    • Geschlecht:
    Ich schließe mich an: Danke für die tolle Arbeit!


    Für /includes/classes/afterbuy.php #191 habe ich schon die Korrektur

    Code: PHP  [Auswählen]
            require_once ((defined('RUN_MODE_ADMIN') ? DIR_FS_CATALOG : '').DIR_WS_CLASSES . 'xtcPrice.php');


    Besonderen Dank @atmiral für die prompte Lösung von
    syntax error, unexpected ')' in File: /includes/classes/afterbuy.php on Line: 191   {}   {}

    MichaT

    • Neu im Forum
    • Beiträge: 10
    • Geschlecht:
    Hallo,

    erst einmal vielen Dank für das umfangreiche Update.
    Ich habe von 2.0.5.0 auf 2.0.5.1 rev 12725 geupdated. Datenbank Version: "MOD_2.0.5.1

    Nun habe ich das Problem, dass der Rabatt nicht richtig funktioniert:

    Unter der Kundengruppe ist eingestellt: Maximaler Rabatt auf Produkte 3%
    Bei Produkten, die mit einem Maximal erlaubter Rabatt von 3 versehen sind, wird kein Rabatt abgezogen.
    Dafür wird bei allen Produkten, die keinen Rabatt eingestellt haben, der Rabatt abgezogen.
    An den Einstellungen habe ich nichts geändert.
    Ich habe es auch mit verschiedenen Templates getestet - bei allen das geiche Problem.

    Besteht dieses Problem nur bei mir oder ist dies ein Fehler der 2.0.5.1 ?

    Viele Grüße
    Micha

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.178
    • Geschlecht:
    Füge mal bitte zwei Screenshots hier mit an:

    1.) Einstellungen der Kundengruppe bzgl. des eingestellten Rabatts
    2.) Einstellungen eines Beispielsartikels bzgl. des eingestellten Rabatts

    Grüße

    Torsten

    MichaT

    • Neu im Forum
    • Beiträge: 10
    • Geschlecht:
    Hallo Torsten,

    die Bilder habe ich angehangen.
    Im Shop habe ich die 3% auch wieder aktiviert. Dort kann man es nun auch sehen.

    https://www.tabak-traeber.de/Zigarren/Honduras/Rocky-Patel/Vintage-1990/Rocky-Patel-Vintage-1990-Robusto-Glastube::5559.html
    hat einen Rabatt von 3% eingestellt (siehe Bild)

    https://www.tabak-traeber.de/Pfeifentabak/Tabak-Traeber/Tabak-Traeber-Unique::731.html
    sollte keinen Rabatt enthalten.

    Viele Grüße
    Micha

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.178
    • Geschlecht:
    Ich habe dafür Ticket #1818 angelegt.

    Grüße

    Torsten

    MichaT

    • Neu im Forum
    • Beiträge: 10
    • Geschlecht:
    Super - Vielen Dank. :thx:

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Ich bestätige das Verhalten.
    Es scheint an der Methode xtcCheckDiscount() in der xtcPrice-Klasse zu liegen:

    Code: PHP  [Auswählen]
      function xtcCheckDiscount($pID) {
        if ($this->cStatus['customers_status_discount'] != '0.00') {
          $discount_query = xtDBquery("SELECT products_discount_allowed
                                         FROM "
    .TABLE_PRODUCTS."
                                        WHERE products_id = '"
    .(int)$pID."'");
          $discount = xtc_db_fetch_array($discount_query, true);
         
          if ((isset($discount['products_discount_allowed'])
               && $this->cStatus['customers_status_discount'] < $discount['products_discount_allowed']
               ) || $discount['products_discount_allowed'] == '0.00'
              )
          {
           return $this->cStatus['customers_status_discount'];
          }
        }
        return false;
      }

    Die if-Konstruktion ist logisch verkehrt aufgebaut.
    • Wenn der KG-Rabatt kleiner als der Produkt-Rabatt ist wird der KG-Rabatt zurückgegeben.
      Das ist etwas was auch in der Vorgängerversion bereits so war und was imho <= , also "kleiner-gleich", heißen müsste.
      Das ist aber ein Nebenthema, welches man jedoch gleich mitfixen sollte.
    • ...oder der Produkt-Rabatt == '0.00' ist der eigtl. Fehler, denn das bewirkt, daß alle Artikel die keinen Produkt-Rabatt eingestellt haben den KG-Rabatt ausgeben.

    Bei der Kontrolle fiel mir ein weiterer Fehler auf, wenn ich mich nicht irre.
    In der Methode getGraduated() in der product-Klasse, wo die oben besprochene Methode xtcCheckDiscount() benutzt wird, gibt es diese Zeile:

    Code: PHP  [Auswählen]
    $Pprice = $xtPrice->xtcFormat($staffel[$i]['price'] - $staffel[$i]['price'] / 100 * $discount, false, $this->data['products_tax_class_id']);

    Ich denke da fehlen Klammern, wegen "Punkt vor Strichrechnung", und es müsste so aussehen:

    Code: PHP  [Auswählen]
    $Pprice = $xtPrice->xtcFormat($staffel[$i]['price'] - (($staffel[$i]['price'] / 100) * $discount, false, $this->data['products_tax_class_id']));

    Kann das bitte mal jemand verifizieren ?

    Gruß,
    noRiddle

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.220
    • Geschlecht:
    Hi,

    also das hier ist schon mal grosser Käse, denn dadurch stimmen die Parameter nicht mehr.

    Code: PHP  [Auswählen]
    $Pprice = $xtPrice->xtcFormat($staffel[$i]['price'] - (($staffel[$i]['price'] / 100) * $discount, false, $this->data['products_tax_class_id']));

    wenn dann müsste der "Klammerteil" so aussehen:
    Code: PHP  [Auswählen]
    $staffel[$i]['price'] - (($staffel[$i]['price'] / 100) * $discount)

    aber wo liegt darin der Unterschied zu dem wie er aktuell im Code vorhanden ist ?
    Code: PHP  [Auswählen]
    $staffel[$i]['price'] - $staffel[$i]['price'] / 100 * $discount

    Gruss Gerhard