Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware
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: Bitte um Hilfe wegen Versandmodul

    AlexInAustria

    • Fördermitglied
    • Beiträge: 96
    Bitte um Hilfe wegen Versandmodul
    am: 09. Mai 2010, 12:05:51
    Hi!

    Ich bräuchte bitte Hilfe - ich habe mir den Kern eines Versandmoduls für meinen Shop angepasst und denke, dass das auch funktionieren könnte, aber ich habe keine Ahnung, was zu Beginn noch deklariert werden muss bzw. wie das Ergebnis unten rauskommen muss, damit modified eCommerce Shopsoftware den Wert übernimmt - also im Grunde genommen steht der Teil in der Mitte, nur der Anfang und das Ende fehlen mir... Mit wildem Herumprobieren und herauskopieren aus anderen Versandmodulen hat es leider nicht funktioniert...

    Hier der Teil, den ich bereits habe und wo oben und unten noch was dazu muss, von dem ich keine Ahnung habe:

    Code: PHP  [Auswählen]
    class cs_shipping {
    var $cs_shipping_type = ""; //wird beim Produkt angegeben
    var $cs_country_shipping = ""; //Land der Lieferadresse
    var $cs_total_weight = 0; //Gesamtgewicht der Sendung
    var $cs_order_total = 0; //Warenwert der Sendung
    var $cs_costs = ""; //Versandkosten --> die sollen ausgegeben werden

    //Abfrage Shipping-Typ:
    for ($i = 0, $n = sizeof($order->products); $i <$n; $i++) {
            $cs_query = xtc_db_query('SELECT products_cs_shipping_type FROM products WHERE products_id = '.(int)$order->products[$i]['id']);
            $cs_shipping_type = xtc_db_fetch_array($t_query);
    }

    //Abfrage Land der Lieferadresse:
    $cs_country_shipping = $order->delivery['country']['iso_code_2'];

    //Abfrage Gesamtgewicht:
    $cs_total_weight = $shipping_weight;

    //Abfrage Gesamtkosten:
    $cs_order_total = $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total())

    function cs_shipping() {

            if (in_array("stock"; $cs_shipping_type) == true) {

                    if ($cs_contry_shipping == "AT") {
                    $cs_costs = 25;
                    }
                    elseif ($cs_contry_shipping == "DE") {
                    $cs_costs = 50;
                    }
                    elseif (($cs_contry_shipping == "SI" || $cs_contry_shipping == "HU" || $cs_contry_shipping == "SK" || $cs_contry_shipping == "CZ")) {
                    $cs_costs = 75;
                    }
                    elseif ($cs_contry_shipping == "") {
                    $cs_costs = "no address";
                    }
                    else {
                    $cs_costs = "not allowed";
                    }
            }

            elseif ((in_array("package"; $cs_shipping_type) == true || (in_array("letter"; $cs_shipping_type) == true && $cs_total_weight> 0.3))) {
                    if ($cs_contry_shipping == "AT") {
                            if ($cs_order_total <100) {
                            $cs_costs = 6;
                            }
                            else {
                            $cs_costs = 0;
                            }
                    }
                    elseif ($cs_contry_shipping == "") {
                    $cs_costs = "no address";
                    }
                    else {
                            if ($cs_order_total <100) {
                            $cs_costs = 15;
                            }
                            elseif ($cs_order_total <250) {
                            $cs_costs = 9;
                            }
                            else {
                            $cs_costs = 0;
                            }
                    }
            }

            elseif (in_array("letter"; $cs_shipping_type) == true) {
                    if ($cs_contry_shipping == "AT") {
                    $cs_costs = 2;
                    }
                    elseif ($cs_contry_shipping == "") {
                    $cs_costs = "no address";
                    }
                    else {
                    $cs_costs = 4;
                    }
            }

            else {
                    $cs_costs = "error";
            }
    }
     
    Ich würde mich freuen, falls mir da jemand weiterhelfen könnte...

    Danke, lg, Alex



    Linkback: https://www.modified-shop.org/forum/index.php?topic=5528.0
    rechtstexte für onlineshop

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.374
    • Geschlecht:
    Bitte um Hilfe wegen Versandmodul
    Antwort #1 am: 09. Mai 2010, 17:31:27
    Hi Alex,

    vielleicht ist es einfacher, wenn du uns noch dazu schreibst, was du genau vor hast. ;-)

    Sieht ja weiter nicht so spektakulär aus bis auf die Änderungen bezüglich "_cs_".

    Grüße

    Torsten

    AlexInAustria

    • Fördermitglied
    • Beiträge: 96
    Bitte um Hilfe wegen Versandmodul
    Antwort #2 am: 09. Mai 2010, 17:51:38
    Hallo Torsten,

    jetzt bin ich aber beleidigt  :`(
    Ich habe mir solche Mühe mit dem PHP gegeben... Nach dem Anfang mit den Variablendeklarationen ist alles selbst geschrieben (inkl. Rechtschreibfehler)...

    Es geht um folgende Fälle:
    Briefversand: für gewisse Artikel erlaubt bis Gesamtgewicht von 300g.
    Paketversand: immer erlaubt, kostet preislich immer weniger, je höher der Warenwert
    Spezialversand: manche Produkte können nur mit Spezialversand versendet werden und auch nicht in alle Länder...

    Klingt kompliziert (deshalb oben die extensiven If-Schleifen) ist aber nicht so schwer, wenn man es mal gesehen hat ;-)

    Und mir geht es eher darum, das ich nicht weiß, was die Funktion in welcher Form zurückgeben muss, damit xtc etwas damit anfangen kann...

    lg, Alex

    hendrik

    • Experte
    • Beiträge: 2.038
    Bitte um Hilfe wegen Versandmodul
    Antwort #3 am: 10. Mai 2010, 06:47:29
    Brief- und Paketversand:

    Da kannst du das table-Versandmodul duplizieren (Tutorial: Kopieren eines Versandmoduls) und den Gewichten entsprechend konfigurieren.

    Für Spezialversand:

    Besorge dir das Modul "artikelabhängige Versandarten". Bei den Spezialversandartikeln schließt du o.g. Versandmodule aus.

    Wenn du Versandmodule anpassen willst.
    Jedes Versandmodul (includes/modules/shipping/blablabla.php) ist eine Klasse (class) mit einem Konstruktor (function <class name>). Darin werden Prüfungen vorgenommen ob das Modul für die vorliegende Bestellung geeignet ist und dem Benutzer zur Auswahl steht. Dem entsprechend wird die Variable $this->enabled auf true oder false gesetzt.

    Code: PHP  [Auswählen]
    class beispiel{
      function beispiel() {    // Konstruktor
        // ... Initialisierungen
        // ... Prüfung Modul geeignet
        if( $geeignet ) {
          $this->enabled = true;
        } else {
          $this->enabled = false;
        }
      }
    Nimm dir das table-Modul zur Vorlage. Das ist relativ simpel und guut geeignet es umzuschreiben für unterschiedliche Anwendungsfälle.

    Gruß
    Hen

    //Edit
    Für die Prüfung ob Modul geeignet (zur Auswahl stehend) findest du in den globalen Variablen $order und $_SESSION['cart'] (Klassen order und shopping_cart) Informationen und Prüf-"Methoden" womit du die vorliegende Bestellung analysieren kannst.

    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware
    5 Antworten
    2533 Aufrufe
    18. März 2017, 15:19:37 von MasterChief
    2 Antworten
    2594 Aufrufe
    26. Dezember 2015, 21:54:11 von recki
    1 Antworten
    2290 Aufrufe
    24. Januar 2013, 23:27:00 von xxhappyxx
               
    anything