Das ist eine gute Frage! Zu 99% "Neukunden" ... aber hätten die auch "normal" bestellt? Wie will man das rausfinden ... ohne anzurufen?
Genauere Untersuchung ergibt folgendes: wenn man die Mengenänderung macht, das Eingabefeld nicht verlässt, und dann den "Refresh" clickt, dann findet kein Neuladen des Warenkorbs statt. Verlässt man aber das Eingabefeld (mt z.B. TAB), und klickt dann den Refresh, dann läuft alles wie gewünscht. Problem ist also: die Mengenprüfung (die im "change"-Ereignis des Eingabefeldes stattfindet) stoppt im ersten Fall also den "submit"-Vorgang..... Bzw.: das "click"-Event des "Refresh"-Links wird nicht mehr ausgelöst..... PHP: $('.button_cart_refresh').on('click', function(event) { if(fb)console.log('.button_cart_refresh click'); $('#cart_quantity').trigger( "submit" ); return false; });
Ja - aber das ist leider nicht alles. Auch wenn ein Artikel in den WK gelegt wird, ist u.a. {$MBR_TOTAL_WEIGHT} aus der Overlay noch leer! Wird auch erst nach Seitenreload gefüllt!
Danach folgende Klicks (dann ohne Mengenprüfung) lösen das "click"-Event des "Refresh"-Links wieder aus.... Sehr mysteriös das Ganze.... Mögliche Lösung (ungetestet, da das bei mir anders läuft): "templates\MobileCandy\javascript\quantity_checker.js.php" ersetzen mit: PHP: //Avengerfunction check_cart(event){//Avenger var products_id = ''; var qty = ''; var inputs = []; var html = ''; var j = 0; var t_success = true; $( this ).closest( ".product_list_column_3" ).find('.gm_cart_data').each(function(){ inputs.push(escape(this.value)); } ); for(i = 0; i < inputs.length; i = i+2){ qty = inputs[i]; products_id = inputs[i+1]; products_id_copy = products_id; products_id_copy = products_id_copy.replace(/%7B/g, "_"); products_id_copy = products_id_copy.replace(/%7D/g, "_"); products_id_copy = products_id_copy.replace(/{/g, "_"); products_id_copy = products_id_copy.replace(/}/g, "_"); if($('#gm_delete_product_' + products_id_copy).attr('checked') != true) { j = products_id.indexOf('{'); if(j == -1) j = products_id.indexOf('%'); if(j != -1) products_id = products_id.slice(0, j); html = jQuery.ajax({ data: 'id=' + products_id + '&qty=' + qty, url: 'gm_ajax.php?module=order_quantity_checker', type: "GET", async: false}).responseText; html = html.replace(/^\s+|\s+$/g,""); $('#gm_checker_error_' + products_id_copy).html(html); if(html == '') { var t_sep_found = products_id.search(/x/); if(typeof(coo_combi_status_check) != 'undefined' && t_sep_found != -1) { // extended pid found. check combis_id! coo_combi_status_check.get_combi_status_by_ext_products_id(products_id, qty); if(coo_combi_status_check.last_result_json != false) { if(coo_combi_status_check.last_result_json['STATUS_CODE'] < 1) { $('#gm_checker_error_' + products_id_copy).html(coo_combi_status_check.last_result_json['STATUS_TEXT']); t_success = false; } } } } else { t_success = false; } } } if( t_success ) { $( ".button_cart_refresh" ).css( "visibility", "visible" ); //Avenger //Stop any event in progress event.stopPropagation(); event.preventDefault(); //Force cart submit $('#cart_quantity').trigger( "submit" ); //Avenger } else { $( ".button_cart_refresh" ).css( "visibility", "hidden" ); } return t_success;}$(document).ready(function(){ $( ".quantity_wrapper .products_quantity" ).on( "change", check_cart );}); Dadurch wird nach positiven der Mengenänderungsprüfung der Warenkorb übertragen... Vorher natürlich Kopie des Originals sichern....
Na, so schlimm ist das doch alles nicht, alles wird gut... Baue doch mal in Dein Overlay am Anfang ein if ($_SESSION['cart']->weight==0) $_SESSION['cart']->calculate() ein, um sicher zu stellen, dass das Gewicht schon berechnet ist. Durchlaufen wird das Overlay ja, sonst würde da nicht "0kg" sondern nur "kg" stehen,.... Ein Leerzeichen vor dem kg wäre auch besser.
Wer würde es sich antun, auf einem Phone/Tablett zu bestellen, wenn er das auch an einem Desktop könnte???? m.E. dürften das zu einem großen Teil Kunden sein, die Du bisher nicht erreicht hast.
Dein Wort in Gottes Gehörgänge! Grad wieder eine Frau! .... 50kg ... Paypal! In der linken Hand Baby stillen und rechts Kartoffeln bestellen - die haben doch´n Rad ab!
Ja was ist datt denn für´ne scharfe Kiste?! Dann kann ja der AktualisierungsKringel wech ... den eh keiner triff! Nur das Gewicht bleibt dabei unverändert.
Erste Anmerkung: Die Umleitung von "http://www.kartoffel-mueller.de" auf "http://www.kartoffel-mueller.de/_gx/" find' ich nicht gut.... Besser die Domain "http://www.kartoffel-mueller.de" auf dem Server auf das "_gx"-Verzeichnis leiten (config-Änderung nicht vergesssen)
Hast Du die Variable im Template entfernt? Das funktionierte doch vorhin mit dem Gewicht.... Und diese Änderung spielt ja nur im Browser, kann also den Shop-Ablauf nicht ändern.
Ich und entfernen - also bitte! Nee ... mit deiner "quantity_checker. js.php" findet ja bereits eine Aktualisierung nach Verlassen des Feldes statt - auf meinem "S3" jedenfalls. Und dabei bleibt das Gewicht unberührt. Nimmt man der KringelButton ist alles in Butter. Ich denke, damit kann/muss man jetzt einfach leben. Die "_gx" Umleitung ist ein unseeliges Relikt aus "Smartstore" Zeiten (2008!) ... villeicht mal in einer ruhigen Nacht!
Kann eigentlich nicht sein... Denn bei dem neuen Verfahren findet ja absolut derselbe Vorgang statt wie beim Klick auf den "KringelButton": die Übermittlung des Warenkorbs an den Server!
Shit happenz, muss man halt klären und abstellen... Dieses ganze "jQuery Mobile", das MC verwendet, ist Javascript ad extremum, da kann es schon mal merkwürdige Effekte geben. Ich sehe im Moment aber gar keine Gewichtsangabe mehr, auch nicht direkt beim Laden des Cart...
Ich hab das jQuery-Mobile jetzt aus MC entfernt! Das nervt! JSON-Rückgaben usw funzen net so wie gehabt. Und das alles umzubauen ist m.E. zu viel des Guten......
Mmmmh.... Und wie läuft bei Dir dann MC?????? Das geht doch nur mit JQM!? Zumindest mit der MC-Oberfläche.