"In den Warenkorb" deaktivieren bis ein Artikelattribut ausgewählt ist

Thema wurde von masalo, 18. Januar 2019 erstellt.

  1. masalo
    masalo Erfahrener Benutzer
    Registriert seit:
    11. September 2013
    Beiträge:
    47
    Danke erhalten:
    13
    Danke vergeben:
    14
    #1 masalo, 18. Januar 2019
    Zuletzt bearbeitet: 18. Januar 2019
    Hi!
    Erstmal DANKE an das liebe Forum, dass ihr euch meiner Probleme immer so nett annehmt.
    Folgendes:

    Ein Programmierer, zu welchem wir keinen Kontakt mehr haben, hat uns mal ein Script gebastelt, welches den "In den Warenkorb" Knopf deaktiviert und eine Fehlermeldung auswirft, solange man keine ArtikelEIGENSCHAFT ausgewählt hat.

    Hier im Einsatz:
    https://www.masalo.eu/shop/Tennisar...olferarm-Epicondylitis-Masalo-Manschette.html

    Folgendes ist (glaube ich) das Script:
    {literal}
    <script type="text/javascript">
    jQuery(document).ready(function() {
    var $cb = $('#cart_button');
    var cbhref = $cb.attr('href');
    $cb.removeClass('button_details_add_cart');
    $cb.removeAttr('href');
    $('#cart_button').click(function() {
    var sizeSelect = $('.gm_attr_calc_input').val();
    if(sizeSelect !== '9') {
    $cb.addClass('button_details_add_cart');
    $cb.attr('href', cbhref);
    ButtonDetailsAddCartHandler();
    } else if($(this).data('activeerror') !== 'true') {
    $('.attributes').addClass('sizeError');
    $('<p class="sizeError">{/literal}{$txt.text_js_error_size_select}{literal}<br />(<a class="lightbox_iframe" href="popup_content.php?coID=1237&lightbox_mode=1">{/literal}{$txt.text_js_error_size_select_info}{literal}</a>)</p>').fadeIn(900).insertAfter('.attributes');
    $(this).data('activeerror', 'true');
    }
    });
    jQuery('.gm_attr_calc_input').change(function() {
    if($(this).val() !== '9') {
    $('p.sizeError').slideUp(800, function() {
    $(this).remove();
    });
    $('.attributes').removeClass('sizeError');
    $('#cart_button').removeData('activeerror');
    }
    });
    });
    </script>
    {/literal}

    Die Sprachdatei dazu (user_sections/index.lanc.inc.php) konnte ich ausfindig machen.

    Früher lag das script mal in der index.html vom EyeCandy, Mobile Candy... im Honeygrid finde ich das gar nicht mehr wieder.

    Daher die erste Frage:
    Wo ist dieses Script denn jetzt eingetragen, dass es funktioniert, wie es funktioniert? :)


    Das Ganze würde aber eher zu Dokumentationszwecken dienen, falls mal was kaputt geht.

    Mein eigentliches Problem ist aber das Folgende:
    Die oben verlinkte Seite - also bei diesem Artikel sind die Auswahlmöglichkeiten als "EIGENSCHAFTEN" definiert (1.jpg)
    Leider führt das dazu, dass wir keine sinnvollen Staffelpreise anbieten können (Stand jetzt funktionieren Staffelpreise dort nur, wenn man mehrere Artikel der exakt gleichen Größe/Seite kauft - wir wollen aber, dass jemand, der einen Artikel für den rechten UND den linken Arm beispielsweise kauft, auch Staffelpreise erhält)

    Das scheint aber über "Eigenschaften" nicht zu gehen, nur über "ATTRIBUTE":
    https://www.masalo.eu/shop/Fachhandel/mmfh.html

    Bei dieser Seite sind die Auswahlmöglichkeiten des Dropdownmenüs über "Artikelattribute" (2.jpg) definiert.
    Damit funktionieren auch Staffelpreise so wie wir uns das wünschen (ist nur für die Kundengruppe Händler sichtbar, nicht wundern)

    Problem:
    Leider aber funktioniert durch die Attribute unser "Warenkorb" deaktivieren Script nicht mehr und die Leute würden ständig Artikel mit der Größe "bitte auswählen" bestellen ;D


    Von daher die Frage/Bitte, ob mir jemand helfen könnte, ein Script zu schreiben/das Script zu modifizieren incl. "in folgende Datei musst Du das schreiben", so dass dieses Warenkorb-Kästchen so lange deaktiviert ist, bis man ein anderes Attribut außer das "bitte auswählen" angeklickt hat? :)

    Bitte entschuldigt auch den langen Vorlauf vor der eigentlichen Frage, aber ich hoffe, so wird mein Problem zumindest verstanden ;)
     

    Anhänge:

    • 1.jpg
      1.jpg
      Dateigröße:
      80,7 KB
      Aufrufe:
      11
    • 2.jpg
      2.jpg
      Dateigröße:
      132,5 KB
      Aufrufe:
      11
  2. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    27. Mai 2016
    Beiträge:
    457
    Danke erhalten:
    99
    Danke vergeben:
    103
    #2 Anonymous, 18. Januar 2019
    Zuletzt bearbeitet: 18. Januar 2019
    Also der Warnhinweis und der inaktive Button sind bei Gambio als Standard so konfiguriert wenn bei einem Artikel mit Eigenschaften keine Eigenschaften ausgewählt wurden.

    Hier wurde wenn dann nur am Error Message Text was gemacht.



    Bei unserem Artikel hier: (Link nur für registrierte Nutzer sichtbar.)

    sind auch nur Eigenschaften hinterlegt, hier erscheint auch eine Warnmeldung wenn keine Eigenschaft ausgewählt ist.
     
  3. masalo
    masalo Erfahrener Benutzer
    Registriert seit:
    11. September 2013
    Beiträge:
    47
    Danke erhalten:
    13
    Danke vergeben:
    14
    Auf jeden Fall hat der Programmierer damals Geld verlangt ;) Leider aber hilft mir das noch nicht final weiter für meine Attribute :/
     
  4. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    27. Mai 2016
    Beiträge:
    457
    Danke erhalten:
    99
    Danke vergeben:
    103
    Ich glaube du verdrehst das, über Eigenschaften geht das, über Attribute weiss ich es so jetzt nicht.

    SInd bei dem Shop hier im Artikel Attribute oder Eigenschaften hinterlegt??

    (Link nur für registrierte Nutzer sichtbar.)
     
  5. masalo
    masalo Erfahrener Benutzer
    Registriert seit:
    11. September 2013
    Beiträge:
    47
    Danke erhalten:
    13
    Danke vergeben:
    14
    Da Eigenschaften, aber dann funktioniert das mit den Staffelpreisen nicht, deswegen muss es leider über Attribute festgelegt werden, und da geht das mit dem Warenkorb deaktivieren scheinbar nicht so leicht :/
     
  6. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    27. Mai 2016
    Beiträge:
    457
    Danke erhalten:
    99
    Danke vergeben:
    103
    #6 Anonymous, 18. Januar 2019
    Zuletzt bearbeitet: 18. Januar 2019
    In den Attributen geht das nicht mit dem Deaktiveren und dem Warnhinweis, da immer ein Attribut aktiv ist im Dropdown.
    Hab es grade im Gambio Testshop getestet...

    Aber:

    Vieleicht hilft dir aber das Modul von Xycons, von Holger weiter:

    (Link nur für registrierte Nutzer sichtbar.)
    Demo: (Link nur für registrierte Nutzer sichtbar.)

    Sieht so aus als wäre es das was du suchst!!

    Allerdings solltest du aber vorher trotzdem bei Xycons fragen ob das für deine Zwecke geeignet und mit deiner Shopversion Kompatibel ist.
     
  7. masalo
    masalo Erfahrener Benutzer
    Registriert seit:
    11. September 2013
    Beiträge:
    47
    Danke erhalten:
    13
    Danke vergeben:
    14
    Danke Dir. Leider wird 3.11 nicht unterstützt, aber wenn 3.12 raus ist, werde ich das vielleicht mal antesten.

    Aber theoretisch müsste das ja gehen. Auch wenn das "bitte auswählen" auch ein Attribut ist (Wenn auch Variablenwert=0 oder was auch immer) so müsste man das ja eigentlich programmieren können, so als "if 0 dann warnung, else dann nich" :)
    Aber leider kann ich sowas nicht. *schäm* :) Aber das Modul ist dann vielleicht in näherer Zukunft eine Lösung, danke :)
     
  8. barbara
    barbara G-WARD 2014-2020
    Registriert seit:
    14. August 2011
    Beiträge:
    35.657
    Danke erhalten:
    11.371
    Danke vergeben:
    1.616
    Was passiert denn, wenn Du ein Attribut "Bitte Wählen Sie" anlegst, auf Position 1 setzt, mit Bestand "0"
    Dann dürfte man das nicht in den Warenkorb legen können. Es sei denn, Du erlaubst den Verkauf nicht vorrätiger Artkel.
     
  9. masalo
    masalo Erfahrener Benutzer
    Registriert seit:
    11. September 2013
    Beiträge:
    47
    Danke erhalten:
    13
    Danke vergeben:
    14
    Schade. Eine sehr sehr gute Idee, allerdings lässt er mich das dennoch in den Warenkorb legen und gibt mir erst IM Warenkorb eine Fehlermeldung aus, dass der Artikel nicht vorrätig sei.

    Einstellungen:

    Artikel inaktiv setzen nein


    Attribut inaktiv setzen nein


    Attributlagerbestand anzeigen nein


    Überprüfen des Artikelbestandes ja


    Überprüfen des Artikelattribut-Bestandes ja


    Artikelmenge abziehen nein


    Einkaufen nicht vorrätiger Artikel erlauben nein


    Lagerbestand vor dem Warenkorb prüfen? ja

    Mein Testartikel:

    https://www.masalo.eu/shop/Masalo-M...erarm-Epicondylitis-Masalo-Manschette-20.html
     
  10. marit
    marit Erfahrener Benutzer
    Registriert seit:
    7. März 2014
    Beiträge:
    1.434
    Danke erhalten:
    141
    Danke vergeben:
    185
    Ich arbeite viel mit Attributen. Da ist bei jedem Artikel eine Standardauswahl vorprogrammiert und Kunde muss nur aufpassen, ob er vielleicht die andere Variante will. Kein Attribut gibts nicht. Muss übrigens kein Dropdown sein; ich hab's als Liste.

    Da man also nicht nichts auswählen kann, braucht man auch den Warenkorb-Button nicht zu deaktivieren.
     
  11. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    31. August 2017
    Beiträge:
    63
    Danke erhalten:
    9
    Danke vergeben:
    29
    DANKE ;), das war mal wieder eine spitzen Idee!

    Ich hatte das zwar bereits per Java umgesetzt, aber diese Lösung finde ich noch etwas besser!

    Der Artikel wird zwar immer noch in den Warenkorb gelegt. Aber dort kommt dann der "hinweiß" und man kann den kauf nicht abschliessen.

    Dank Dir
     
  12. besi
    besi Erfahrener Benutzer
    Registriert seit:
    14. Oktober 2014
    Beiträge:
    45
    Danke erhalten:
    6
    Danke vergeben:
    19
    Ohne Warenbestandsskontrolle funzt das aber nicht. Du mußt per jquery das "val" Attribut des Dropdown leer setzen (nicht "0") wenn der angezeigte Text=="bitte auswählen" ist. Wenn Du dazu das "required"-Attribut des Dropdown auf "true" setzt, kannste zwar auf den Warenkorb Button klicken. Es wird aber nix reingelegt, sondern das Dropdown wird umrandet und es erscheint ne Melsung "bitte wählen Sie einen Eintrag aus der Liste"

    Für GX-Customizer-Dropdowns sieht das so aus:

    $("select.gm_gprint_dropdown:eq(0)").attr('required',true);
    if($( "select.gm_gprint_dropdown:eq(0) option:selected" ).val()=="Auswahl"){$( "select.gm_gprint_dropdown:eq(0) option:selected" ).val("");}