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: PayPal PLUS & PayPal Checkout Zahlungsmodule für modified eCommerce Shopsoftware

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Für Leute, die meinen nichts an ihren Shop-Files geändert zu haben, jedoch das Modul "MODUL: One Stop Shop (OSS) EU-Regelung 2021" eingebaut haben, bitte aufpassen.
    CHANGED_FILES/includes/classes/xtcPrice.php ist in dem Fall von euch geändert worden und dies sollte bei Update des PayPal Plus Moduls beachtet werden.
    Dies ist das einzige File welches in o.g. Fall beachtet werden muß.
    [...]

    noRiddle hatte es auch schon angesprochen.

    Wir müssen nach jetzigem Stand bei jedem Update in den Core eingreifen ....
    Der folgende Code muss immer in die xtcPrice.php eingefügt werden.

    Code: PHP  [Auswählen]
      /**
       * xtc_get_tax_class
       *
       * @param integer $pID
       * @param integer $tax_class_id
       * @return integer
       */

      function xtc_get_tax_class($pID, $tax_class_id) {
        static $tax_class_array;
           
        if (!isset($tax_class_array)) {
          $tax_class_array = array();
        }
       
        if (isset($this->country_id)
            && $this->country_id != STORE_COUNTRY
            )
        {
          $geo_zone_query = xtDBquery("SELECT gz.geo_zone_id
                                         FROM "
    .TABLE_GEO_ZONES." gz
                                         JOIN "
    .TABLE_ZONES_TO_GEO_ZONES." ztgz
                                              ON gz.geo_zone_id = ztgz.geo_zone_id
                                                 AND ztgz.zone_country_id = '"
    .(int)$this->country_id."'
                                        WHERE gz.geo_zone_tax = 1"
    );
          if (xtc_db_num_rows($geo_zone_query, true) > 0) {
            $geo_zone = xtc_db_fetch_array($geo_zone_query, true);
         
            if (!isset($tax_class_array[$pID][$geo_zone['geo_zone_id']])) {
              $tax_class_array[$pID][$geo_zone['geo_zone_id']] = $tax_class_id;
           
              $tax_class_query = xtDBquery("SELECT *
                                              FROM "
    .TABLE_PRODUCTS_GEO_ZONES_TO_TAX_CLASS."
                                             WHERE products_id = '"
    .(int)$pID."'
                                               AND geo_zone_id = '"
    .(int)$geo_zone['geo_zone_id']."'");
              if (xtc_db_num_rows($tax_class_query, true) > 0) {
                $tax_class = xtc_db_fetch_array($tax_class_query, true);
                $tax_class_array[$pID][$geo_zone['geo_zone_id']] = $tax_class['tax_class_id'];
              }
            }    
           
            return $tax_class_array[$pID][$geo_zone['geo_zone_id']];
          }
        }
       
        return $tax_class_id;
      }  

    // ENDE xtc_get_tax_class

    Gruss

    Weil ich's gerade zufällig gesehen habe:
    Das ist nicht die einzige Änderung in der xtcPrice.php  für das OSS-Modul. Da gibt es noch drei weitere Anpassungen. Prüfe das mal lieber.

    Gruß,
    noRiddle

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Der Teil wird in die kommende Modulversion einfließen:

    [...]
    Du kannst dir das selber anpassen, indem du die "/admin/includes/modules/orders_listing.php" wie folgt bearbeitest.

    Suche:

    Code: PHP  [Auswählen]
        $payment_array[] = array('id' => $payments['payment_class'], 'text' => $payment_text);

    Ersetze mit:

    Code: PHP  [Auswählen]
        $payment_array[] = array(
          'id' => $payments['payment_class'],
          'text' => $payment_text.' ('.$payments['payment_class'].')'
        );
    [...]

    Der Teil hier allerdings nicht, da es die Tabelle unnötig auseinander ziehen würde:

    [...]
    Suche:

    Code: PHP  [Auswählen]
                <td class="dataTableContent" align="center"><?php echo payment::payment_title($orders['payment_method']); ?></td>

    Ersetze mit:

    Code: PHP  [Auswählen]
                <td class="dataTableContent" align="center"><?php echo payment::payment_title($orders['payment_method']) . ' (' . ($orders['payment_method']) . ')'; ?></td>
    [...]

    Grüße

    Torsten

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Danke Euch, hab ich schon im Bugtracker gesehen und im Demoshop getestet.

    Aber da kommt ja noch einiges mehr und dann geht's vermutlich in einem anderen Thread weiter. ;-)

    Gruss Timm

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    [...]
    Aber da kommt ja noch einiges mehr und dann geht's vermutlich in einem anderen Thread weiter. ;-)
    [...]

    Nein, wir fassen alle derzeit aktuellen PayPal-Module in einem Paket zusammen.

    Grüße

    Torsten

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Die Module in Beitrag 1 wurden erneut aktualisiert. Wer bereits eine ältere Version des Moduls installiert hatte, der lädt bitte einfach den Inhalt des Ordners "NEW_FILES" & "MODULE_FILES" erneut in seinen Shop.
    Falls der Ordner "admin" umbenannt wurde, dann bitte den Ordner "admin" im Ordner "NEW_FILES" bzw. sofern vorhanden im Ordner "CHANGED_FILES" & "MODULE_FILES" vorher auch entsprechend umbenennen!

    Zusätzlich sind seit der letzten Modulversion noch folgende Dateien aus dem Ordner "CHANGED_FILES" zu bearbeiten:

    Für Shopversion 1.05, 1.06 rev 4642, 1.06 rev 4642 SP1, 1.06 rev 4642 SP2 & 1.06 rev 4642 SP3
    • /checkout_confirmation.php
    • /admin/modules.php
    • /includes/classes/payment.php

    Für Shopversion 1.06 rev 4642 SP4
    • /checkout_confirmation.php
    • /admin/modules.php
    • /includes/classes/class.logger.php
    • /includes/classes/payment.php

    Für Shopversion 2.0.0.0 rev 9678, 2.0.1.0 rev 10403, 2.0.2.0 rev 10591, 2.0.2.1 rev 10607, 2.0.2.2 rev 10690, 2.0.3.0 rev 10907, 2.0.4.0 rev 11204, 2.0.4.1 rev 11327, 2.0.4.2 rev 11374, 2.0.5.0 rev 12487, 2.0.5.1 rev 12725 & 2.0.6.0 rev 13500
    • /ajax.php
    • /checkout_confirmation.php
    • /admin/modules.php
    • /admin/includes/modules/orders_listing.php
    • /includes/classes/class.logger.php
    • /includes/classes/payment.php

    Wir haben die Moduldateien des Moduls für alle Shopversionen vereinheitlicht und aus den "CHANGED_FILES" raus gezogen in einen neuen Ordner "MODULE_FILES". Das macht es uns leichter das Modul für kommende Shopversionen zu pflegen, da wir mittlerweile Module für 18 unterschiedliche Shopversionen pflegen mussten.
    Hierfür wurden diverse Dateien der Shopversionen 1.0x im Ordner "CHANGED_FILES" mit dem auto_include System ausgestattet.

    Eingeflossen sind die Korrekturen r14166, r14167, r14170, r14191, r14192, r14193, r14194, r14195, r14196, r14197, r14199, r14200, r14201, r14202, r14203, r14204, r14205, r14206, r14208, r14211, r14212, r14213, r14214, r14216, r14217, r14218, r14219, r14228, r14229, r14234, r14235, r14236, r14237, r14243 & r14248.

    Ab Modulversion 1.73 sind nun die brandneuen PayPal Checkout Zahlungsmodule mit noch mehr Zahlarten zusätzlich integriert.

    Grüße

    Torsten

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    @Torsten

    erstmal Danke fürs Bereitstellen.

    Da ich noch auf der Paypal-Version 1.64 rumgehühnert habe, habe ich heute mal die neueste Version installiert.
    Shopversion 2.0.6.0
    Erstmal alle Paypal-Module deinstalliert, neue Dateien hochgeladen und Profil neu konfiguriert sowie die anderen notwendigen Dinge im Paypal-Modul.

    2 Dinge sind mir aufgefallen:
    In der Paypal-Konfiguration steht der Status für Kreditkarten und Kauf auf Rechnung auf rot. Letzteres hatte ich aber bisher und so wie es aussieht funktioniert das trotzdem, siehe Bild:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Im Checkout soll doch eigentlich ein Button für "Später zahlen" erscheinen. Dieser taucht zwar auf den Artikelseiten auf, aber nicht im Checkout. Dort ist lediglich ein Hinweisfeld mit Erklärung für diese Methode, siehe Bild:

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Gruß aus dem Schneeregen in Bonn

    Bonner

    [EDIT Tomcraft 01.04.2022: Shopversion korrigiert, siehe: FAQ: Wichtiger Hinweis bzgl. Angabe der Shopversion!]

    peter111

    • Fördermitglied
    • Beiträge: 260
    • Geschlecht:
    Hallo,
    ich war wohl leider zu neugierig.
    Nach der Installation des Updates hatte ich viele Zahhlungsmodule mit dem Hinweis "ALT".
    Also habe ich versucht, diese zu deinstallieren.
    Diese Module zu deinstallieren war eine ganz dumme Idee.
    Ich wollte eigentlich nur einen sauberen Stand haben und PayPal Plus weiterhin nutzen. Bei irgendeiner Deinstallation eines PayPal Moduls ist das System hängen geblieben und nun komme ich überhaupt nicht mehr in das Modulmenü.
    Dafür bekomme ich hunderte  DATABASE ERRORS Mails - immer PAYPAL.
    Nun muss ich den Testshop wieder recovern aber was nach dem Modulupdate geht oder nicht ist mir immer noch nicht klar
    Da hätte ich mir Hinweise von "Wissenden" gewünscht..

    Gruß Peter

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    @peter111
    Wäre gut, wenn du Auszugsweise hier die Fehlermeldungen postest.

    @Bonner
    Der Button sollte erst auf der checkout_confirmation erscheinen. Statt kaufen steht dann sowas wie „später bezahlen“.

    @modified Team
    Wenn man Paypal Plan in den Klassenerweiterungen installiert, gibt es im dev Shop eine weiße Seite und einen error.
    Nach reload ist es aber installiert.

    [2022-04-01 18:45:58] [error] [modified] [pid:12594] ERROR found for URL: /admin/modules.php?set=shopping_cart&module=paypal_plan_cart&action=install {} {}
    [2022-04-01 18:45:58] [error] [modified] [pid:12594] Duplicate entry 'MODULE_PAYMENT_PAYPAL_SECRET' for key 'idx_configuration_key' in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}

    Und wenn man es deinstalliert, dann hängt die Seite und es gibt auch einen Eintrag in Log mod_parsetime. Nach reload ist es aber deinstalliert.

    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Constant MODULE_SHOPPING_CART_PAYPAL_PLAN_CART_STATUS_TITLE already defined in File: /var/www/clients/client1/web1/web/includes/modules/shopping_cart/paypal_plan_cart.php on Line: 39 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #0 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 198 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #1 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 244 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #2 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 427 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] WARNING found for URL: /admin/modules.php?set=shopping_cart&module=paypal_plan_cart&action=remove&box=1 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Constant MODULE_SHOPPING_CART_PAYPAL_PLAN_CART_STATUS_DESC already defined in File: /var/www/clients/client1/web1/web/includes/modules/shopping_cart/paypal_plan_cart.php on Line: 40 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #0 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 198 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #1 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 244 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #2 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 427 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] WARNING found for URL: /admin/modules.php?set=shopping_cart&module=paypal_plan_cart&action=remove&box=1 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Constant MODULE_SHOPPING_CART_PAYPAL_PLAN_CART_SORT_ORDER_TITLE already defined in File: /var/www/clients/client1/web1/web/includes/modules/shopping_cart/paypal_plan_cart.php on Line: 41 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #0 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 198 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #1 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 244 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #2 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 427 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] WARNING found for URL: /admin/modules.php?set=shopping_cart&module=paypal_plan_cart&action=remove&box=1 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Constant MODULE_SHOPPING_CART_PAYPAL_PLAN_CART_SORT_ORDER_DESC already defined in File: /var/www/clients/client1/web1/web/includes/modules/shopping_cart/paypal_plan_cart.php on Line: 42 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #0 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 198 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #1 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 244 {} {}
    [2022-04-01 18:46:08] [warning] [modified] [pid:26819] Backtrace #2 - /var/www/clients/client1/web1/web/admin/modules.php called at Line 427 {} {}

    Wenn man Paypalsubscription in den Moduleinstellungen deinstalliert, hängt die Seite auch. Danach kommt man auch nicht mehr in die Paypal Moduleinstellungen. Weiße Seite. Das wird auch der Fehler bei @peter111 sein.

    [2022-04-01 18:54:21] [error] [modified] [pid:12567] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 18:54:21] [error] [modified] [pid:12567] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 18:54:28] [error] [modified] [pid:26819] ERROR found for URL: /admin/paypal_module.php?action=remove&module=paypalsubscription {} {}
    [2022-04-01 18:54:28] [error] [modified] [pid:26819] Allowed memory size of 134217728 bytes exhausted (tried to allocate 16384 bytes) in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 18:54:28] [error] [modified] [pid:12567] ERROR found for URL: /admin/paypal_info.php {} {}
    [2022-04-01 18:54:28] [error] [modified] [pid:12567] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 18:55:26] [error] [modified] [pid:26820] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 18:55:26] [error] [modified] [pid:26820] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}

    Gruß Timm

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    @Timm

    In der checkout_confirmation steht es auch nicht.

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    @Bonner
    Der "später Zahlen" Button wird nicht jedem angezeigt. Kommt wohl drauf an, was deine cookies hergeben. Ob du schon mal mit Paypal bezahlt hast etc. Wundert mich aber, dass er auf den Artikeldetailseiten angezeigt wird und im checkout dann nicht. Im Warenkorb sollte der auch unter dem Paypal Express Button angezeigt werden.

    @modified Team
    Den gleichen Fehler wie bei Paypal Plan in den Klassenerweiterungen kann man auch bei Installation von Paypalsubscription erzeugen. Allerdings passiert das nicht immer. Auch passieren die weißen Seiten und hängenden Seiten  und das nicht hineinkommen in die Paypal Moduleinstellungen beim bzw nach deinstallieren immer bei unterschiedlichen Modulen und nicht immer bei den gleichen.

    [2022-04-01 19:38:02] [error] [modified] [pid:12594] ERROR found for URL: /admin/paypal_module.php?action=install&module=paypalsubscription {} {}
    [2022-04-01 19:38:02] [error] [modified] [pid:12594] Duplicate entry 'MODULE_PAYMENT_PAYPAL_SECRET' for key 'idx_configuration_key' in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}

    [2022-04-01 19:42:58] [error] [modified] [pid:12594] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 19:42:58] [error] [modified] [pid:12594] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 19:43:11] [error] [modified] [pid:12567] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 19:43:11] [error] [modified] [pid:12567] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 19:43:11] [error] [modified] [pid:26820] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 19:43:11] [error] [modified] [pid:26820] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 19:43:11] [error] [modified] [pid:12594] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 19:43:11] [error] [modified] [pid:12594] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 19:44:22] [error] [modified] [pid:26820] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 19:44:22] [error] [modified] [pid:26820] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}
    [2022-04-01 19:44:22] [error] [modified] [pid:12594] ERROR found for URL: /admin/paypal_module.php {} {}
    [2022-04-01 19:44:22] [error] [modified] [pid:12594] Table 'c1dev.paypal_config' doesn't exist in File: /var/www/clients/client1/web1/web/inc/db_functions_mysqli.inc.php on Line: 215 {} {}

    Gruss Timm

    peter111

    • Fördermitglied
    • Beiträge: 260
    • Geschlecht:
    Nachtrag:
    Laut Log gibt es Table .paypal_config nicht mehr und die ist auch wirklich gelöscht!?
    Ich vermute mal, dass ich völlig falsch vorgegangen bin.
    Gruß Peter

    Ach ja, es ist ein 2.0.5.1 Shop unter PHP 7.4

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    @Bonner
    Ich sollte beim Test neue Livedaten anfordern. Danach waren die zwei roten Punkte grün. Einzig die Merchant ID musste ich noch manuell eintragen. Kann sein, dass das mit der Merchant ID in dieser Version schon behoben wurde.

    @modified Team
    Falls das Anfordern neuer Livedaten wichtig ist, dann sollte es in Beitrag 1 und in die Installationsanleitung.

    @peter111
    Warum falsch vorgegangen? Den gleichen Fehler konnte ich doch im Demoshop auch nachstellen.

    Gruss Timm

    Bonner

    • Fördermitglied
    • Beiträge: 848
    • Geschlecht:
    @Timm

    Livedaten anfordern scheint Pflicht zu sein - muss aber wohl Live und Sandbox sein.
    Danach hatte ich zwar die Merchant ID, aber die beiden roten Punkte sind immer noch da.

    Bonner

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.367
    • Geschlecht:
    Da kann Gerhard am Montag bestimmt mehr zu sagen, ob es notwendig ist neue API-Daten anzufordern.
    Wenn da der Fall ist, dann kommt das natürlich auch mit in die Anleitung, die ich eh gerade erneuere.

    Die restlichen gemeldeten Fehler haben wir auf dem Schirm. Danke an dieser Stelle für die Log-Dateien.

    Bis dahin bitte einfach erstmal wieder zurück gehen auf die Zahlungsmodule, die jetzt mit "ALT" gekennzeichnet sind. Die funktionieren nach wie vor problemlos.

    Grüße

    Torsten

    GTB

    • modified Team
    • Gravatar
    • Beiträge: 6.303
    • Geschlecht:
    Hallo,

    Ja, es müssen unbedingt neue Daten angefordert werden. Das muss aber zwingend mit den Buttons neben den Feldern gemacht werden.

    Gruß Gerhard

    [EDIT Tomcraft 02.04.2022: Hinweis in Beitrag 1 ergänzt.]