rechtstexte für onlineshop
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: Zusatzfelder in der Artikel-Bearbeitung für versandkostenfreie Artikel

    Barcelo

    • Mitglied
    • Beiträge: 103
    • Geschlecht:
    Moin zusammen,

    vielen Dank an Funmobil und Tomcraft & jannemann für die Erweiterung und an astaller, billybob und Ranjid, für die Anpassung.  :thx:

    Mir war eben bei der Implementierung in der Anleitung noch ein Fehler aufgefallen:

    Code: PHP  [Auswählen]
    ######################################
    ### 6. Dateien anpassen (Optional) ###
    ######################################

    ================================================================================
    - checkout_process.php
    ================================================================================

    "checkout_process.php" ist hier falsch und müsste wohl lauten:
    Code: PHP  [Auswählen]
    ######################################
    ### 6. Dateien anpassen (Optional) ###
    ######################################

    ================================================================================
    - /admin/includes/classes/import.php
    ================================================================================

    Zudem habe ich die englischen Übersetzungen etwas angepasst:

    english.php
    Code: PHP  [Auswählen]
    define('FREE_SHIPPING_TITLE','Shipping costs');
    define('FREE_SHIPPING_DESCRIPTION','These item(s) will ship with free ground shipping!');
    define('SHIPPING_NO_COSTS_CART', 'Free Shipping');
    define('SHIPPING_NO_COSTS_PRODUCT', 'Free Shipping');
    define('SHIPPING_MAXIMUM_CART','You can order a maximum quantity of {xx} of this product!');
    define('PRODUCT_MAXIMUM_AMOUNT_EXCEEDED','You have added an unallowed quantity of an product to the shopping cart. The quantity was automatically reduced to the maximum availability!');

    lang_english.conf
    Code: PHP  [Auswählen]
    text_gccover = 'The total amount is 0.00 Euro. You only need to accept our terms and continue the ordering process by clicking next'

    Grüße,
    Barcelo

    Edit/Nachtrag:
    Kann mir evtl. jemanden sagen ob und wenn ja wie ich im Warenkorb in der order_details.html abfragen kann, ob sich ein versandkostenfreier Artikel oder ggf. nur versandkostenfreie Artikel befinden?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    Diese smarty Funktion kann das und noch viel mehr: Lieferung versandkostenfrei - FreeShippingData für xt:Commerce

    Barcelo

    • Mitglied
    • Beiträge: 103
    • Geschlecht:
    Bonsai, danke Dir - diese Smarty-Funktion habe ich implementiert und genau um die Ausgabe geht es  ;-)

    Duing  :-? Ich schau mir mal die function.FreeShippingData.php an und versuche die entsprechend zu erweitern.

    Gruß,
    Barcelo

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    Eine erweiterte Version ... eventuell passt die besser
    Code: PHP  [Auswählen]
    <?php

    // -----------------------------------------------------------------------------------------
    //      FreeShippingData 4 xt:Kommääärdz / v3.04 SP2.1
    // -----------------------------------------------------------------------------------------
    //      by Gunnar Tillmann / http://www.gunnart.de
    //      v1.2c / Juni 2008
    //      Mehr Infos: http://www.gunnart.de?p=368
    // -----------------------------------------------------------------------------------------
    //      Zeigt die Grenzen bis zum versandkostenfreien Einkauf an und erzeugt Smarty-Tags
    //      fürs Template. Welche? Zum Kontrollieren mal Folgendes ins Template schreiben:
    // -----------------------------------------------------------------------------------------
    /*

            {FreeShippingData to=kontrolle}
            <pre>{php} print_r($this->_tpl_vars['kontrolle']);{/php}</pre>

    */

    // -----------------------------------------------------------------------------------------
    //      HINWEIS: Wenn "ot_shipping" und "freeamount" gleichzeitig aktiviert sind,
    //      werden die Angaben aus ot_shipping genommen.
    //      Dieses Verhalten kann in der Funktion FreeShippingType (ab Zeile 95) geändert werden.
    //      Dazu einfach die Reihenfolge ändern und gut is ...
    // -----------------------------------------------------------------------------------------
    //      Aber eigentlich ist es nicht sinnvoll, beide Varianten gleichzeitig zu aktivieren.
    //      Also besser lassen. :-)
    // -----------------------------------------------------------------------------------------



    // -----------------------------------------------------------------------------------------
    //      brauchen wir ...
    // -----------------------------------------------------------------------------------------
            if(!function_exists('xtc_get_countriesList')) {
                    require_once(DIR_FS_INC.'xtc_get_countries.inc.php');
            }
    // -----------------------------------------------------------------------------------------


    // -----------------------------------------------------------------------------------------
    //      $Zones aufräumen.
    // -----------------------------------------------------------------------------------------
            function ZoneArrayClean($Zones=array()) {
                    $return = false;
                    foreach($Zones as $Zone)
                            $return[] = trim(preg_replace("/[[:alpha:]]/",'',$Zone));
                    return $return;
            }
    // -----------------------------------------------------------------------------------------


    // -----------------------------------------------------------------------------------------
    //      Land des Shops / Land der Standard-Adresse
    // -----------------------------------------------------------------------------------------
            function StoreCountry() {
                    return xtc_get_countriesList(STORE_COUNTRY,true);
            }
    // -----------------------------------------------------------------------------------------
            function CustomersCountry() {
                    if (isset($_SESSION['customer_country_id'])) {
                            return xtc_get_countriesList($_SESSION['customer_country_id'],true);
                    }
                    return false;
            }
    // -----------------------------------------------------------------------------------------



    // -----------------------------------------------------------------------------------------
    //      Ländercode der Liefer-Adresse ermitteln, ersatzweise Standard-Adresse
    //      $_SESSION['delivery_zone'] ist nämlich erst ab dem ersten Klick auf "zur Kasse" gefüllt
    // -----------------------------------------------------------------------------------------
            function DeliveryZone($CustomersCountry) {
                    if (isset($_SESSION['country'])) {
                            $delivery_country = xtc_get_countriesList($_SESSION['country'],true); // pulldown im Warenkorb
                            return trim(preg_replace("/[^a-zA-Z]/",'',$delivery_country['countries_iso_code_2']));
                    } elseif(isset($_SESSION['delivery_zone'])) {
                            return trim(preg_replace("/[[:alpha:]]/",'',$_SESSION['delivery_zone']));
                    } elseif(is_array($CustomersCountry)) {
                            return trim(preg_replace("/[[:alpha:]]/",'',$CustomersCountry['countries_iso_code_2']));
                    }
                    return false;
            }
    // -----------------------------------------------------------------------------------------



    // -----------------------------------------------------------------------------------------
    //      "Art" der aktivierten versandkostenfreien Lieferung ermitteln
    // -----------------------------------------------------------------------------------------
    //      a) Im Admin-Bereich unter "Zusammenfassung" (ot_shipping)
    //      b) Im Admin-Bereich unter "Versandart" (freeamount)
    // -----------------------------------------------------------------------------------------
    //      Sind beide Module aktiv, hat hier ot_shipping den Vorrang. Wenn's anders sein soll,
    //      einfach die Reihenfolge der "if"-Klammern ändern. Das wirkt sich dann auf den gesamten
    //      Rest von "function.FreeShippingData.php" aus.
    // -----------------------------------------------------------------------------------------
            function FreeShippingType() {
                    $DeliveryZone= DeliveryZone(CustomersCountry());
                    if(strtolower(MODULE_SHIPPING_FREEAMOUNT3_STATUS)=='true') {
                            $Zones = trim(MODULE_SHIPPING_FREEAMOUNT3_ALLOWED);
                            if(empty($Zones) || !$DeliveryZone) {
                                    //something wrong
                            } else {
                                    $Zones = explode(',',$Zones);
                                    ZoneArrayClean($Zones);
                                    if(in_array($DeliveryZone,$Zones)) {
                                            return 'freeamount3';
                                    }
                            }
                    }
                    if(strtolower(MODULE_SHIPPING_FREEAMOUNT2_STATUS)=='true') {
                            $Zones = trim(MODULE_SHIPPING_FREEAMOUNT2_ALLOWED);
                            if(empty($Zones) || !$DeliveryZone) {
                                    //something wrong
                            } else {
                                    $Zones = explode(',',$Zones);
                                    ZoneArrayClean($Zones);
                                    if(in_array($DeliveryZone,$Zones)) {
                                            return 'freeamount2';
                                    }
                            }
                    }
                    if(strtolower(MODULE_SHIPPING_FREEAMOUNT_STATUS)=='true') {
                            return 'freeamount';
                    }
                    if(strtolower(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING)=='true') {
                            return 'ot_shipping';
                    }
                    return false;
            }
    // -----------------------------------------------------------------------------------------



    // -----------------------------------------------------------------------------------------
    //      Prüfen, ob versandkostenfreie Lieferung generell erlaubt ist
    // -----------------------------------------------------------------------------------------
            function FreeShippingAllowed($Type=false,$CustomersCountry,$StoreCountry,$DeliveryZone) {      
            // -------------------------------------------------------------------------------------
                    if($Type=='ot_shipping') {
                            if(!$DeliveryZone || MODULE_ORDER_TOTAL_SHIPPING_DESTINATION=='both') {
                                    return true;
                            } else {
                                    if(MODULE_ORDER_TOTAL_SHIPPING_DESTINATION=='national' && $DeliveryZone==$StoreCountry['countries_iso_code_2']) {
                                            return true;
                                    } elseif(MODULE_ORDER_TOTAL_SHIPPING_DESTINATION=='international' && $DeliveryZone!=$StoreCountry['countries_iso_code_2']) {
                                            return true;
                                    }
                            }
                            return false;
                    }
            // -------------------------------------------------------------------------------------
                    if($Type=='freeamount') {
                            $Zones = trim(MODULE_SHIPPING_FREEAMOUNT_ALLOWED);
                            if(empty($Zones) || !$DeliveryZone) {
                                    return true;
                            } else {
                                    // Zonen nur mit Komma trennen,
                                    // Versehentliche Leerzeichen etc. können mit ZoneArrayClean abgefangen
                                    // werden. Ist aber erstmal auskommentiert ...
                                    // Also Leute, lieber büschn aufpassen bei der Dateneingabe :-)
                                    $Zones = explode(',',$Zones);
                                    ZoneArrayClean($Zones);
                                    if(in_array($DeliveryZone,$Zones)) {
                                            return true;
                                    }
                            }
                    }
                    if($Type=='freeamount2') {
                            $Zones = trim(MODULE_SHIPPING_FREEAMOUNT2_ALLOWED);
                            if(empty($Zones) || !$DeliveryZone) {
                                    return true;
                            } else {
                                    // Zonen nur mit Komma trennen,
                                    // Versehentliche Leerzeichen etc. können mit ZoneArrayClean abgefangen
                                    // werden. Ist aber erstmal auskommentiert ...
                                    // Also Leute, lieber büschn aufpassen bei der Dateneingabe :-)
                                    $Zones = explode(',',$Zones);
                                    ZoneArrayClean($Zones);
                                    if(in_array($DeliveryZone,$Zones)) {
                                            return true;
                                    }
                            }
                    }
                    if($Type=='freeamount3') {
                            $Zones = trim(MODULE_SHIPPING_FREEAMOUNT3_ALLOWED);
                            if(empty($Zones) || !$DeliveryZone) {
                                    return true;
                            } else {
                                    // Zonen nur mit Komma trennen,
                                    // Versehentliche Leerzeichen etc. können mit ZoneArrayClean abgefangen
                                    // werden. Ist aber erstmal auskommentiert ...
                                    // Also Leute, lieber büschn aufpassen bei der Dateneingabe :-)
                                    $Zones = explode(',',$Zones);
                                    ZoneArrayClean($Zones);
                                    if(in_array($DeliveryZone,$Zones)) {
                                            return true;
                                    }
                            }
                    }
            // -------------------------------------------------------------------------------------
                    return false;
            }
    // -----------------------------------------------------------------------------------------



    // -----------------------------------------------------------------------------------------
    //      Versandkostenfrei-Grenze ermitteln
    // -----------------------------------------------------------------------------------------
            function FreeShipping($Type=false) {
                    // preg_replace - Falls weitere Buchstaben außer dem Zahlenwert mit reingerutscht sind.
                    if($Type=='ot_shipping') {
                            return preg_replace("/[^0-9|.]/", '', MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER);
                    }
                    if($Type=='freeamount') {
                            return preg_replace("/[^0-9|.]/", '', MODULE_SHIPPING_FREEAMOUNT_AMOUNT);
                    }
                    if($Type=='freeamount2') {
                            return preg_replace("/[^0-9|.]/", '', MODULE_SHIPPING_FREEAMOUNT2_AMOUNT);
                    }
                    if($Type=='freeamount3') {
                            return preg_replace("/[^0-9|.]/", '', MODULE_SHIPPING_FREEAMOUNT3_AMOUNT);
                    }
                    return false;  
            }
    // -----------------------------------------------------------------------------------------



    // -----------------------------------------------------------------------------------------
    //      Smarty-Tags basteln
    // -----------------------------------------------------------------------------------------
            function FreeShippingData() {
           
                    global $xtPrice;
           
                    $CartContent = get_object_vars($_SESSION['cart']);
                   
                    $Data['CUSTOMERS_COUNTRY']                              = CustomersCountry();
                    $Data['STORE_COUNTRY']                                  = StoreCountry();
                    $Data['DELIVERY_ZONE']                                  = DeliveryZone($Data['CUSTOMERS_COUNTRY']);
           
                    $Data['CART_BRUTTO_VAL']                                = $CartContent['total'];
                    $Data['CART_BRUTTO']                                    = $xtPrice->xtcFormat($Data['CART_BRUTTO_VAL'],true,0,true);
                    $Data['CART_NETTO_VAL']                                 = $CartContent['total']-$_SESSION['cart']->show_tax(false);
                    $Data['CART_NETTO']                                             = $xtPrice->xtcFormat($Data['CART_NETTO_VAL'],true,0,true);
                   
                    $Data['FREE_SHIPPING_TYPE']                             = FreeShippingType();
                   
                    if($Data['FREE_SHIPPING_TYPE']) {

                            $Data['FREE_SHIPPING_ALLOWED']          = FreeShippingAllowed($Data['FREE_SHIPPING_TYPE'],$Data['CUSTOMERS_COUNTRY'],$Data['STORE_COUNTRY'],$Data['DELIVERY_ZONE']);
                            $Data['FREE_SHIPPING_VAL']                      = FreeShipping($Data['FREE_SHIPPING_TYPE']);
                            $Data['FREE_SHIPPING']                          = $xtPrice->xtcFormat($Data['FREE_SHIPPING_VAL'],true,0,true);

                    } else {

                            $Data['FREE_SHIPPING_ALLOWED']          = false;
                            $Data['FREE_SHIPPING_VAL']                      = false;
                            $Data['FREE_SHIPPING']                          = false;

                    }
                   
                    if($Data['FREE_SHIPPING_ALLOWED']) {
                   
                            // HINWEISE:
                            // -->  ot_shipping ermittelt für "steuerfreie" Kunden die Grenze ab Nettowert,
                            //              für "steuerpflichtige" Kunden die Grenze ab Bruttowert.
                            // -->  freeamount nimmt für alle Kundengruppen den Bruttowert als Grundlage
                           
                            if($Data['FREE_SHIPPING_TYPE']=='ot_shipping') {
                                    if($_SESSION['customers_status']['customers_status_show_price_tax']==1) {
                                            $Missing = $Data['FREE_SHIPPING_VAL']-$Data['CART_BRUTTO_VAL'];
                                            $Data['FREE_SHIPPING_TAX']      = true;
                                    } elseif($_SESSION['customers_status']['customers_status_show_price_tax']==0) {
                                            $Missing = $Data['FREE_SHIPPING_VAL']-$Data['CART_NETTO_VAL'];
                                            $Data['FREE_SHIPPING_TAX']      = false;
                                    }
                            }
                            if($Data['FREE_SHIPPING_TYPE']=='freeamount') {
                                    $Missing = $Data['FREE_SHIPPING_VAL']-$Data['CART_BRUTTO_VAL'];
                                    $Data['FREE_SHIPPING_TAX']              = true;
                            }

                            if($Data['FREE_SHIPPING_TYPE']=='freeamount2') {
                                    $Missing = $Data['FREE_SHIPPING_VAL']-$Data['CART_BRUTTO_VAL'];
                                    $Data['FREE_SHIPPING_TAX']              = true;
                            }

                            if($Data['FREE_SHIPPING_TYPE']=='freeamount3') {
                                    $Missing = $Data['FREE_SHIPPING_VAL']-$Data['CART_BRUTTO_VAL'];
                                    $Data['FREE_SHIPPING_TAX']              = true;
                            }

                            if($Missing < 0) {
                                    $Missing = 0; // Wenn kleiner Null, fehlt nix mehr ...
                            }
                           
                            $Data['FREE_SHIPPING_MISSING_VAL']      = $Missing;
                            $Data['FREE_SHIPPING_MISSING']          = $xtPrice->xtcFormat($Missing,true,0,true);
           
                    } else {
           
                            $Data['FREE_SHIPPING_MISSING_VAL']      = false;
                            $Data['FREE_SHIPPING_MISSING']          = false;
                            $Data['FREE_SHIPPING_TAX']                      = false;
           
                    }
                   
                    // Soll "fehlt noch"-Text gezeigt werden?
                    if($Data['CART_BRUTTO_VAL'] > 0 && $Data['FREE_SHIPPING_ALLOWED'] && $Data['FREE_SHIPPING_MISSING_VAL'] > 0) {
                            $Data['SHOW_FREE_SHIPPING_MISSING']     = true;
                    } else {
                            $Data['SHOW_FREE_SHIPPING_MISSING']     = false;
                    }
                   
                    // Ist der Versand versandkostenfrei?
                    if($Data['FREE_SHIPPING_ALLOWED'] && $Data['FREE_SHIPPING_MISSING_VAL'] == 0) {
                            $Data['SHOW_FREE_SHIPPING_TRUE']        = true;
                    } else {
                            $Data['SHOW_FREE_SHIPPING_TRUE']        = false;
                    }
                           
                    return $Data; // <-- Data-dadaaa! ((Los! Fanfare dabei vorstellen!))
            }
    // -----------------------------------------------------------------------------------------



    // -----------------------------------------------------------------------------------------
    //      Smarty-Hauptfunktion / Ausgabe ans Template
    // -----------------------------------------------------------------------------------------
            function smarty_function_FreeShippingData($Params=array(), &$smarty) {
           
                    $FreeShippingData = FreeShippingData();
                   
                    //echo '<pre>'; print_r($FreeShippingData); echo '</pre>'; // <-- Kontroll-Ausgabe
           
                    $to = trim($Params['to']);

                    if(!empty($to)) {
                            $smarty->clear_assign($to);  
                            $smarty->assign($to,$FreeShippingData);
                    } else {
                            $smarty->assign($FreeShippingData);
                    }

            }
    // -----------------------------------------------------------------------------------------

    ?>

    Barcelo

    • Mitglied
    • Beiträge: 103
    • Geschlecht:
    Bonsai, danke Dir erneut!  :thx:
    Werde die Dateien vergleichen und probieren. Sollte ich das hin bekommen, werde ich es hier teilen.

    Gruß,
    Barcelo

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.181
    • Geschlecht:
    Ich habe in Beitrag 1 mal ein Modul-Paket für Shopversion 2.0.0.0 rev 9678 angehängt.

    Grüße

    Torsten

    web28

    • modified Team
    • Beiträge: 9.404
    Das Modul enthält Fehler!

    Wenn eine SQL Abfrage mit xtDBquery() ausgeführt wird bentigen alle nachfolgenen Verarbeitungenfunktionen xtc_db_... den 2. Parameter true!!!

    Beispiel:

    Code: PHP  [Auswählen]
    xtc_db_fetch_array($free_shipping_products_query,true)

    Ansonsten funktioniert das mit der Shopeinstellung DB_CACHE = true nicht!

    Gruss Web28

    prizzer

    • Neu im Forum
    • Beiträge: 46
    Gibt es für das Modul auch eine aktuelle Installationsanleitung für mod 2.0? Die Anleitung im Archiv für mod 2.0 ist veraltet.

    prizzer

    • Neu im Forum
    • Beiträge: 46
    Aus Installationsanleitung.txt für mod 2.0.0.0 r9678:

    Zitat
    ###########################
    ### 5. Dateien anpassen ###
    ###########################

    ================================================================================
    - checkout_process.php
    ================================================================================
    SUCHEN NACH:
    if ((xtc_not_null(MODULE_PAYMENT_INSTALLED)) && (!isset ($_SESSION['payment']))) {

    ERSETZEN MIT:
    // BOF - astaller - 2013.10.15 - Kostenloser Versand für Artikel
    /* ORIGINAL
    if ((xtc_not_null(MODULE_PAYMENT_INSTALLED)) && (!isset ($_SESSION['payment']))) {
    */
    if ((xtc_not_null(MODULE_PAYMENT_INSTALLED)) && (!isset ($_SESSION['payment'])) && ($order->info['total'] > 0)) {
    // EOF - astaller - 2013.10.15 - Kostenloser Versand für Artikel

    Diese Zeile lässt sich in mod 2.0.0.0 r9678 und mod 2.0.1.0 r10403 in

    Zitat
    includes/checkout_requirements.php

    finden.

    Code: PHP  [Auswählen]
    // from checkout_process / checkout_payment_iframe
    if ($checkout_position[$current_page] >= 4) {
      if (xtc_not_null(MODULE_PAYMENT_INSTALLED) && !isset($_SESSION['payment'])) {
        xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
      }
    }

    Zudem sind weitere Anpassungen teilweise obsolet (z.B. für products_new.php und specials.php). Ich hatte vor, das Modul in mod 2.0.1.0 r10403 zu integrieren, es jedoch nicht zu Ende gebracht. Einige Änderungen greifen recht weit ins System ein, so dass die Updatefähigkeit des Systems leider darunter leidet.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.147
    • Geschlecht:
    Wenn man das auf 2.x bringt .... das wäre es wirklich klasse wenn
    1) Es auch bei Paypal Checkout geht. (das fehlte als ich das mal für eine 1.06 brauchte)
    2) Man noch konfigurieren könnte in welchem Land versandkostenfrei ist. (Auch einen Artikel für 120€ schickt man nicht gerne versandkostenfrei zur Amundsen-Scott Forschungstation in der Antarktis. Die haben Internet dort!!!)

    prizzer

    • Neu im Forum
    • Beiträge: 46
    Ich erstelle gerade eine Version des Moduls für 2.0.1.0 r10403. Im Produkt lassen sich optional dann die Länderküzel (DE, AT, CH, ...) hinterlegen. Anhand dieser Eingabe wird dann geprüft, ob das Produkt versandkostenfrei in diese Länder geliefert werden kann.

    Es ist das erste Modul, welches ich für die v2.0.x portiere. Deshalb kann es noch ein wenig dauern.

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.851
    • Geschlecht:
    Hört sich doch gut an  :thumbs:

    prizzer

    • Neu im Forum
    • Beiträge: 46
    So, ich hatte die letzten Tage etwas Zeit an dem Modul zu arbeiten. Feedback ist willkommen :)

    Siehe README.md bzgl. Installation und Anleitung.

    [EDIT Tomcraft 14.12.2016: Modul in Beitrag 1 ergänzt.]

    prizzer

    • Neu im Forum
    • Beiträge: 46
    Es gibt ein kleines Update:

    Im Versandmodul kann man nun angeben, ob man "gemischte Artikel" erlauben möchte. D.h., wenn sich ein Artikel mit dem "free_shipping"-Flag und ein Artikel ohne "free_shipping"-Flag im Warenkorb befinden, dann gilt die Versandkostenfreiheit für beide Produkte. Standardmäßig sind gemischte Artikel nicht erlaubt.

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

    web28

    • modified Team
    • Beiträge: 9.404
    Erst einmal sehr großes Lob!

    Alles Beispielhaft mit Hooks und Klassenerweiterungen umgesetzt.  :thumbs:

    Bei der SQL sollte aber DEFAULT CHARSET=utf8; unbedingt raus.

    Tipp:
    Wenn man diese SQL in das admin/backups Verzeichnis lädt kann man diese mit Wiederherstellen ausführen.
    Das sollte in der Anleitung ergänzt werden.

    Gruss Web28
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    6 Antworten
    6383 Aufrufe
    13. März 2014, 14:01:10 von eklis
    2 Antworten
    2807 Aufrufe
    01. August 2012, 09:22:18 von ea_neptun
    5 Antworten
    4228 Aufrufe
    21. Dezember 2010, 15:41:27 von Tomcraft
               
    anything