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: BETA MODUL: Merkzettel oder Merkliste

    web0null

    • Experte
    • Beiträge: 1.998
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #165 am: 09. Juli 2015, 18:13:22
    Ja kannst du,
    Gruß
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    DD2020

    • Neu im Forum
    • Beiträge: 33
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #166 am: 30. September 2015, 17:20:38
    Hi

    ich hab gesehen Ihr habt eine Merkzettelfkt. in modified-2.00 eingebaut - basiert das auf diesem Modul?

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #167 am: 21. Dezember 2015, 13:59:01
    Bei mir hat die chaotische Anleitung (Anleitung_xwishlist_XTC-M_106-22.05.2015.txt) nicht funktioniert ....
    Man sollte mal die Reihenfolge des Einbaus ordnen, jedoch bringt das wenig, wenn die Anleitung generell nicht funktioniert.

    Da ich im neuen Shop kein XTC Template einsetze, ist das ganze sowieso komplizierter aber das Problem kommt glaube ich nicht vom Einbau....

    Der Löschen Knopf macht gar nichts, außer den Warenkorb anzeigen.

    Wenn man sich dann mal einen Shop ansieht, in dem das Modul läuft, wundert mich das auch nicht mehr.

    Der Link hinter dem Löschen Knopf ist falsch und die Funktion dahinter finde ich gar nicht. Hier:
    www.scootertuning.ch fand ich einen funktionierenden Knopf, der Zeigt auf: www.scootertuning.ch/wish_list.php?action=remove_wl_product&prd_id=12661

    Also die includes/modules/order_details_wishlist.php anpassen ...
    Das:
    Code: PHP  [Auswählen]
      'DELETE_ICON'                => '<a href="'. xtc_href_link(FILENAME_SHOPPING_CART, 'action=update_product_cart&products_id='.$products[$i]['id']). '">'.  xtc_image('templates/'.CURRENT_TEMPLATE.'/img/button_cart_delete.jpg', 'l&ouml;schen'). '</a>',
     
    ersetzen mit:
    Code: PHP  [Auswählen]
      'DELETE_ICON'                => '<a href="'. xtc_href_link(FILENAME_WISHLIST_CART, 'action=remove_wl_product&prd_id='.$products[$i]['id']). '">'.  xtc_image('templates/'.CURRENT_TEMPLATE.'/img/button_cart_delete.jpg', 'l&ouml;schen'). '</a>',
     

    Dann in der /includes/cart_actions.php
    Nach:
    Code: PHP  [Auswählen]
        case 'remove_product':
          $prd_id = xtc_input_validation($_GET['prd_id'], 'products_id', '');
          $_SESSION['cart'] -> remove($prd_id);
          xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters), 'NONSSL'));
          break;
    Das einfügen:
    Code: PHP  [Auswählen]
            case 'remove_wl_product':
          $prd_id = xtc_input_validation($_GET['prd_id'], 'products_id', '');
          $_SESSION['wishList'] -> remove($prd_id);
          xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters), 'NONSSL'));
          break;

    Und der löschen Knopf funktioniert ...

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #168 am: 21. Dezember 2015, 14:33:43
    Aufgrund eins Programmierfehlers meinerseits habe ich gerade ein neues Feature produziert  :lol:  :lol1:

    Neuer Knopf für "Alles in den Warenkorb"

    In der order_details_wishlist.php vor
    Code: PHP  [Auswählen]
    $module_smarty->assign('TOTAL_CONTENT',$total_content);
    Das einfügen:
    Code: PHP  [Auswählen]
    $module_smarty->assign('BUY_ALL', '<button type="submit" href="' . xtc_href_link(basename($PHP_SELF), xtc_get_all_get_params(array('action')), 'NONSSL') . '">'.IMAGE_BUTTON_WISHLIST_IN_CART.'</button>');

    lang/german/german.php
    nach
    Code: PHP  [Auswählen]
    define('IMAGE_BUTTON_IN_CART', 'In den Warenkorb');
    das einfügen:
    Code: PHP  [Auswählen]
    define('IMAGE_BUTTON_WISHLIST_IN_CART', 'Kompletter Merkzettel in den Warenkorb');

    Jetzt kann man in der wish_list_order_details.html mit
    Code: XML  [Auswählen]
    {$BUY_ALL}
    einen Button platzieren, der den kompletten Merkzettel in den Warenkorb packt. (Mit Stückzahlen!)

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #169 am: 21. Dezember 2015, 16:25:53
    Grober Bug! Wer einen Knopf "Merkzettel" einsetzen will, analog zum bestehenden "Warenkorb aktualisieren" hat ein Problem.
    Es funktioniert alles wunderbar, außer man setzt die Menge eines Produktes auf 0. In dem fall wird der Artikel nicht aus dem Merkzettel, sondern aus dem Warenkorb gelöscht!!!

    Das hier ist die Ursache:
    includes/cart_actions.php
    Code: PHP  [Auswählen]
            if ($cart_quantity == 0) $_SESSION['cart']->remove($_POST['products_id'][$i]);
           
                    if($_POST['submit_target'] == 'wishlist') { //WISHLIST ############

     

    Der komplette Codeblock, den man Laut Anleitung einsetzen soll hier berichtigt:
    Code: PHP  [Auswählen]
        // customer wants to update the product quantity in their shopping cart
        case 'update_product':
         
              if (isset($econda) && is_object($econda)) $econda->_emptyCart();
             
          for ($i = 0, $n = sizeof($_POST['products_id']); $i < $n; $i++) {

            $cart_quantity = $_POST['cart_quantity'][$i] = xtc_remove_non_numeric($_POST['cart_quantity'][$i]);
            $_POST['old_qty'][$i] = xtc_remove_non_numeric($_POST['old_qty'][$i]);
            $_POST['products_id'][$i] = xtc_input_validation($_POST['products_id'][$i], 'products_id', '');
                       
                    if($_POST['submit_target'] == 'wishlist') { //WISHLIST ############
                            if ($cart_quantity == 0) $_SESSION['wishList']->remove($_POST['products_id'][$i]);
                                           
                            if (in_array($_POST['products_id'][$i], (is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array()))) {
                                   
                                    $_SESSION['wishList']->remove($_POST['products_id'][$i]);

                                    if (is_object($econda)) $econda->_delArticle($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $_POST['old_qty'][$i]);

                            } else {
                                   
                                    if ($cart_quantity > MAX_PRODUCTS_QTY) $cart_quantity = MAX_PRODUCTS_QTY;
                                   
                                    $attributes = ($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : '';

                                    if (is_object($econda)) {
                                   
                                            $old_quantity = $_SESSION['wishList']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i]));
                                            $econda->_updateProduct($_POST['products_id'][$i], $cart_quantity, $old_quantity);
                                    }

                                    $_SESSION['wishList']->add_cart($_POST['products_id'][$i], $cart_quantity, $attributes, false);
                                    unset($cart_quantity);

                            $goto = FILENAME_WISHLIST_CART;
                           
                            }
                           
                    } else { //CART ############
                            if ($cart_quantity == 0) $_SESSION['cart']->remove($_POST['products_id'][$i]);
                   
                            if (in_array($_POST['products_id'][$i], (isset($_POST['cart_delete']) && is_array($_POST['cart_delete']) ? $_POST['cart_delete'] : array ()))) {
                             
                              $_SESSION['cart']->remove($_POST['products_id'][$i]);
           
                              if (isset($econda) && is_object($econda)) $econda->_delArticle($_POST['products_id'][$i], $_POST['cart_quantity'][$i], $_POST['old_qty'][$i]);
           
                            } else {
                             
                              if ($cart_quantity > MAX_PRODUCTS_QTY) $cart_quantity = MAX_PRODUCTS_QTY;
                             
                              $attributes = isset($_POST['id'][$_POST['products_id'][$i]]) ? $_POST['id'][$_POST['products_id'][$i]] : '';
           
                              if (isset($econda) && is_object($econda)) {
                                   
                                    $old_quantity = $_SESSION['cart']->get_quantity(xtc_get_uprid($_POST['products_id'][$i], $_POST['id'][$i]));
                                   
                                    $econda->_updateProduct($_POST['products_id'][$i], $cart_quantity, $old_quantity);
                              }
                             
                              $_SESSION['cart']->add_cart($_POST['products_id'][$i], $cart_quantity, $attributes, false);
                             
                              unset($cart_quantity);
                            }
                    }
          }
         
              xtc_redirect(xtc_href_link($goto, xtc_get_all_get_params($parameters), 'NONSSL'));
          break;
     

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #170 am: 09. März 2017, 10:13:44
    Für den Fall, dass ein Kunde einen Artikel im Warenkorb hat, der deaktiviert wurde, zählt die Funktion count_contents() der Klasse wish_list den Artikel, aber der Merkzettel ist leer.

    Das ist normalerweise kein Problem, wenn man aber in der /login.php das einbaut:
    Code: PHP  [Auswählen]
              } elseif ($_SESSION['cart']->count_contents() > 0  && !isset($_GET['review_prod_id'])  && !isset($_GET['order_id'])) {
            xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART),'NONSSL');
            // BOF Bonsai Merkzettel
              } elseif ($_SESSION['wishList']->count_contents() > 0  && !isset($_GET['review_prod_id'])  && !isset($_GET['order_id'])) {
            xtc_redirect(xtc_href_link(FILENAME_WISHLIST_CART),'NONSSL');
            // EOF Bonsai Merkzettel
                    } else {          
            xtc_redirect(xtc_href_link(FILENAME_DEFAULT),'NONSSL');          
          }
     

    Dann wird der Kunde bei jedem Login auf die leere Merkliste umgeleitet.

    Möglicher Fix ist die Funktion get_quantity der Klasse wish_list so umzubauen:
    Code: PHP  [Auswählen]
      function get_quantity($products_id) {
        if (isset($this->contents[$products_id]['qty'])) {
              $product = new product($products_id);
          return (isset($product->data['products_status']) && $product->data['products_status'] == 1) ? $this->contents[$products_id]['qty'] : 0;
        } else {
          return 0;
        }
      }
     

    Teratek

    • Schreiberling
    • Beiträge: 273
    Re: BETA MODUL: Merkzettel oder Merkliste
    Antwort #171 am: 04. März 2018, 00:42:00
    Falls jemand den Button von Bonsai in Betrieb hat....
    es gibt etwas Kleingedrucktes.

    Ist einer der Artikel, die auf dem Merkzettel sind schon im Warenkorb und die Menge ist größer als die im Merkzettel, wird nach dem drücken die Menge auf die des Merkzettels reduziert. :-|
    Werbung / Banner buchen
    0 Antworten
    1678 Aufrufe
    08. März 2017, 09:06:14 von Buggyboy
    3 Antworten
    4099 Aufrufe
    26. Juni 2013, 12:54:28 von Koala
    5 Antworten
    5075 Aufrufe
    06. August 2011, 08:41:15 von franky_n