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: Module flat und freeamount kopieren

    Blaumann

    • Frisch an Board
    • Beiträge: 59
    Module flat und freeamount kopieren
    am: 05. Juni 2011, 12:40:28
    Hallo,

    ich möchte  fürs Inland und Ausland unterschiedliche pauschale und versandkostenfreie Preise bestimmen.
    Habe daher die Module "pauschale Versandkosten" und "Versandkostenfrei" in "flat2" und "freeamount2" kopiert und installiert. Nun traten folgende Probleme auf.

    Problem 1:
    Das Modul "freeamount"  wird als installiert angezeigt. Wenn ich aber das Modul wähle kommt das Fenster "Installieren" und nicht das Fenster "Bearbeiten". Klicke ich nun doppelt auf das Module kommt direkt die Bearbeitungsbox. Habe dann meine Werte eingegeben und aktualisiert. Danach erscheint wieder das Fenster "Installieren" und nicht das Fenster mit den Einstellungen. Obwohl es den Anschein hat, dass das die Einstellungen nicht übernommen wurden, hat es beim Testen mit den eingestellten Werten funktioniert. Auch wenn es so funktioniert ist es aber nicht zufriedenstellen außerdem ist es so  nicht möglich, das Modul wieder zu deinstallieren. Beim kopierten Modul freeamount2 und auch bei den Modulen "flat" und "flat2" funktioniert alles einwandfrei.

    Problem 2:
    Habe "freeamount" für's Inland "freeamaount2" für's Ausland eingestellt. Für's Inland funktioniert alles so wie gewünscht. Beim Kauf aus dem Ausland wird die Auswahlmöglichkeit der Versandkosten zu Bezahlen beim überschreiten des Mindestwerts nicht ausgeblendet. Habe die Module miteinander verglichen. Sind absolut gleich, aber beim einen wird es ausgeblendet beim anderen nicht.
    Vielleicht hat jemand eine Lösung, schon mal vielen Dank.



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

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Module flat und freeamount kopieren
    Antwort #1 am: 05. Juni 2011, 13:16:35
    Bist du beim Kopieren nach folgender Anleitung vorgegangen? -> Tutorial: Kopieren eines Versandmoduls

    Es reicht nämlich nicht, einfach nur die Module zu kopieren, sie müssen auch noch angepasst werden.

    Grüße

    Torsten

    Blaumann

    • Frisch an Board
    • Beiträge: 59
    Module flat und freeamount kopieren
    Antwort #2 am: 05. Juni 2011, 14:07:22
    Hallo Torsten,
    schon mal Danke für die super schnelle Antwort.
    Ja, hatte genau diese Anleitung und habe die Module  angepasst so wie dort beschrieben wird.

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Module flat und freeamount kopieren
    Antwort #3 am: 05. Juni 2011, 19:59:29
    Das klingt für mich, als hättest du einen Fehler bei der Bearbeitung der Versandmodule gemacht, die für das Kopieren notwendig ist.

    Poste mal bitte den Code.

    Grüße

    Torsten

    Blaumann

    • Frisch an Board
    • Beiträge: 59
    Module flat und freeamount kopieren
    Antwort #4 am: 06. Juni 2011, 14:48:57
    Hallo Torsten,

    das Problem 1 konnte ich beheben. Habe den gesamten Vorgang noch einmal wiederholt, nachdem ich alles gelöscht und auch die Datenbank in einem früherem Zustand gesetzt habe. Beim ersten Versuch gab es offensichtlich einen Konflikt zwischen den vorhandenen und installierten Modulen.

    Problem 2 ist allerdings geblieben. Beim Überschreiten des Mindestbestellwerts erhält der Kunde die Auswahlmöglichkeit zwischen "Bezahlen" und "Versandkostenfrei" und dies tritt nur bei den kopierten Modulen auf.
    Hier die beiden Module, die ich kopiert und angepasst habe.

    Pauschale Versandkosten:

    Code: PHP  [Auswählen]
    class flat2 {
        var $code, $title, $description, $icon, $enabled;

        function flat2() {
          global $order;

          $this->code = 'flat2';
          $this->title = MODULE_SHIPPING_FLAT2_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_FLAT2_TEXT_DESCRIPTION;
          $this->sort_order = MODULE_SHIPPING_FLAT2_SORT_ORDER;
          $this->icon = '';
          $this->tax_class = MODULE_SHIPPING_FLAT2_TAX_CLASS;
          $this->enabled = ((MODULE_SHIPPING_FLAT2_STATUS == 'True') ? true : false);

          if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FLAT2_ZONE> 0) ) {
            $check_flag = false;
            $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FLAT2_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
            while ($check = xtc_db_fetch_array($check_query)) {
              if ($check['zone_id'] <1) {
                $check_flag = true;
                break;
              } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
                $check_flag = true;
                break;
              }
            }

            if ($check_flag == false) {
              $this->enabled = false;
            }
          }
        }

        function quote($method = '') {
          global $order;
          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_FLAT2_TEXT_TITLE,
                                'methods' => array(array('id' => $this->code,
                                                         'title' => MODULE_SHIPPING_FLAT2_TEXT_WAY,
                                                         'cost' => MODULE_SHIPPING_FLAT2_COST)));

          if ($this->tax_class> 0) {
            $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
          }

          if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

          return $this->quotes;
        }

        function check() {
          if (!isset($this->_check)) {
            $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FLAT2_STATUS'");
            $this->_check = xtc_db_num_rows($check_query);
          }
          return $this->_check;
        }

        function install() {
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_FLAT2_STATUS', 'True', '6', '0', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_FLAT2_ALLOWED', '', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_FLAT2_COST', '5.00', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_FLAT2_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_FLAT2_ZONE', '0', '6', '0', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value,  configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_FLAT2_SORT_ORDER', '0', '6', '0', now())");
        }

        function remove() {
          xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }

        function keys() {
          return array('MODULE_SHIPPING_FLAT2_STATUS', 'MODULE_SHIPPING_FLAT2_COST','MODULE_SHIPPING_FLAT2_ALLOWED', 'MODULE_SHIPPING_FLAT2_TAX_CLASS', 'MODULE_SHIPPING_FLAT2_ZONE', 'MODULE_SHIPPING_FLAT2_SORT_ORDER');
        }
      }
    ?>

    Versandkostenfrei:

    Code: PHP  [Auswählen]
     class freeamount2 {
        var $code, $title, $description, $icon, $enabled;

        function freeamount2() {
          $this->code = 'freeamount2';
          $this->title = MODULE_SHIPPING_FREEAMOUNT2_TEXT_TITLE;
          $this->description = MODULE_SHIPPING_FREEAMOUNT_TEXT_DESCRIPTION;
          $this->icon ='';   // change $this->icon =  DIR_WS_ICONS . 'shipping_ups.gif'; to some freeshipping icon
          $this->sort_order = MODULE_SHIPPING_FREEAMOUNT_SORT_ORDER;
          $this->enabled = ((MODULE_SHIPPING_FREEAMOUNT_STATUS == 'True') ? true : false);
        }

        function quote($method = '') {
            global $xtPrice;

              if (( $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total()) <MODULE_SHIPPING_FREEAMOUNT_AMOUNT ) && MODULE_SHIPPING_FREEAMOUNT_DISPLAY == 'False')
              return;

          $this->quotes = array('id' => $this->code,
                                'module' => MODULE_SHIPPING_FREEAMOUNT_TEXT_TITLE);

          if ( $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total()) <MODULE_SHIPPING_FREEAMOUNT_AMOUNT )
            $this->quotes['error'] = sprintf(MODULE_SHIPPING_FREEAMOUNT_TEXT_WAY,$xtPrice->xtcFormat(MODULE_SHIPPING_FREEAMOUNT_AMOUNT,true,0,true));
          else
            $this->quotes['methods'] = array(array('id'    => $this->code,
                                                   'title' => sprintf(MODULE_SHIPPING_FREEAMOUNT_TEXT_WAY,$xtPrice->xtcFormat(MODULE_SHIPPING_FREEAMOUNT_AMOUNT,true,0,true)),
                                                   'cost'  => 0));

          if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

          return $this->quotes;
        }

        function check() {
          $check = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FREEAMOUNT_STATUS'");
          $check = xtc_db_num_rows($check);

          return $check;
        }

        function install() {
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_FREEAMOUNT_STATUS', 'True', '6', '7', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_FREEAMOUNT_ALLOWED', '', '6', '0', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_FREEAMOUNT_DISPLAY', 'True', '6', '7', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_FREEAMOUNT_AMOUNT', '50.00', '6', '8', now())");
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_FREEAMOUNT_SORT_ORDER', '0', '6', '4', now())");
        }

        function remove() {
          xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
        }

        function keys() {
          return array('MODULE_SHIPPING_FREEAMOUNT_STATUS','MODULE_SHIPPING_FREEAMOUNT_ALLOWED', 'MODULE_SHIPPING_FREEAMOUNT_DISPLAY', 'MODULE_SHIPPING_FREEAMOUNT_AMOUNT','MODULE_SHIPPING_FREEAMOUNT_SORT_ORDER');
        }
      }
    ?>

    jannemann

    • modified Team
    • Beiträge: 6.275
    • Geschlecht:
    Module flat und freeamount kopieren
    Antwort #5 am: 06. Juni 2011, 14:55:18
    Hallo Blaumann,

    es wäre besser, wenn du den Code mittels "PHP-Button" einfügst. Dann ist das ganze viel leserlicher und übersichtlicher. :-)

    Schöne Grüße,
    Jan

    web28

    • modified Team
    • Beiträge: 9.404
    Module flat und freeamount kopieren
    Antwort #6 am: 06. Juni 2011, 15:05:45
    Ich habe das mal editiert.  ;)

    Wiese wurden beim Freeamount Modul die Anleitung nicht angewendet?

    Hinter jedem FREEAMOUNT sollte ein 2 stehen.

    Falsch:

    Code: PHP  [Auswählen]
    MODULE_SHIPPING_FREEAMOUNT_TEXT_DESCRIPTION
    Richtig:

    Code: PHP  [Auswählen]
    MODULE_SHIPPING_FREEAMOUNT2_TEXT_DESCRIPTION
    Also erst einmal alles richtig ersetzen und dann "freeamount" und "freeamount2" deinstallieren und wieder installieren.

    Gruss Web28

    Blaumann

    • Frisch an Board
    • Beiträge: 59
    Module flat und freeamount kopieren
    Antwort #7 am: 06. Juni 2011, 18:57:18
    Sorry, hatte versehentlich die nicht fertig gestellte Version des Versandkostenfreien Moduls geschickt. Habe wahrscheinlich schon zu lange vorm Bildschirm gesessen und habe einfach die Dateien verwechselt. Natürlich muss es heißen "MODULE_SHIPPING_FREEAMOUNT2_TEXT_DESCRIPTION".
    Habe ich beim installierten Modul aber auch so geschrieben. Ändert aber nichts an dem Ablauf.

    wgner

    • Neu im Forum
    • Beiträge: 10
    Module flat und freeamount kopieren
    Antwort #8 am: 12. Juni 2011, 10:25:55
    Hallo,

    ich habe das selbe Problem, konnte es aber ein wenig weiter eingrenzen.
    Die "original" freeamount nutze ich für innerdeutschen Versand. Hier wird alles richtig dargestellt.

    Bei der Kopie (freeamount2) werden beide Optionen angezeigt. In der checkout_shipping.html gibt es folgende Abfrage:

    Code: PHP  [Auswählen]
    {if $SHOW_FREE_SHIPPING_TRUE}
    Könnte es sein, dass bei einem kopiertem und abgeändertem "frei Haus" Modul diese Variable nicht mehr gefüllt wird?

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Module flat und freeamount kopieren
    Antwort #9 am: 12. Juni 2011, 11:14:59
    Bitte das Versandmodul "freeamount" nicht mit dem ot_modul "Versandkosten (ot_shipping)" verwechseln, welches unter "Module" -> "Zusammenfassung" zu finden ist und bei dem man ebenfalls "Versandkostenfrei" aktivieren kann.

    Grüße

    Torsten

    web28

    • modified Team
    • Beiträge: 9.404
    Module flat und freeamount kopieren
    Antwort #10 am: 12. Juni 2011, 11:24:32
    @wgner

    Guter Hinweis, das freeamount Modul ist tatsächlich ein Sonderfall, da außer im Modul noch an anderen Codestellen geschraubt werden müsste.

    Freeamount lässt sich nach der bekannten Anleitung also leider nicht klonen. Aufgrund der Komplexivität wäre es wahrscheinlich auch einfacher, ein Zonenbehandlung in das Modul einzubauen, anstatt weitere Shopdateien zu ändern.

    Für alle geklonten Module oder neue Module (z.B. Sperrgut) gilt auch noch:
    Nachnahme funktioniert nicht, die Nachnahme Berechung kennt nur die Standardmodule

    Gruss Web28

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.369
    • Geschlecht:
    Module flat und freeamount kopieren
    Antwort #11 am: 12. Juni 2011, 11:47:49
    Seid ihr euch da sicher?! :?

    [...]
    Bei der Kopie (freeamount2) werden beide Optionen angezeigt. In der checkout_shipping.html gibt es folgende Abfrage:

    Code: PHP  [Auswählen]
    {if $SHOW_FREE_SHIPPING_TRUE}
    Könnte es sein, dass bei einem kopiertem und abgeändertem "frei Haus" Modul diese Variable nicht mehr gefüllt wird?

    Zu einem finde ich den Smarty gar nicht im Template und die Stelle, wo er definiert wird auch nicht.

    Ich hätte gedacht, dass das vom ot_modul "shipping" kommt.

    Ein kopiertes "freeamount2" Modul funktioniert bei einem Kunden von mir völlig problemlos ohne weitere Eingriffe. Er benötigte es, damit er über den gegenseitigen Ausschluss in den Kundengruppen unterschiedliche Mindestbeträge für "Versandkostenfrei" in den Kundengruppen definieren kann.

    Grüße

    Torsten

    wgner

    • Neu im Forum
    • Beiträge: 10
    Module flat und freeamount kopieren
    Antwort #12 am: 12. Juni 2011, 12:06:37
    Hallo Torsten,

    das Modul funktioniert auch. Der Unterschied zur Original "freeamount" sieht wie folgt aus (screenshots):

    Ist die Ländergruppe und der Warenwert für die "freeamount" richtig/erreicht wird NUR diese angezeigt ("table") wird ausgeblendet.

    Ist die Ländergruppe und der Warenwert für die "freeamount2" richtig/erreicht wird diese und die "table" Versandkosten für die jeweilige Ländergruppe angezeigt.

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

    web28

    • modified Team
    • Beiträge: 9.404
    Module flat und freeamount kopieren
    Antwort #13 am: 13. Juni 2011, 14:52:39
    @wgner

    Erst aus Deinem Screenshot geht hervor, dass Du die Anzeige im Warenkorb meinst. Die wird durch das Sondermodul "MODUL: Versandkosten im Warenkorb anzeigen" erzeugt. Also ist die Ursache in diesem Modul zu suchen und auch auffindbar.

    Gruss Web28

    wgner

    • Neu im Forum
    • Beiträge: 10
    Module flat und freeamount kopieren
    Antwort #14 am: 13. Juni 2011, 15:53:37
    @web28

    Sorry, dass ich mich erst jetzt melde. Ja, die Screenshots sind aus dem Warenkorb. Hatte Gestern auf "hochladen" geklickt und dachte das ich danach den Beitrag noch weiter schreiben könnte. Dieses war nicht der Fall, der Beitrag wurde direkt veröffentlicht. Leider konnte ich auch keinen weiteren Beitrag verfassen (30 Minuten Pause).

    Der Effekt in der Checkout_shipping war jedoch der selbe. Habe mir hier mit einer smarty Abfrage von gunnART (daher auch der {if $SHOW_FREE_SHIPPING_TRUE}) und "display:hidden" beholfen. Dieses war eine recht große Fummelei, und diese wollte für die Screenshots nicht rückgängig machen (Es gibt nur noch gelegentlich Probleme wenn der Kunde die Lieferanschrift in Ausland abändert).

    Werde es Heute aber mal alternativ mit nur einer "freeamount" und der "ot_shipping" probieren. Das sollte ja irgendwie zu lösen sein.

    Einen angenehmen Abend wünscht
    Florian

    3 Antworten
    3465 Aufrufe
    05. Oktober 2010, 20:49:45 von Tomcraft
    7 Antworten
    2001 Aufrufe
    22. April 2020, 07:38:34 von karsta.de
    7 Antworten
    5254 Aufrufe
    09. Juli 2016, 14:31:01 von Teratek
    14 Antworten
    9594 Aufrufe
    05. Januar 2012, 17:16:05 von Tomcraft
               
    anything