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: Versandkosten "zzgl." in "inkl." autom. ändern wenn Warenwert über 100€ liegt?

    alisema

    • Neu im Forum
    • Beiträge: 38
    Hi Leute,
    ich habe dazu noch eine Frage...
    Ich möchte auch gerne das zzgl. in inkl. ändern aaaber nicht bei Waren über 100€ sondern je nach Einstellung.

    z.B. habe ich folgende Einstellung bei dp Modul:
    Zitat
    DP Zone 6 Shipping Table
    0:0.00,1:4.90,1000:29.95
    Erklärung: 0kg=0€, 1-1000kg=4,90€, ab 1000kg= 29,95€
    Somit kann ich beim einstellen des Produkt zwischen 3 verschiedenen Versandkosten wählen.
    (dazu missbrauche ich eben die Gewichtsangaben als Versandkosten)

    So meine Frage:
    Wie bekomme ich jetzt die "product_info" dazu automatisch zu erkennen ob zzgl. oder inkl. Versandkosten? Ich kann ja nicht einfach

    Code: PHP  [Auswählen]
    {if $PRODUCTS_PRICE_PLAIN>100}KOSTENLOSER VERSAND{/if}
     
    nehmen da die Produktkosten hierbei egal sind.

    Kann mir jemand dazu einen Rat geben?

    ibz

    • Neu im Forum
    • Beiträge: 6
    array auslesen:

    Code: PHP  [Auswählen]
    $shipping_dp_cost_6 = explode(',',MODULE_SHIPPING_DP_COST_6);
    $shipping_dp_cost_6 = explode(':',$shipping_dp_cost_6[0]);
     
    aber eigentlich sehr sonderbarer ansatz. warum wird nicht MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER und $products_price['plain'] verwendet?
    einfach if/else dahinter und fertig.

    bei b2b sollte man aber auch noch daran denken, dass es $_SESSION['customers_status'] und
    $_SESSION['customers_status_show_price_tax'] gibt.

    straubmedia

    • Neu im Forum
    • Beiträge: 2
    Hi, Danke für den Hack. Funktioniert eigentlich ganz gut, nur habe ich das Problem, dass bei Produkten>100 als Angebot UND bei Produkten>100 mit UVP-Anzeige der Hack nicht funktioniert und dann wieder zzgl. statt inkl. steht.

    Also es funktioniert nur wenn ich den Preis bei den Nutzern (Gast, neuer Kunde, Händler) leer lasse und nur den Artikelpreis nutze.

    Für mich etwas blöd da ich gerne den Artikelpreis als UVP nutzen möchte und die Preisangaben für neuer Kunde und Gast schon reduzieren.

    zoidborg

    • Frisch an Board
    • Beiträge: 71
    also bei mir funktioniert das auch nicht.

    Könnte jemand die Anleitung nochmal zusammenfassen?

    Whiteflash

    • Fördermitglied
    • Beiträge: 186
    • Geschlecht:
    Hallo zusammen,

    also, ich denke da gibt es einfach keine Standardlösung, denn je nach dem ob da besondere Preise für neue Kunden gemacht werden sollen, etc. beziehen sich die Grenzen ja auf unterschiedliche Werte. Ich will hier auch gar nicht weiter drauf eingehen, sondern wollte nur mal schnell durchgeben wie ich das gemacht habe, vielleicht hilft's ja jemand weiter.

    Ich muss 3 Anpassungen machen:

    1) includes/classes/main.php
    Code: PHP  [Auswählen]
      function getShippingLink($products_price=NULL) {
        global $request_type;
        if (!defined('POPUP_SHIPPING_LINK_PARAMETERS')) {
          define('POPUP_SHIPPING_LINK_PARAMETERS', '&KeepThis=true&TB_iframe=true&height=400&width=600');
        }
        if (!defined('POPUP_SHIPPING_LINK_CLASS')) {
          define('POPUP_SHIPPING_LINK_CLASS', 'thickbox');
        }
        if ($products_price!=NULL) { // dann kann ggf. der Shippig-Link geändert werden. Abfragen, wie hoch die Frachfreigrenze ist, die ist gespeichert in der
            // Tabelle: configuration, Spalte configuration_key (mit Wert MODULE_SHIPPING_FREEAMOUNT_AMOUNT)
            $query = xtc_db_query('SELECT configuration_value FROM configuration WHERE configuration_key="MODULE_SHIPPING_FREEAMOUNT_AMOUNT" ');
            $result = xtc_db_fetch_array($query);
            if ($products_price['plain'] >= $result['configuration_value']) {
                // dann hier den geänderten Shippinlink zurückgeben
                return 'ohne <a rel="nofollow" target="_blank" href="'.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS.POPUP_SHIPPING_LINK_PARAMETERS, $request_type).'" title="Information zu den Versandkosten." class="'.POPUP_SHIPPING_LINK_CLASS.'">'.SHIPPING_COSTS.'!</a>'."<br>";
            }
        }
        // dann den Standard-Shippinglink zurückgeben
        return ' '.SHIPPING_EXCL.' <a rel="nofollow" target="_blank" href="'.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS.POPUP_SHIPPING_LINK_PARAMETERS, $request_type).'" title="Information zu den Versandkosten." class="'.POPUP_SHIPPING_LINK_CLASS.'">'.SHIPPING_COSTS.'</a>';
      }
     
    Zitat
    Dadurch kann die Funktion bei Übergabe eines Preises selbständig gleich den Link anpassen.
    2) includes/modules/product_info.php, ca. Zeile 160
    Code: PHP  [Auswählen]
    $info_smarty->assign('PRODUCTS_SHIPPING_LINK',$main->getShippingLink($products_price));
     
    3) includes/classes/product.php, ca. Zeil 432
    Code: PHP  [Auswählen]
    'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink($products_price),
     
    Zitat
    Nun nur noch dafür sorgen, dass die Funktion auch immer mit Parameter aufgerufen wird.

    So, hoffe der eine oder andere kann damit was anfangen,

    liebe Grüße, Basti

    zoidborg

    • Frisch an Board
    • Beiträge: 71
    Ehrlich gesagt kann ich das nicht, der Shop lässt sich hinterher nicht mehr aufrufen.

    Ich bin in der Tat etwas erstaunt das eine solche Basisfunktionalität so schwer umzusetzen ist.

    Whiteflash

    • Fördermitglied
    • Beiträge: 186
    • Geschlecht:
    Du kannst wohl, so schwer ist dar nicht, aber ich wette, du hast beim Abtippen oder reinkopieren einen Schreibfehler in den php-Code gebracht.

    Liebe Grüße, Whiteflash

    zoidborg

    • Frisch an Board
    • Beiträge: 71
    Habs grad nochmal probiert, gleiches Problem: sobald ich in der main.php die Funktion hinzufüge, die laut np++ auch sauber aussieht, bleibt mein Shop weiss :)

    Und beim reinkopieren kann man ansich nicht allzu viel falsch machen.

    Ich würd für dieses Feature btw auch etwas Geld investieren, magento und xtc kriegen das z.b auch nicht gelöst ^^

    Wer das für mich machen möchte, darf mich gern anschreiben.

    web0null

    • Experte
    • Beiträge: 1.998
    Also das von Whiteflash, ist in Ordnung und funktioniert auch.
    Ich hab es mal ein bisschen geordnet  ;-)

    includes/classes/main.php
    Code: PHP  [Auswählen]
    function getShippingLink($products_price = 0) {
        global $request_type;
        if (!defined('POPUP_SHIPPING_LINK_PARAMETERS')) {
          define('POPUP_SHIPPING_LINK_PARAMETERS', '&KeepThis=true&TB_iframe=true&height=400&width=600');
        }
        if (!defined('POPUP_SHIPPING_LINK_CLASS')) {
          define('POPUP_SHIPPING_LINK_CLASS', 'thickbox');
        }
        $link = '<a href="' . xtc_href_link(FILENAME_POPUP_CONTENT, 'coID=' . SHIPPING_INFOS . POPUP_SHIPPING_LINK_PARAMETERS, $request_type) . '" title="Information zu den Versandkosten." class="' . POPUP_SHIPPING_LINK_CLASS . ' rel="nofollow" target="_blank" ">' . SHIPPING_COSTS . '</a>';
        if ($products_price) {
          // dann kann ggf. der Shippig-Link geändert werden. Abfragen, wie hoch die Frachfreigrenze ist, die ist gespeichert in der
          // Tabelle: configuration, Spalte configuration_key (mit Wert MODULE_SHIPPING_FREEAMOUNT_AMOUNT)
          $query = xtc_db_query("
            SELECT configuration_value
            FROM configuration
            WHERE configuration_key = 'MODULE_SHIPPING_FREEAMOUNT_AMOUNT'
          "
    );
          $result = xtc_db_fetch_array($query);
          if ($products_price >= $result['configuration_value']) {
            // dann hier den geänderten Shippinlink zurückgeben
            return 'ohne ' . $link . '<br />';
          }
        }
        // dann den Standard-Shippinglink zurückgeben
        return ' ' . SHIPPING_EXCL . $link;
      }
     

    includes/modules/product_info.php, ca. Zeile 160
    Code: PHP  [Auswählen]
    $info_smarty->assign('PRODUCTS_SHIPPING_LINK', $main->getShippingLink($products_price['plain']));
     

    includes/classes/product.php, ca. Zeil 432
    Code: PHP  [Auswählen]
    'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink($products_price['plain']),
     

    Info: Der Produkt-Preis sollte gleich als $products_price['plain'] übergeben werden, denn es ist ja unsinnig das ganze Array zu übergeben, und die hardcodierten Texte sollten natürlich auch noch richtig eingebunden werden.

    Gruß web0null

    JZ_Aqua

    • Gast
    Hallo
    Vielen Dank an alle die dazu beigetragen haben für die tolle Lösung. Funktioniert problemlos.

    zoidborg

    • Frisch an Board
    • Beiträge: 71
    Bei mir leider nicht, auch nicht mit der aufgeräumten Version :(

    Gibts noch ne andere Lösung für das Problem?

    xxhappyxx

    • Viel Schreiber
    • Beiträge: 829
    • Geschlecht:
    Hallo zoidborg,

    der Code von web0null läuft nur wenn du  unter Module-->Versandart--> das Modul "Versandkostenfrei" (freeamount) nutzt.

    Wenn du unter Module-->Zusammenfassung das Modul Versandkosten nutzt müßte der Code umgeschrieben werden.

    Gruß Thomas

    PS.: Der ursprüngliche Code von der Ersten Seite läuft aber soweit. Auch unter 1.06.

    JZ_Aqua

    • Gast
    Hallo Thomas (xxhappyxx)
    Danke für die Info das es nur bei einer bestimmten Konfiguration läuft.
    Für den Fall, das ich mal was ändere müßte dies dann mit beachtet werden.

    zoidborg

    • Frisch an Board
    • Beiträge: 71
    Ich habe nur das eine freeamount Modul installiert, und zum testen das "normale" Versandmodul inkl aller Settings deinstalliert.

    Ich kann an der Stelle nur nochmal erwähnen, das ich bereit bin dafür was auszugeben. Notfalls poste ich den Job irgendwo ^^

    web0null

    • Experte
    • Beiträge: 1.998
    Was funktioniert nicht?
               
    anything