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: Versandkostenfreier Coupon, Darstellung im Warenkorb und im Checkout

    Friederike

    • Fördermitglied
    • Beiträge: 87
    Hi, man kann ja wunderbar eine Coupon anlegen für eine versandkostenfreie Lieferung, auf Wunsch auch in Kombination mit einem Rabatt.

    Das klappt zwar soweit gut, aber voran ich mich störe ist die Darstellung im Warenkorb und im Checkout:
    Die ist m.E. für Kunden verwirrend und außerdem auch noch unterschiedlich.
    Im Warenkorb werden nach der Einlösung des Versandkostenfrei-Coupons trotzdem die normalen Versandkosten angezeigt.
    Auch im Checkout wird im 1. Schritt, Versand, normale Versandkosten angezeigt, und erst bei Schritt 3, Prüfung, der Coupon-Betrag ggfls. erhöht, um die weiterhin angezeigten Versandkosten zu kompensieren.

    Ich hätte gern sowohl im Warenkorb als auch im Checkout überall die Anzeige von Versandkostenfreiheit (oder spricht buchhalterisch, steuerlich o.ä. etwas dagegen?)

    Folgendes habe ich jetzt im meinem lokalen Testshop (Version v2.0.4.2 rev 11374 dated: 2018-07-23) getestet:

    1. In der Datei /includes/modules/gift_card.php speichere ich die Art des Coupons (S oder T sind anscheinend versandkostenfrei) in der Session:
    Code: PHP  [Auswählen]
    // Coupon-Typ in Session speichern
    $tpy_queryFB = xtc_db_query("select coupon_type from ".TABLE_COUPONS." where coupon_id = '".(int)$_SESSION['cc_id']."'");
    $typ_resultFB = xtc_db_fetch_array($tpy_queryFB);
    if (isset($typ_resultFB['coupon_type']) ) {
        $_SESSION['coupon_type'] = $typ_resultFB['coupon_type'];
      }
    // Ende Coupon-Typ in Session speichern
     

    2. In der Datei /includes/shipping_estimate.php sorge ich für die Versandkostenfreiheit im Warenkorb:
    Suche nach
    Code: PHP  [Auswählen]
    if ($order->content_type == 'virtual' || ($order->content_type == 'virtual_weight') || ($_SESSION['cart']->count_contents_virtual() == 0)) {
     

    und ersetze durch:
    Code: PHP  [Auswählen]
    // Keine Versandkosten bei Versandkostenfrei-Coupons, d.h. bei den Coupon-Typen T und S:
    $versandfreicoupon = false;
    if (($_SESSION['coupon_type'] == 'T') || ($_SESSION['coupon_type'] == 'S')) {
      $versandfreicoupon = true;  
      $free_shipping = true;
    }
                                                               
    //suppot downloads and gifts
    //if ($order->content_type == 'virtual' || ($order->content_type == 'virtual_weight') || ($_SESSION['cart']->count_contents_virtual() == 0)) {
    if ($order->content_type == 'virtual' || ($order->content_type == 'virtual_weight') || ($_SESSION['cart']->count_contents_virtual() == 0) || ($versandfreicoupon) ) {      
    // Ende Versandkostenfreie Coupons  
     

    3. Und damit es im Checkout bei Versandkostenfreiheit bleibt, habe ich die Datei /includes/modules/order_total/ot_shipping.php bearbeitet:
    Hinter der function process()  habe ich eingefügt:

    Code: PHP  [Auswählen]
    // Keine Versandkosten bei Versandkostenfrei-Coupons, d.h. bei den Coupon-Typen T und S:
    $versandfreicoupon = false;
    if (($_SESSION['coupon_type'] == 'T') || ($_SESSION['coupon_type'] == 'S')) {
      $versandfreicoupon = true;  
      $free_shipping = true;
      $pass = true;
    }
    // Ende Versandkostenfreie Coupons  
     

    Funktioniert soweit ich das sehe.
    Frage: Was habe ich übersehen? Gibt es bessere / elegantere / updatesichere Lösungen?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=40289.0
    4 Antworten
    1409 Aufrufe
    19. November 2020, 08:15:18 von fiwamedia
    8 Antworten
    3864 Aufrufe
    21. Januar 2015, 15:38:43 von dertobinator
    2 Antworten
    2525 Aufrufe
    07. November 2010, 22:33:41 von SupaRoyal
    2 Antworten
    3346 Aufrufe
    09. Februar 2011, 18:48:16 von rattenfänger