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: Sperrgut Modul 3 Plus für modified eCommerce Shopsoftware

    JZ_Aqua

    • Schreiberling
    • Beiträge: 374
    • Geschlecht:
    Hallo noRiddle
    Super Sache, vielen Dank für Deine Arbeit, Hilfe und das bereitstellen.

    Angeal

    • Fördermitglied
    • Beiträge: 411
    • Geschlecht:
    Hallo,
    ich habe mal mein altes Sperrgut Modul deinstalliert und das neue von noRiddle installiert.
    Funktioniert alles soweit.

    Mir ist nur folgendes in der checkout_confirmation.php aufgefallen.

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

    Wenn ich dort dann auf "HILFE" klicke, gehts per Popup auf die 404.

    Ist das so gewollt? Ich denke nicht, oder?
    Der Link sieht übrigens wie folgt aus:
    /popup_help.php?type=order_total&modul=ot_sperrgut&lng=german

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Nicht gut ? :-D

    Ändere mal bitte in der /lang/german/modules/order_total/ot_sperrgut.php folgendes:
    Code: PHP  [Auswählen]
      define('MODULE_ORDER_TOTAL_SPERRGUT_TITLE', 'Sperrgutkosten'.MODULE_ORDER_TOTAL_SPERRGUT_HELP_LINK);
      define('MODULE_ORDER_TOTAL_SPERRGUT_DESCRIPTION', 'Sperrgutkosten einer Bestellung');

    zu
    Code: PHP  [Auswählen]
      define('MODULE_ORDER_TOTAL_SPERRGUT_TITLE', 'Sperrgutkosten');
      define('MODULE_ORDER_TOTAL_SPERRGUT_DESCRIPTION', 'Sperrgutkosten einer Bestellung'.MODULE_ORDER_TOTAL_SPERRGUT_HELP_LINK);

    In den anderen installierten Sprachen analog.
    *EDIT*: Quatsch, habe den "[Hilfe]"-Link in Englisch gar nicht eingebaut, also nur in Deutsch machen.

    Ich sagte ja, irgendwas übersieht man immer.
    Danke für's Testen.

    Gruß,
    noRiddle

    [EDIT Tomcraft 27.08.2013: Modul in Beitrag 1 aktualisiert.]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.178
    • Geschlecht:
    Ich habe die englische Übersetzung mal im Modul in Beitrag 1 mit eingefügt. ;-)

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Vielen Dank Tomcraft.
    Da du noch etwas übersehen hattest (query string: ?lng=german anstatt ?lng=english),
    habe ich das verbessert und das Paket erneut geschnürt, es kann also einfach ausgetauscht werden.
    Habe auch die Screenshots ins Paket gelegt.

    Vielen Dank nochmals.

    Gruß,
    noRiddle

    *EDIT*
    Außerdem fand ich es doch besser wenn der "HELP"-Link im Backend immer oben sichtbar ist und habe deshalb für die checkout_confirmation-Seite eine eigene Sprach-Konstante definiert.
    Somit wird auf der checkout_confirmation nicht mehr $this->title benutzt sondern eben eine eigene Konstante.

    [EDIT Tomcraft 27.08.2013: Modul in Beitrag 1 aktualisiert.]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.178
    • Geschlecht:
    Ich habe mal noch die Umlaute gegen Entities ersetzt. ;-)

    Grüße

    Torsten

    Angeal

    • Fördermitglied
    • Beiträge: 411
    • Geschlecht:
    Ich hab da noch was.
    Im Admin habe ich beim Modul die Funktion "Auf checkout_shipping anzeigen" auf true stehen.
    In den Hinweisen steht, das dann ein Link eingeblendet werden soll (außer bei Versandkostenfrei & Abholung)

    Ich hab nun einen Artikel der z.B. vom Versandmodul "flat" bedient wird. Allerdings wird hier in der checkout_shipping kein Link bzgl. Sperrgut angezeigt.

    Ebenso wird der Sperrgutzuschlag ja auch berechnet (bzw. in der checkout_confirmation ausgewiesen) wenn die Bestellung versandkostenfrei ist. Sollte der Link dann nicht auch in der checkout_shipping angezeigt werden?

    Bei mir wird er jedenfalls bei keinem Szenario angezeigt...

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Einbaufehler ?
    Hab's gerade nochmal in meinem Demo-Shop getestet, geht alles perfekt.
    Außerdem:
    Wenn der Versandkostenfrei-Betrag erreicht ist, dürfte kein Sperrgutzuschlag berechnet werden (auf der checkout_confirmation).
    Dafür ist folgender Code in der ot_sperrgut-Klasse (/includes/modules/order_total/ot_sperrgut):
    Code: PHP  [Auswählen]
    if ($order->info['shipping_class'] == 'selfpickup_selfpickup' || $order->info['shipping_class'] == 'freeamount_freeamount') return; // exclude also free shipping, noRiddle

    Allerdings muß dafür das Modul freeamount benutzt werden (Module => Versandart) und nicht ot_shipping in Module =>  Zusammenfassung.
    Da gibt's noch 'ne Ungereimtheit im Shopsystem, es sollte nur ein "Versandkostenfrei"-Modul geben.

    Außerdem sollte man den anzulegenden Content gut formulieren damit der Kunde sich nicht wundert wie denn die Sperrgutkosten berechnet oder nicht berechnet werden.

    @Tomcraft
    Danke dir, entities hatte ich vergessen  8-)
    Ich speichere die lang-Dateien immer in der richtigen Codierung ab, da sind die Entities dann nicht nötig ;-).

    Gruß,
    noRiddle

    Angeal

    • Fördermitglied
    • Beiträge: 411
    • Geschlecht:
    Stimmt. Es hatte was mit dem Versandkostenfrei Modul zu tun.

    Das Problem was ich jedoch mit dem freeammount habe ist, das wenn ich über meinen Versandkostenfrei Betrag komme, werden immer noch die anderen Versandarten angezeigt. Das ist an sich ja total überflüssig.

    Gehört zwar jetzt nicht hier hin, aber hast du trotzdem eine Idee wie man das gelöst bekommt?

    EDIT: Wie regel ich es denn wenn ich z.B. ab Betrag X Versandkostenfrei schicken möchte, jedoch Sperrgut Artikel ausschließen möchte? Dann muss ich ja schon den Weg über die ot_shipping Lösung gehen. Da wird nämlich der Sperrgut Zuschlag mit berechnet. Auch wenn es versandkostenfrei ist.

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Ja, ich weiß, das ist noch nicht gut gelöst.
    Ich aktiviere auch immer das freeamount und aktiviere ot_shipping zusätzlich um bei Erreichen des Versandkostenfrei-Betrages nur noch die Versandart "Versandkostenfrei" anzuzeigen.
    Außerdem gibt es noch diesen Bug.

    Für das Problem der beiden Versandkostenfrei-Module ist glaube ich schon was im Rohr, werde da auch nochmal drüber nachdenken.

    Wenn du Sperrgutartikel von "Versandkostenfrei" ausschließen willst, ändere das von mir zitierte
    Code: PHP  [Auswählen]
        if ($order->info['shipping_class'] == 'selfpickup_selfpickup' || $order->info['shipping_class'] == 'freeamount_freeamount') return; // exclude also free shipping, noRiddle

    in das
    Code: PHP  [Auswählen]
        if ($order->info['shipping_class'] == 'selfpickup_selfpickup') return; // exclude only selfpickup, noRiddle

    Bedenke bitte was bei gemischten Warenkörben ist, insbesondere in Hinsicht auf die von dir im Backend bei dem ot_sperrgut gewählte Berechnungsart.

    Gruß,
    noRiddle

    *EDIT*
    Dann aber beide genannten Module benutzen, freeamount und ot_shipping.

    *EDIT2*
    Eventuell geht auch folgendes
    Code: PHP  [Auswählen]
        if ($order->info['shipping_class'] == 'selfpickup_selfpickup' || ($order->info['shipping_class'] == 'freeamount_freeamount' && MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'false') return; // exclude also free shipping, noRiddle

    Dann könntest du freeamount ohne Sperrgutkosten nutzen und freeamount und ot_shipping zusammen mit Sperrgutkosten.

    heini88

    • Neu im Forum
    • Beiträge: 45
    Hallo noRiddle,
    vielen Dank für das überarbeitete Modul - war sicherlich 'ne Menge Arbeit. Werde es auch bald mal testen, allerdings in Version 1.05. Hoffe es läuft trotzdem...

    Also bin gespannt und wie gesagt, schon jetzt vielen Dank dafür!

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Re: MODUL: Sperrgut Modul 3 Plus für modified eCommerce Shopsoftware
    Antwort #146 am: 03. September 2013, 18:18:18
    Hallo, gibt ein kleines Update des sperrgut_module_admin_config.
    Es gibt nur eine Code-Optimierung in /admin/includes/functions/general.php.
    Hatte aus Faulheit in genannter Datei redundanten Code (Bildung des arays).
    Habe das zusammen mit h-h-h (gute Fahrt ;-)) überarbeitet.

    Für die also, die sich nicht das ganze neue Paket runterladen wollen sondern einfach die Optimierung einbauen möchten, hier kurz die Änderung:

    Die beiden Funktionen in /admin/includes/functions/general.php
    Code: PHP  [Auswählen]
      // BOC array for sperrgut module, noRiddle
      /**
       * xtc_cfg_pull_down_sperrgut_costs_method()
       */

      function xtc_cfg_pull_down_sperrgut_costs_method($key='') {
        $name = 'configuration[MODULE_ORDER_TOTAL_SPERRGUT_METHOD]';
        $method_array = array ();
        $method_array[] = array ('id' => '1', 'text' => ADD_UP_ALL_SPERRGUT_COSTS);
        $method_array[] = array ('id' => '2', 'text' => ADD_UP_ONE_PER_ARTICLE);
        $method_array[] = array ('id' => '3', 'text' => ONLY_ONCE_PER_SHOPPING_CART);
        return xtc_draw_pull_down_menu($name, $method_array, $key);
      }

      /**
       * xtc_get_sperrgut_method()
       *
       */

      function xtc_get_sperrgut_method($key) {
        $method_array = array ();
        $i = '';
        $method_array[] = array ('id' => '1', 'text' => ADD_UP_ALL_SPERRGUT_COSTS);
        $method_array[] = array ('id' => '2', 'text' => ADD_UP_ONE_PER_ARTICLE);
        $method_array[] = array ('id' => '3', 'text' => ONLY_ONCE_PER_SHOPPING_CART);
        $i = ($key - 1);
        return $method_array[$i]['text'];
      }
      // EOC array for sperrgut module, noRiddle

    ändern in
    Code: PHP  [Auswählen]
    // BOC array for sperrgut module, noRiddle
      /**
       * xtc_cfg_pull_down_sperrgut_costs_method()
       */

      function xtc_cfg_pull_down_sperrgut_costs_method($key='', $view=0) {
        $name = 'configuration[MODULE_ORDER_TOTAL_SPERRGUT_METHOD]';
        $method_array = array ();
        $method_array[] = array ('id' => '1', 'text' => ADD_UP_ALL_SPERRGUT_COSTS);
        $method_array[] = array ('id' => '2', 'text' => ADD_UP_ONE_PER_ARTICLE);
        $method_array[] = array ('id' => '3', 'text' => ONLY_ONCE_PER_SHOPPING_CART);
        return ($view == 1 ? $method_array[($key - 1)]['text'] : xtc_draw_pull_down_menu($name, $method_array, $key));
      }
       
      /**
      * xtc_get_sperrgut_method()
      *
      */

      function xtc_get_sperrgut_method($key) { return xtc_cfg_pull_down_sperrgut_costs_method($key, 1); }
      // EOC array for sperrgut module, noRiddle

    Außerdem wurden die beiden Einträge in /lang/SPRACHE/admin/SPRACHE.php in die
    /lang/modules/order_total/ot_sperrgut.php verlagert was in weniger Änderungen am Core-Code resultiert.

    Im Anhang die komplette neue Version.

    Gruß,
    noRiddle

    [EDIT Tomcraft 03.09.2013: Modul in Beitrag 1 aktualisiert.]

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.178
    • Geschlecht:
    Re: MODUL: Sperrgut Modul 3 Plus für modified eCommerce Shopsoftware
    Antwort #147 am: 03. September 2013, 20:38:54
    Danke dir und h-h-h! :thx:

    Ich habe mal wieder die Umlaute in den Sprachdateien und in der Anleitung korrigiert. :hust: :whistle:

    Grüße

    Torsten

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Re: MODUL: Sperrgut Modul 3 Plus für modified eCommerce Shopsoftware
    Antwort #148 am: 04. September 2013, 00:51:37
    Ja isses denn...
    Ich speichere die Sprachdateien immer in der entsprechenden Codierung ab und vergesse deshalb die Sonderzeichen, da sie dann nicht durch Entities ersetzt werden müssen, sorry.
    Hast du auch "ß" ersetzt ? ;-) (weil du schreibst "Umlaute").

    Danke Tomcraft.

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.729
    • Geschlecht:
    Re: MODUL: Sperrgut Modul 3 Plus für modified eCommerce Shopsoftware
    Antwort #149 am: 09. September 2013, 19:22:43
    Update des Moduls:
    In /admin/includes/classes/categories.php ist eine Code-Vereinfachung eingebaut worden.

    Für die die nur updaten möchten und nicht neuinstallieren:
    Der Eintrag in das Array $sql_data_array ist unnötig,
    statt dessen reicht es aus oben in der Datei bei
    Code: PHP  [Auswählen]
    define('ADD_PRODUCTS_FIELDS','products_manufacturers_model');

    das neue Feld einzutragen
    Code: PHP  [Auswählen]
    define('ADD_PRODUCTS_FIELDS','products_manufacturers_model, products_sperrgut'); // added for sperrgut module, noRiddle

    Das gilt ausschließlich für Installationen in 1.06 und aller "revisons" von 1.06 bis rev 4642.

    Gruß,
    noRiddle

    [EDIT Tomcraft 09.09.2013: Modul in Beitrag 1 aktualisiert.]